* Copyright (C) 2000-2003, Ximian, Inc.
*/
#pragma once
#include "soup-types.h"
G_BEGIN_DECLS
typedef enum {
SOUP_MEMORY_STATIC,
SOUP_MEMORY_TAKE,
SOUP_MEMORY_COPY,
} SoupMemoryUse;
typedef struct {
const char *data;
goffset length;
} SoupMessageBody;
SOUP_AVAILABLE_IN_ALL
GType soup_message_body_get_type (void);
#define SOUP_TYPE_MESSAGE_BODY (soup_message_body_get_type ())
SOUP_AVAILABLE_IN_ALL
SoupMessageBody *soup_message_body_new (void);
SOUP_AVAILABLE_IN_ALL
SoupMessageBody *soup_message_body_ref (SoupMessageBody *body);
SOUP_AVAILABLE_IN_ALL
void soup_message_body_unref (SoupMessageBody *body);
SOUP_AVAILABLE_IN_ALL
void soup_message_body_set_accumulate(SoupMessageBody *body,
gboolean accumulate);
SOUP_AVAILABLE_IN_ALL
gboolean soup_message_body_get_accumulate(SoupMessageBody *body);
SOUP_AVAILABLE_IN_ALL
void soup_message_body_append (SoupMessageBody *body,
SoupMemoryUse use,
gconstpointer data,
gsize length);
SOUP_AVAILABLE_IN_ALL
void soup_message_body_append_take (SoupMessageBody *body,
guchar *data,
gsize length);
SOUP_AVAILABLE_IN_ALL
void soup_message_body_append_bytes (SoupMessageBody *body,
GBytes *buffer);
SOUP_AVAILABLE_IN_ALL
void soup_message_body_truncate (SoupMessageBody *body);
SOUP_AVAILABLE_IN_ALL
void soup_message_body_complete (SoupMessageBody *body);
SOUP_AVAILABLE_IN_ALL
GBytes *soup_message_body_flatten (SoupMessageBody *body);
SOUP_AVAILABLE_IN_ALL
GBytes *soup_message_body_get_chunk (SoupMessageBody *body,
goffset offset);
SOUP_AVAILABLE_IN_ALL
void soup_message_body_got_chunk (SoupMessageBody *body,
GBytes *chunk);
SOUP_AVAILABLE_IN_ALL
void soup_message_body_wrote_chunk (SoupMessageBody *body,
GBytes *chunk);
G_END_DECLS