summaryrefslogtreecommitdiff
path: root/libsoup/soup-session.h
blob: 069443b19fdf6fbff7506b7b1f3724653ed012c4 (plain)
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
 * Copyright (C) 2000-2003, Ximian, Inc.
 */

#pragma once

#include "soup-types.h"
#include "soup-message.h"
#include "soup-websocket-connection.h"

G_BEGIN_DECLS

#define SOUP_TYPE_SESSION soup_session_get_type ()
SOUP_AVAILABLE_IN_ALL
G_DECLARE_FINAL_TYPE (SoupSession, soup_session, SOUP, SESSION, GObject)

SOUP_AVAILABLE_IN_ALL
GQuark soup_session_error_quark (void);
#define SOUP_SESSION_ERROR soup_session_error_quark ()

typedef enum {
	SOUP_SESSION_ERROR_BAD_URI,
	SOUP_SESSION_ERROR_UNSUPPORTED_URI_SCHEME,
	SOUP_SESSION_ERROR_PARSING,
	SOUP_SESSION_ERROR_ENCODING,
	SOUP_SESSION_ERROR_TOO_MANY_REDIRECTS,
	SOUP_SESSION_ERROR_TOO_MANY_RESTARTS,
	SOUP_SESSION_ERROR_REDIRECT_NO_LOCATION,
	SOUP_SESSION_ERROR_REDIRECT_BAD_URI
} SoupSessionError;

SOUP_AVAILABLE_IN_ALL
SoupSession        *soup_session_new                      (void);

SOUP_AVAILABLE_IN_ALL
SoupSession        *soup_session_new_with_options         (const char      *optname1,
							   ...) G_GNUC_NULL_TERMINATED;

SOUP_AVAILABLE_IN_ALL
GInetSocketAddress *soup_session_get_local_address        (SoupSession     *session);

SOUP_AVAILABLE_IN_ALL
guint               soup_session_get_max_conns            (SoupSession     *session);

SOUP_AVAILABLE_IN_ALL
guint               soup_session_get_max_conns_per_host   (SoupSession     *session);

SOUP_AVAILABLE_IN_ALL
void                soup_session_set_proxy_resolver       (SoupSession     *session,
							   GProxyResolver  *proxy_resolver);

SOUP_AVAILABLE_IN_ALL
GProxyResolver     *soup_session_get_proxy_resolver       (SoupSession     *session);

SOUP_AVAILABLE_IN_ALL
void                soup_session_set_tls_database         (SoupSession     *session,
							   GTlsDatabase    *tls_database);

SOUP_AVAILABLE_IN_ALL
GTlsDatabase       *soup_session_get_tls_database         (SoupSession     *session);

SOUP_AVAILABLE_IN_ALL
void                soup_session_set_tls_interaction      (SoupSession     *session,
							   GTlsInteraction *tls_interaction);

SOUP_AVAILABLE_IN_ALL
GTlsInteraction    *soup_session_get_tls_interaction      (SoupSession     *session);

SOUP_AVAILABLE_IN_ALL
void                soup_session_set_timeout              (SoupSession     *session,
							   guint            timeout);

SOUP_AVAILABLE_IN_ALL
guint               soup_session_get_timeout              (SoupSession     *session);

SOUP_AVAILABLE_IN_ALL
void                soup_session_set_idle_timeout         (SoupSession     *session,
							   guint            timeout);

SOUP_AVAILABLE_IN_ALL
guint               soup_session_get_idle_timeout         (SoupSession     *session);

SOUP_AVAILABLE_IN_ALL
void                soup_session_set_user_agent           (SoupSession     *session,
							   const char      *user_agent);

SOUP_AVAILABLE_IN_ALL
const char         *soup_session_get_user_agent           (SoupSession     *session);

SOUP_AVAILABLE_IN_ALL
void                soup_session_set_accept_language      (SoupSession     *session,
							   const char      *accept_language);

SOUP_AVAILABLE_IN_ALL
const char         *soup_session_get_accept_language      (SoupSession     *session);

SOUP_AVAILABLE_IN_ALL
void                soup_session_set_accept_language_auto (SoupSession     *session,
							   gboolean         accept_language_auto);

SOUP_AVAILABLE_IN_ALL
gboolean            soup_session_get_accept_language_auto (SoupSession     *session);

SOUP_AVAILABLE_IN_ALL
void            soup_session_abort            (SoupSession           *session);

SOUP_AVAILABLE_IN_ALL
void            soup_session_send_async       (SoupSession           *session,
					       SoupMessage           *msg,
					       int                    io_priority,
					       GCancellable          *cancellable,
					       GAsyncReadyCallback    callback,
					       gpointer               user_data);
SOUP_AVAILABLE_IN_ALL
GInputStream   *soup_session_send_finish      (SoupSession           *session,
					       GAsyncResult          *result,
					       GError               **error);
SOUP_AVAILABLE_IN_ALL
GInputStream   *soup_session_send             (SoupSession           *session,
					       SoupMessage           *msg,
					       GCancellable          *cancellable,
					       GError               **error) G_GNUC_WARN_UNUSED_RESULT;

SOUP_AVAILABLE_IN_ALL
void                soup_session_add_feature            (SoupSession        *session,
							 SoupSessionFeature *feature);
SOUP_AVAILABLE_IN_ALL
void                soup_session_add_feature_by_type    (SoupSession        *session,
							 GType               feature_type);
SOUP_AVAILABLE_IN_ALL
void                soup_session_remove_feature         (SoupSession        *session,
							 SoupSessionFeature *feature);
SOUP_AVAILABLE_IN_ALL
void                soup_session_remove_feature_by_type (SoupSession        *session,
							 GType               feature_type);
SOUP_AVAILABLE_IN_ALL
gboolean            soup_session_has_feature            (SoupSession        *session,
							 GType               feature_type);
SOUP_AVAILABLE_IN_ALL
GSList             *soup_session_get_features           (SoupSession        *session,
							 GType               feature_type);
SOUP_AVAILABLE_IN_ALL
SoupSessionFeature *soup_session_get_feature            (SoupSession        *session,
							 GType               feature_type);
SOUP_AVAILABLE_IN_ALL
SoupSessionFeature *soup_session_get_feature_for_message(SoupSession        *session,
							 GType               feature_type,
							 SoupMessage        *msg);

SOUP_AVAILABLE_IN_ALL
GInputStream       *soup_session_read_uri               (SoupSession        *session,
							 const char         *uri,
							 GCancellable       *cancellable,
							 goffset            *content_length,
							 char              **content_type,
							 GError            **error);
SOUP_AVAILABLE_IN_ALL
void                soup_session_read_uri_async         (SoupSession        *session,
							 const char         *uri,
							 int                 io_priority,
							 GCancellable       *cancellable,
							 GAsyncReadyCallback callback,
							 gpointer            user_data);
SOUP_AVAILABLE_IN_ALL
GInputStream       *soup_session_read_uri_finish        (SoupSession        *session,
							 GAsyncResult       *result,
							 goffset            *content_length,
							 char              **content_type,
							 GError            **error);
SOUP_AVAILABLE_IN_ALL
GBytes             *soup_session_load_uri_bytes         (SoupSession        *session,
							 const char         *uri,
							 GCancellable       *cancellable,
							 char              **content_type,
							 GError            **error);
SOUP_AVAILABLE_IN_ALL
void                soup_session_load_uri_bytes_async   (SoupSession        *session,
							 const char         *uri,
							 int                 io_priority,
							 GCancellable       *cancellable,
							 GAsyncReadyCallback callback,
							 gpointer            user_data);
SOUP_AVAILABLE_IN_ALL
GBytes             *soup_session_load_uri_bytes_finish  (SoupSession        *session,
							 GAsyncResult       *result,
							 char              **content_type,
							 GError            **error);

SOUP_AVAILABLE_IN_ALL
void                     soup_session_websocket_connect_async  (SoupSession          *session,
								SoupMessage          *msg,
								const char           *origin,
								char                **protocols,
								int                   io_priority,
								GCancellable         *cancellable,
								GAsyncReadyCallback   callback,
								gpointer              user_data);

SOUP_AVAILABLE_IN_ALL
SoupWebsocketConnection *soup_session_websocket_connect_finish (SoupSession          *session,
								GAsyncResult         *result,
								GError              **error);

G_END_DECLS