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>
11 typedef struct SoupMessageHeaders SoupMessageHeaders;
12 GType soup_message_headers_get_type (void);
13 #define SOUP_TYPE_MESSAGE_HEADERS (soup_message_headers_get_type ())
16 SOUP_MESSAGE_HEADERS_REQUEST,
17 SOUP_MESSAGE_HEADERS_RESPONSE,
18 SOUP_MESSAGE_HEADERS_MULTIPART
19 } SoupMessageHeadersType;
21 SoupMessageHeaders *soup_message_headers_new (SoupMessageHeadersType type);
23 void soup_message_headers_free (SoupMessageHeaders *hdrs);
25 void soup_message_headers_append (SoupMessageHeaders *hdrs,
28 void soup_message_headers_replace (SoupMessageHeaders *hdrs,
32 void soup_message_headers_remove (SoupMessageHeaders *hdrs,
34 void soup_message_headers_clear (SoupMessageHeaders *hdrs);
36 SOUP_AVAILABLE_IN_2_36
37 void soup_message_headers_clean_connection_headers (SoupMessageHeaders *hdrs);
39 #ifndef LIBSOUP_DISABLE_DEPRECATED
40 SOUP_DEPRECATED_IN_2_28_FOR ("soup_message_headers_get_one or soup_message_headers_get_list")
41 const char *soup_message_headers_get (SoupMessageHeaders *hdrs,
44 SOUP_AVAILABLE_IN_2_28
45 const char *soup_message_headers_get_one (SoupMessageHeaders *hdrs,
47 SOUP_AVAILABLE_IN_2_28
48 const char *soup_message_headers_get_list (SoupMessageHeaders *hdrs,
51 typedef void (*SoupMessageHeadersForeachFunc)(const char *name,
55 void soup_message_headers_foreach (SoupMessageHeaders *hdrs,
56 SoupMessageHeadersForeachFunc func,
62 } SoupMessageHeadersIter;
64 void soup_message_headers_iter_init (SoupMessageHeadersIter *iter,
65 SoupMessageHeaders *hdrs);
66 gboolean soup_message_headers_iter_next (SoupMessageHeadersIter *iter,
70 /* Specific headers */
73 SOUP_ENCODING_UNRECOGNIZED,
75 SOUP_ENCODING_CONTENT_LENGTH,
77 SOUP_ENCODING_CHUNKED,
78 SOUP_ENCODING_BYTERANGES
81 SoupEncoding soup_message_headers_get_encoding (SoupMessageHeaders *hdrs);
82 void soup_message_headers_set_encoding (SoupMessageHeaders *hdrs,
83 SoupEncoding encoding);
85 goffset soup_message_headers_get_content_length (SoupMessageHeaders *hdrs);
86 void soup_message_headers_set_content_length (SoupMessageHeaders *hdrs,
87 goffset content_length);
90 SOUP_EXPECTATION_UNRECOGNIZED = (1 << 0),
91 SOUP_EXPECTATION_CONTINUE = (1 << 1)
94 SoupExpectation soup_message_headers_get_expectations (SoupMessageHeaders *hdrs);
95 void soup_message_headers_set_expectations (SoupMessageHeaders *hdrs,
96 SoupExpectation expectations);
103 SOUP_AVAILABLE_IN_2_26
104 gboolean soup_message_headers_get_ranges (SoupMessageHeaders *hdrs,
105 goffset total_length,
108 SOUP_AVAILABLE_IN_2_26
109 void soup_message_headers_free_ranges (SoupMessageHeaders *hdrs,
111 SOUP_AVAILABLE_IN_2_26
112 void soup_message_headers_set_ranges (SoupMessageHeaders *hdrs,
115 SOUP_AVAILABLE_IN_2_26
116 void soup_message_headers_set_range (SoupMessageHeaders *hdrs,
120 SOUP_AVAILABLE_IN_2_26
121 gboolean soup_message_headers_get_content_range (SoupMessageHeaders *hdrs,
124 goffset *total_length);
125 SOUP_AVAILABLE_IN_2_26
126 void soup_message_headers_set_content_range (SoupMessageHeaders *hdrs,
129 goffset total_length);
132 SOUP_AVAILABLE_IN_2_26
133 const char *soup_message_headers_get_content_type (SoupMessageHeaders *hdrs,
134 GHashTable **params);
135 SOUP_AVAILABLE_IN_2_26
136 void soup_message_headers_set_content_type (SoupMessageHeaders *hdrs,
137 const char *content_type,
140 SOUP_AVAILABLE_IN_2_26
141 gboolean soup_message_headers_get_content_disposition (SoupMessageHeaders *hdrs,
143 GHashTable **params);
144 SOUP_AVAILABLE_IN_2_26
145 void soup_message_headers_set_content_disposition (SoupMessageHeaders *hdrs,
146 const char *disposition,
149 #endif /* SOUP_MESSAGE_HEADERS_H */