Remove build warning
[platform/upstream/libsoup.git] / libsoup / soup-message-headers.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * Copyright (C) 2005 Novell, Inc.
4  */
5
6 #ifndef SOUP_MESSAGE_HEADERS_H
7 #define SOUP_MESSAGE_HEADERS_H 1
8
9 #include <libsoup/soup-types.h>
10
11 G_BEGIN_DECLS
12
13 typedef struct SoupMessageHeaders SoupMessageHeaders;
14 GType soup_message_headers_get_type (void);
15 #define SOUP_TYPE_MESSAGE_HEADERS (soup_message_headers_get_type ())
16
17 typedef enum {
18         SOUP_MESSAGE_HEADERS_REQUEST,
19         SOUP_MESSAGE_HEADERS_RESPONSE,
20         SOUP_MESSAGE_HEADERS_MULTIPART
21 } SoupMessageHeadersType;
22
23 SoupMessageHeaders *soup_message_headers_new      (SoupMessageHeadersType type);
24
25 void                soup_message_headers_free     (SoupMessageHeaders *hdrs);
26
27 void                soup_message_headers_append   (SoupMessageHeaders *hdrs,
28                                                    const char         *name,
29                                                    const char         *value);
30 void                soup_message_headers_replace  (SoupMessageHeaders *hdrs,
31                                                    const char         *name,
32                                                    const char         *value);
33
34 void                soup_message_headers_remove   (SoupMessageHeaders *hdrs,
35                                                    const char         *name);
36 void                soup_message_headers_clear    (SoupMessageHeaders *hdrs);
37
38 SOUP_AVAILABLE_IN_2_36
39 void                soup_message_headers_clean_connection_headers (SoupMessageHeaders *hdrs);
40
41 #ifndef SOUP_DISABLE_DEPRECATED
42 SOUP_DEPRECATED_IN_2_28_FOR ("soup_message_headers_get_one or soup_message_headers_get_list")
43 const char         *soup_message_headers_get      (SoupMessageHeaders *hdrs,
44                                                    const char         *name);
45 #endif
46 SOUP_AVAILABLE_IN_2_28
47 const char         *soup_message_headers_get_one  (SoupMessageHeaders *hdrs,
48                                                    const char         *name);
49 SOUP_AVAILABLE_IN_2_28
50 const char         *soup_message_headers_get_list (SoupMessageHeaders *hdrs,
51                                                    const char         *name);
52
53 typedef void      (*SoupMessageHeadersForeachFunc)(const char         *name,
54                                                    const char         *value,
55                                                    gpointer            user_data);
56
57 void                soup_message_headers_foreach  (SoupMessageHeaders *hdrs,
58                                                    SoupMessageHeadersForeachFunc func,
59                                                    gpointer            user_data);
60
61 typedef struct {
62         /*< private >*/
63         gpointer dummy[3];
64 } SoupMessageHeadersIter;
65
66 void                soup_message_headers_iter_init (SoupMessageHeadersIter  *iter,
67                                                     SoupMessageHeaders      *hdrs);
68 gboolean            soup_message_headers_iter_next (SoupMessageHeadersIter  *iter,
69                                                     const char             **name,
70                                                     const char             **value);
71
72 /* Specific headers */
73
74 typedef enum {
75         SOUP_ENCODING_UNRECOGNIZED,
76         SOUP_ENCODING_NONE,
77         SOUP_ENCODING_CONTENT_LENGTH,
78         SOUP_ENCODING_EOF,
79         SOUP_ENCODING_CHUNKED,
80         SOUP_ENCODING_BYTERANGES
81 } SoupEncoding;
82
83 SoupEncoding    soup_message_headers_get_encoding        (SoupMessageHeaders *hdrs);
84 void            soup_message_headers_set_encoding        (SoupMessageHeaders *hdrs,
85                                                           SoupEncoding        encoding);
86
87 goffset         soup_message_headers_get_content_length  (SoupMessageHeaders *hdrs);
88 void            soup_message_headers_set_content_length  (SoupMessageHeaders *hdrs,
89                                                           goffset             content_length);
90
91 typedef enum {
92         SOUP_EXPECTATION_UNRECOGNIZED = (1 << 0),
93         SOUP_EXPECTATION_CONTINUE     = (1 << 1)
94 } SoupExpectation;
95
96 SoupExpectation soup_message_headers_get_expectations    (SoupMessageHeaders *hdrs);
97 void            soup_message_headers_set_expectations    (SoupMessageHeaders *hdrs,
98                                                           SoupExpectation     expectations);
99
100 typedef struct {
101         goffset start;
102         goffset end;
103 } SoupRange;
104
105 SOUP_AVAILABLE_IN_2_26
106 gboolean        soup_message_headers_get_ranges          (SoupMessageHeaders  *hdrs,
107                                                           goffset              total_length,
108                                                           SoupRange          **ranges,
109                                                           int                 *length);
110 SOUP_AVAILABLE_IN_2_26
111 void            soup_message_headers_free_ranges         (SoupMessageHeaders  *hdrs,
112                                                           SoupRange           *ranges);
113 SOUP_AVAILABLE_IN_2_26
114 void            soup_message_headers_set_ranges          (SoupMessageHeaders  *hdrs,
115                                                           SoupRange           *ranges,
116                                                           int                  length);
117 SOUP_AVAILABLE_IN_2_26
118 void            soup_message_headers_set_range           (SoupMessageHeaders  *hdrs,
119                                                           goffset              start,
120                                                           goffset              end);
121
122 SOUP_AVAILABLE_IN_2_26
123 gboolean        soup_message_headers_get_content_range   (SoupMessageHeaders  *hdrs,
124                                                           goffset             *start,
125                                                           goffset             *end,
126                                                           goffset             *total_length);
127 SOUP_AVAILABLE_IN_2_26
128 void            soup_message_headers_set_content_range   (SoupMessageHeaders  *hdrs,
129                                                           goffset              start,
130                                                           goffset              end,
131                                                           goffset              total_length);
132
133
134 SOUP_AVAILABLE_IN_2_26
135 const char *soup_message_headers_get_content_type     (SoupMessageHeaders  *hdrs,
136                                                        GHashTable         **params);
137 SOUP_AVAILABLE_IN_2_26
138 void        soup_message_headers_set_content_type     (SoupMessageHeaders  *hdrs,
139                                                        const char          *content_type,
140                                                        GHashTable          *params);
141
142 SOUP_AVAILABLE_IN_2_26
143 gboolean soup_message_headers_get_content_disposition (SoupMessageHeaders  *hdrs,
144                                                        char               **disposition,
145                                                        GHashTable         **params);
146 SOUP_AVAILABLE_IN_2_26
147 void     soup_message_headers_set_content_disposition (SoupMessageHeaders  *hdrs,
148                                                        const char          *disposition,
149                                                        GHashTable          *params);
150
151 G_END_DECLS
152
153 #endif /* SOUP_MESSAGE_HEADERS_H */