1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
3 * Copyright (C) 2005 Novell, Inc.
6 #ifndef SOUP_MESSAGE_HEADERS_H
7 #define SOUP_MESSAGE_HEADERS_H 1
9 #include <libsoup/soup-types.h>
13 typedef struct SoupMessageHeaders SoupMessageHeaders;
14 GType soup_message_headers_get_type (void);
15 #define SOUP_TYPE_MESSAGE_HEADERS (soup_message_headers_get_type ())
18 SOUP_MESSAGE_HEADERS_REQUEST,
19 SOUP_MESSAGE_HEADERS_RESPONSE,
20 SOUP_MESSAGE_HEADERS_MULTIPART
21 } SoupMessageHeadersType;
23 SoupMessageHeaders *soup_message_headers_new (SoupMessageHeadersType type);
25 void soup_message_headers_free (SoupMessageHeaders *hdrs);
27 void soup_message_headers_append (SoupMessageHeaders *hdrs,
30 void soup_message_headers_replace (SoupMessageHeaders *hdrs,
34 void soup_message_headers_remove (SoupMessageHeaders *hdrs,
36 void soup_message_headers_clear (SoupMessageHeaders *hdrs);
38 SOUP_AVAILABLE_IN_2_36
39 void soup_message_headers_clean_connection_headers (SoupMessageHeaders *hdrs);
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,
46 SOUP_AVAILABLE_IN_2_28
47 const char *soup_message_headers_get_one (SoupMessageHeaders *hdrs,
49 SOUP_AVAILABLE_IN_2_28
50 const char *soup_message_headers_get_list (SoupMessageHeaders *hdrs,
53 typedef void (*SoupMessageHeadersForeachFunc)(const char *name,
57 void soup_message_headers_foreach (SoupMessageHeaders *hdrs,
58 SoupMessageHeadersForeachFunc func,
64 } SoupMessageHeadersIter;
66 void soup_message_headers_iter_init (SoupMessageHeadersIter *iter,
67 SoupMessageHeaders *hdrs);
68 gboolean soup_message_headers_iter_next (SoupMessageHeadersIter *iter,
72 /* Specific headers */
75 SOUP_ENCODING_UNRECOGNIZED,
77 SOUP_ENCODING_CONTENT_LENGTH,
79 SOUP_ENCODING_CHUNKED,
80 SOUP_ENCODING_BYTERANGES
83 SoupEncoding soup_message_headers_get_encoding (SoupMessageHeaders *hdrs);
84 void soup_message_headers_set_encoding (SoupMessageHeaders *hdrs,
85 SoupEncoding encoding);
87 goffset soup_message_headers_get_content_length (SoupMessageHeaders *hdrs);
88 void soup_message_headers_set_content_length (SoupMessageHeaders *hdrs,
89 goffset content_length);
92 SOUP_EXPECTATION_UNRECOGNIZED = (1 << 0),
93 SOUP_EXPECTATION_CONTINUE = (1 << 1)
96 SoupExpectation soup_message_headers_get_expectations (SoupMessageHeaders *hdrs);
97 void soup_message_headers_set_expectations (SoupMessageHeaders *hdrs,
98 SoupExpectation expectations);
105 SOUP_AVAILABLE_IN_2_26
106 gboolean soup_message_headers_get_ranges (SoupMessageHeaders *hdrs,
107 goffset total_length,
110 SOUP_AVAILABLE_IN_2_26
111 void soup_message_headers_free_ranges (SoupMessageHeaders *hdrs,
113 SOUP_AVAILABLE_IN_2_26
114 void soup_message_headers_set_ranges (SoupMessageHeaders *hdrs,
117 SOUP_AVAILABLE_IN_2_26
118 void soup_message_headers_set_range (SoupMessageHeaders *hdrs,
122 SOUP_AVAILABLE_IN_2_26
123 gboolean soup_message_headers_get_content_range (SoupMessageHeaders *hdrs,
126 goffset *total_length);
127 SOUP_AVAILABLE_IN_2_26
128 void soup_message_headers_set_content_range (SoupMessageHeaders *hdrs,
131 goffset total_length);
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,
142 SOUP_AVAILABLE_IN_2_26
143 gboolean soup_message_headers_get_content_disposition (SoupMessageHeaders *hdrs,
145 GHashTable **params);
146 SOUP_AVAILABLE_IN_2_26
147 void soup_message_headers_set_content_disposition (SoupMessageHeaders *hdrs,
148 const char *disposition,
153 #endif /* SOUP_MESSAGE_HEADERS_H */