Reapplying patch to disable attempts to use gtk-doc
[profile/ivi/libsoup2.4.git] / libsoup / soup-message-body.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * Copyright (C) 2000-2003, Ximian, Inc.
4  */
5
6 #ifndef SOUP_MESSAGE_BODY_H
7 #define SOUP_MESSAGE_BODY_H 1
8
9 #include <libsoup/soup-types.h>
10
11 G_BEGIN_DECLS
12
13 typedef enum {
14         SOUP_MEMORY_STATIC,
15         SOUP_MEMORY_TAKE,
16         SOUP_MEMORY_COPY,
17         SOUP_MEMORY_TEMPORARY
18 } SoupMemoryUse;
19
20 typedef struct {
21         const char *data;
22         gsize       length;
23 } SoupBuffer;
24
25 GType soup_buffer_get_type (void);
26 #define SOUP_TYPE_BUFFER (soup_buffer_get_type ())
27
28 SoupBuffer *soup_buffer_new            (SoupMemoryUse   use,
29                                         gconstpointer   data,
30                                         gsize           length);
31 SoupBuffer *soup_buffer_new_take       (guchar         *data,
32                                         gsize           length);
33 SoupBuffer *soup_buffer_new_subbuffer  (SoupBuffer     *parent,
34                                         gsize           offset,
35                                         gsize           length);
36
37 SoupBuffer *soup_buffer_new_with_owner (gconstpointer   data,
38                                         gsize           length,
39                                         gpointer        owner,
40                                         GDestroyNotify  owner_dnotify);
41 gpointer    soup_buffer_get_owner      (SoupBuffer     *buffer);
42 void        soup_buffer_get_data       (SoupBuffer     *buffer,
43                                         const guint8  **data,
44                                         gsize          *length);
45 SoupBuffer *soup_buffer_copy           (SoupBuffer     *buffer);
46 void        soup_buffer_free           (SoupBuffer     *buffer);
47 GBytes     *soup_buffer_get_as_bytes   (SoupBuffer *buffer);
48
49 typedef struct {
50         const char *data;
51         goffset     length;
52 } SoupMessageBody;
53
54 GType soup_message_body_get_type (void);
55 #define SOUP_TYPE_MESSAGE_BODY (soup_message_body_get_type ())
56
57 SoupMessageBody *soup_message_body_new           (void);
58
59 void             soup_message_body_set_accumulate(SoupMessageBody *body,
60                                                   gboolean         accumulate);
61 gboolean         soup_message_body_get_accumulate(SoupMessageBody *body);
62
63 void             soup_message_body_append        (SoupMessageBody *body,
64                                                   SoupMemoryUse    use,
65                                                   gconstpointer    data,
66                                                   gsize            length);
67 void             soup_message_body_append_take   (SoupMessageBody *body,
68                                                   guchar          *data,
69                                                   gsize            length);
70 void             soup_message_body_append_buffer (SoupMessageBody *body,
71                                                   SoupBuffer      *buffer);
72 void             soup_message_body_truncate      (SoupMessageBody *body);
73 void             soup_message_body_complete      (SoupMessageBody *body);
74
75 SoupBuffer      *soup_message_body_flatten       (SoupMessageBody *body);
76
77 SoupBuffer      *soup_message_body_get_chunk     (SoupMessageBody *body,
78                                                   goffset          offset);
79
80 void             soup_message_body_got_chunk     (SoupMessageBody *body,
81                                                   SoupBuffer      *chunk);
82 void             soup_message_body_wrote_chunk   (SoupMessageBody *body,
83                                                   SoupBuffer      *chunk);
84
85 void             soup_message_body_free          (SoupMessageBody *body);
86
87 G_END_DECLS
88
89 #endif /* SOUP_MESSAGE_BODY_H */