Remove build warning
[platform/upstream/libsoup.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 SOUP_AVAILABLE_IN_2_32
32 SoupBuffer *soup_buffer_new_take       (guchar         *data,
33                                         gsize           length);
34 SoupBuffer *soup_buffer_new_subbuffer  (SoupBuffer     *parent,
35                                         gsize           offset,
36                                         gsize           length);
37
38 SoupBuffer *soup_buffer_new_with_owner (gconstpointer   data,
39                                         gsize           length,
40                                         gpointer        owner,
41                                         GDestroyNotify  owner_dnotify);
42 gpointer    soup_buffer_get_owner      (SoupBuffer     *buffer);
43 SOUP_AVAILABLE_IN_2_32
44 void        soup_buffer_get_data       (SoupBuffer     *buffer,
45                                         const guint8  **data,
46                                         gsize          *length);
47 SOUP_AVAILABLE_IN_2_40
48 GBytes     *soup_buffer_get_as_bytes   (SoupBuffer *buffer);
49
50 SoupBuffer *soup_buffer_copy           (SoupBuffer     *buffer);
51 void        soup_buffer_free           (SoupBuffer     *buffer);
52
53 typedef struct {
54         const char *data;
55         goffset     length;
56 } SoupMessageBody;
57
58 GType soup_message_body_get_type (void);
59 #define SOUP_TYPE_MESSAGE_BODY (soup_message_body_get_type ())
60
61 SoupMessageBody *soup_message_body_new           (void);
62
63 SOUP_AVAILABLE_IN_2_24
64 void             soup_message_body_set_accumulate(SoupMessageBody *body,
65                                                   gboolean         accumulate);
66 SOUP_AVAILABLE_IN_2_24
67 gboolean         soup_message_body_get_accumulate(SoupMessageBody *body);
68
69 void             soup_message_body_append        (SoupMessageBody *body,
70                                                   SoupMemoryUse    use,
71                                                   gconstpointer    data,
72                                                   gsize            length);
73 SOUP_AVAILABLE_IN_2_32
74 void             soup_message_body_append_take   (SoupMessageBody *body,
75                                                   guchar          *data,
76                                                   gsize            length);
77 void             soup_message_body_append_buffer (SoupMessageBody *body,
78                                                   SoupBuffer      *buffer);
79 void             soup_message_body_truncate      (SoupMessageBody *body);
80 void             soup_message_body_complete      (SoupMessageBody *body);
81
82 SoupBuffer      *soup_message_body_flatten       (SoupMessageBody *body);
83
84 SoupBuffer      *soup_message_body_get_chunk     (SoupMessageBody *body,
85                                                   goffset          offset);
86
87 SOUP_AVAILABLE_IN_2_24
88 void             soup_message_body_got_chunk     (SoupMessageBody *body,
89                                                   SoupBuffer      *chunk);
90 SOUP_AVAILABLE_IN_2_24
91 void             soup_message_body_wrote_chunk   (SoupMessageBody *body,
92                                                   SoupBuffer      *chunk);
93
94 void             soup_message_body_free          (SoupMessageBody *body);
95
96 G_END_DECLS
97
98 #endif /* SOUP_MESSAGE_BODY_H */