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