1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
3 * Copyright (C) 2000-2003, Ximian, Inc.
7 #define SOUP_SESSION_H 1
9 #include <libsoup/soup-types.h>
10 #include <libsoup/soup-address.h>
11 #include <libsoup/soup-message.h>
15 #define SOUP_TYPE_SESSION (soup_session_get_type ())
16 #define SOUP_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_SESSION, SoupSession))
17 #define SOUP_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_SESSION, SoupSessionClass))
18 #define SOUP_IS_SESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOUP_TYPE_SESSION))
19 #define SOUP_IS_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SOUP_TYPE_SESSION))
20 #define SOUP_SESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_SESSION, SoupSessionClass))
22 typedef void (*SoupSessionCallback) (SoupSession *session,
32 GObjectClass parent_class;
35 void (*request_started) (SoupSession *session, SoupMessage *msg,
37 void (*authenticate) (SoupSession *session, SoupMessage *msg,
38 SoupAuth *auth, gboolean retrying);
41 void (*queue_message) (SoupSession *session, SoupMessage *msg,
42 SoupSessionCallback callback,
44 void (*requeue_message) (SoupSession *session, SoupMessage *msg);
45 guint (*send_message) (SoupSession *session, SoupMessage *msg);
47 void (*cancel_message) (SoupSession *session, SoupMessage *msg,
50 void (*auth_required) (SoupSession *session, SoupMessage *msg,
51 SoupAuth *auth, gboolean retrying);
53 void (*flush_queue) (SoupSession *session);
55 void (*kick) (SoupSession *session);
57 /* Padding for future expansion */
58 void (*_libsoup_reserved4) (void);
61 GType soup_session_get_type (void);
63 #define SOUP_SESSION_LOCAL_ADDRESS "local-address"
64 #define SOUP_SESSION_PROXY_URI "proxy-uri"
65 #define SOUP_SESSION_PROXY_RESOLVER "proxy-resolver"
66 #define SOUP_SESSION_MAX_CONNS "max-conns"
67 #define SOUP_SESSION_MAX_CONNS_PER_HOST "max-conns-per-host"
68 #define SOUP_SESSION_USE_NTLM "use-ntlm"
69 #define SOUP_SESSION_SSL_CA_FILE "ssl-ca-file"
70 #define SOUP_SESSION_SSL_USE_SYSTEM_CA_FILE "ssl-use-system-ca-file"
71 #define SOUP_SESSION_TLS_DATABASE "tls-database"
72 #define SOUP_SESSION_SSL_STRICT "ssl-strict"
73 #define SOUP_SESSION_ASYNC_CONTEXT "async-context"
74 #define SOUP_SESSION_USE_THREAD_CONTEXT "use-thread-context"
75 #define SOUP_SESSION_TIMEOUT "timeout"
76 #define SOUP_SESSION_USER_AGENT "user-agent"
77 #define SOUP_SESSION_ACCEPT_LANGUAGE "accept-language"
78 #define SOUP_SESSION_ACCEPT_LANGUAGE_AUTO "accept-language-auto"
79 #define SOUP_SESSION_IDLE_TIMEOUT "idle-timeout"
80 #define SOUP_SESSION_ADD_FEATURE "add-feature"
81 #define SOUP_SESSION_ADD_FEATURE_BY_TYPE "add-feature-by-type"
82 #define SOUP_SESSION_REMOVE_FEATURE_BY_TYPE "remove-feature-by-type"
83 #define SOUP_SESSION_HTTP_ALIASES "http-aliases"
84 #define SOUP_SESSION_HTTPS_ALIASES "https-aliases"
85 /*#if ENABLE(TIZEN_CERTIFICATE_FILE_SET)*/
86 #define SOUP_SESSION_CERTIFICATE_PATH "certificate-path"
88 //#if ENABLE(TIZEN_TV_CLIENT_CERTIFICATE)
89 #define SOUP_SESSION_WIDGET_ENGINE "widget-engine"
92 SOUP_AVAILABLE_IN_2_42
93 SoupSession *soup_session_new (void);
95 SOUP_AVAILABLE_IN_2_42
96 SoupSession *soup_session_new_with_options (const char *optname1,
97 ...) G_GNUC_NULL_TERMINATED;
99 void soup_session_queue_message (SoupSession *session,
101 SoupSessionCallback callback,
103 void soup_session_requeue_message (SoupSession *session,
106 guint soup_session_send_message (SoupSession *session,
109 void soup_session_pause_message (SoupSession *session,
111 void soup_session_unpause_message (SoupSession *session,
114 void soup_session_cancel_message (SoupSession *session,
117 void soup_session_abort (SoupSession *session);
119 GMainContext *soup_session_get_async_context(SoupSession *session);
121 SOUP_AVAILABLE_IN_2_42
122 void soup_session_send_async (SoupSession *session,
124 GCancellable *cancellable,
125 GAsyncReadyCallback callback,
127 SOUP_AVAILABLE_IN_2_42
128 GInputStream *soup_session_send_finish (SoupSession *session,
129 GAsyncResult *result,
131 SOUP_AVAILABLE_IN_2_42
132 GInputStream *soup_session_send (SoupSession *session,
134 GCancellable *cancellable,
137 #ifndef SOUP_DISABLE_DEPRECATED
138 /* SOUP_AVAILABLE_IN_2_30 -- this trips up gtkdoc-scan */
139 SOUP_DEPRECATED_IN_2_38_FOR (soup_session_prefetch_dns)
140 void soup_session_prepare_for_uri (SoupSession *session,
144 SOUP_AVAILABLE_IN_2_38
145 void soup_session_prefetch_dns (SoupSession *session,
146 const char *hostname,
147 GCancellable *cancellable,
148 SoupAddressCallback callback,
151 SOUP_AVAILABLE_IN_2_38
152 gboolean soup_session_would_redirect (SoupSession *session,
154 SOUP_AVAILABLE_IN_2_38
155 gboolean soup_session_redirect_message (SoupSession *session,
158 SOUP_AVAILABLE_IN_2_24
159 void soup_session_add_feature (SoupSession *session,
160 SoupSessionFeature *feature);
161 SOUP_AVAILABLE_IN_2_24
162 void soup_session_add_feature_by_type (SoupSession *session,
164 SOUP_AVAILABLE_IN_2_24
165 void soup_session_remove_feature (SoupSession *session,
166 SoupSessionFeature *feature);
167 SOUP_AVAILABLE_IN_2_24
168 void soup_session_remove_feature_by_type (SoupSession *session,
170 SOUP_AVAILABLE_IN_2_42
171 gboolean soup_session_has_feature (SoupSession *session,
173 SOUP_AVAILABLE_IN_2_26
174 GSList *soup_session_get_features (SoupSession *session,
176 SOUP_AVAILABLE_IN_2_26
177 SoupSessionFeature *soup_session_get_feature (SoupSession *session,
179 SOUP_AVAILABLE_IN_2_28
180 SoupSessionFeature *soup_session_get_feature_for_message(SoupSession *session,
184 SOUP_AVAILABLE_IN_2_42
185 SoupRequest *soup_session_request (SoupSession *session,
186 const char *uri_string,
188 SOUP_AVAILABLE_IN_2_42
189 SoupRequest *soup_session_request_uri (SoupSession *session,
192 SOUP_AVAILABLE_IN_2_42
193 SoupRequestHTTP *soup_session_request_http (SoupSession *session,
195 const char *uri_string,
197 SOUP_AVAILABLE_IN_2_42
198 SoupRequestHTTP *soup_session_request_http_uri (SoupSession *session,
202 //#if ENABLE(TIZEN_TV_CERTIFICATE_HANDLING)
204 re_emit_connection_accept_certificate (SoupConnection *conn,
205 GTlsCertificate *certificate,
206 GTlsCertificateFlags errors,
210 SOUP_AVAILABLE_IN_2_42
211 GQuark soup_request_error_quark (void);
212 #define SOUP_REQUEST_ERROR soup_request_error_quark ()
215 SOUP_REQUEST_ERROR_BAD_URI,
216 SOUP_REQUEST_ERROR_UNSUPPORTED_URI_SCHEME,
217 SOUP_REQUEST_ERROR_PARSING,
218 SOUP_REQUEST_ERROR_ENCODING
221 //#if ENABLE(TIZEN_TV_DYNAMIC_CERTIFICATE_LOADING)
223 re_emit_connection_dynamic_client_certificate (SoupConnection *conn,
224 const char* current_host,
227 //#if ENABLE(TIZEN_TV_CREATE_IDLE_TCP_CONNECTION)
229 soup_session_create_idle_connection(SoupSession *session, SoupURI *uri);
234 #endif /* SOUP_SESSION_H */