Remove build warning
[platform/upstream/libsoup.git] / libsoup / soup-session.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * Copyright (C) 2000-2003, Ximian, Inc.
4  */
5
6 #ifndef SOUP_SESSION_H
7 #define SOUP_SESSION_H 1
8
9 #include <libsoup/soup-types.h>
10 #include <libsoup/soup-address.h>
11 #include <libsoup/soup-message.h>
12
13 G_BEGIN_DECLS
14
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))
21
22 typedef void (*SoupSessionCallback) (SoupSession           *session,
23                                      SoupMessage           *msg,
24                                      gpointer               user_data);
25
26 struct _SoupSession {
27         GObject parent;
28
29 };
30
31 typedef struct {
32         GObjectClass parent_class;
33
34         /* signals */
35         void (*request_started) (SoupSession *session, SoupMessage *msg,
36                                  SoupSocket *socket);
37         void (*authenticate)    (SoupSession *session, SoupMessage *msg,
38                                  SoupAuth *auth, gboolean retrying);
39
40         /* methods */
41         void  (*queue_message)   (SoupSession *session, SoupMessage *msg,
42                                   SoupSessionCallback callback,
43                                   gpointer user_data);
44         void  (*requeue_message) (SoupSession *session, SoupMessage *msg);
45         guint (*send_message)    (SoupSession *session, SoupMessage *msg);
46
47         void  (*cancel_message)  (SoupSession *session, SoupMessage *msg,
48                                   guint status_code);
49
50         void  (*auth_required)   (SoupSession *session, SoupMessage *msg,
51                                   SoupAuth *auth, gboolean retrying);
52
53         void  (*flush_queue)     (SoupSession *session);
54
55         void  (*kick)            (SoupSession *session);
56
57         /* Padding for future expansion */
58         void (*_libsoup_reserved4) (void);
59 } SoupSessionClass;
60
61 GType soup_session_get_type (void);
62
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"
87 /*#endif*/
88 //#if ENABLE(TIZEN_TV_CLIENT_CERTIFICATE)
89 #define SOUP_SESSION_WIDGET_ENGINE          "widget-engine"
90 //#endif
91
92 SOUP_AVAILABLE_IN_2_42
93 SoupSession    *soup_session_new              (void);
94
95 SOUP_AVAILABLE_IN_2_42
96 SoupSession    *soup_session_new_with_options (const char *optname1,
97                                                ...) G_GNUC_NULL_TERMINATED;
98
99 void            soup_session_queue_message    (SoupSession           *session,
100                                                SoupMessage           *msg,
101                                                SoupSessionCallback    callback,
102                                                gpointer               user_data);
103 void            soup_session_requeue_message  (SoupSession           *session,
104                                                SoupMessage           *msg);
105
106 guint           soup_session_send_message     (SoupSession           *session,
107                                                SoupMessage           *msg);
108
109 void            soup_session_pause_message    (SoupSession           *session,
110                                                SoupMessage           *msg);
111 void            soup_session_unpause_message  (SoupSession           *session,
112                                                SoupMessage           *msg);
113
114 void            soup_session_cancel_message   (SoupSession           *session,
115                                                SoupMessage           *msg,
116                                                guint                  status_code);
117 void            soup_session_abort            (SoupSession           *session);
118
119 GMainContext   *soup_session_get_async_context(SoupSession           *session);
120
121 SOUP_AVAILABLE_IN_2_42
122 void            soup_session_send_async       (SoupSession           *session,
123                                                SoupMessage           *msg,
124                                                GCancellable          *cancellable,
125                                                GAsyncReadyCallback    callback,
126                                                gpointer               user_data);
127 SOUP_AVAILABLE_IN_2_42
128 GInputStream   *soup_session_send_finish      (SoupSession           *session,
129                                                GAsyncResult          *result,
130                                                GError               **error);
131 SOUP_AVAILABLE_IN_2_42
132 GInputStream   *soup_session_send             (SoupSession           *session,
133                                                SoupMessage           *msg,
134                                                GCancellable          *cancellable,
135                                                GError               **error);
136
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,
141                                                SoupURI               *uri);
142 #endif
143
144 SOUP_AVAILABLE_IN_2_38
145 void            soup_session_prefetch_dns     (SoupSession           *session,
146                                                const char            *hostname,
147                                                GCancellable          *cancellable,
148                                                SoupAddressCallback    callback,
149                                                gpointer               user_data);
150
151 SOUP_AVAILABLE_IN_2_38
152 gboolean        soup_session_would_redirect   (SoupSession           *session,
153                                                SoupMessage           *msg);
154 SOUP_AVAILABLE_IN_2_38
155 gboolean        soup_session_redirect_message (SoupSession           *session,
156                                                SoupMessage           *msg);
157
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,
163                                                          GType               feature_type);
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,
169                                                          GType               feature_type);
170 SOUP_AVAILABLE_IN_2_42
171 gboolean            soup_session_has_feature            (SoupSession        *session,
172                                                          GType               feature_type);
173 SOUP_AVAILABLE_IN_2_26
174 GSList             *soup_session_get_features           (SoupSession        *session,
175                                                          GType               feature_type);
176 SOUP_AVAILABLE_IN_2_26
177 SoupSessionFeature *soup_session_get_feature            (SoupSession        *session,
178                                                          GType               feature_type);
179 SOUP_AVAILABLE_IN_2_28
180 SoupSessionFeature *soup_session_get_feature_for_message(SoupSession        *session,
181                                                          GType               feature_type,
182                                                          SoupMessage        *msg);
183
184 SOUP_AVAILABLE_IN_2_42
185 SoupRequest     *soup_session_request          (SoupSession  *session,
186                                                 const char   *uri_string,
187                                                 GError      **error);
188 SOUP_AVAILABLE_IN_2_42
189 SoupRequest     *soup_session_request_uri      (SoupSession  *session,
190                                                 SoupURI      *uri,
191                                                 GError      **error);
192 SOUP_AVAILABLE_IN_2_42
193 SoupRequestHTTP *soup_session_request_http     (SoupSession  *session,
194                                                 const char   *method,
195                                                 const char   *uri_string,
196                                                 GError      **error);
197 SOUP_AVAILABLE_IN_2_42
198 SoupRequestHTTP *soup_session_request_http_uri (SoupSession  *session,
199                                                 const char   *method,
200                                                 SoupURI      *uri,
201                                                 GError      **error);
202 //#if ENABLE(TIZEN_TV_CERTIFICATE_HANDLING)
203 gboolean
204 re_emit_connection_accept_certificate          (SoupConnection      *conn,
205                                                 GTlsCertificate     *certificate,
206                                                 GTlsCertificateFlags errors,
207                                                 gpointer             user_data);
208 //#endif
209
210 SOUP_AVAILABLE_IN_2_42
211 GQuark soup_request_error_quark (void);
212 #define SOUP_REQUEST_ERROR soup_request_error_quark ()
213
214 typedef enum {
215         SOUP_REQUEST_ERROR_BAD_URI,
216         SOUP_REQUEST_ERROR_UNSUPPORTED_URI_SCHEME,
217         SOUP_REQUEST_ERROR_PARSING,
218         SOUP_REQUEST_ERROR_ENCODING
219 } SoupRequestError;
220
221 //#if ENABLE(TIZEN_TV_DYNAMIC_CERTIFICATE_LOADING)
222 const char*
223 re_emit_connection_dynamic_client_certificate (SoupConnection      *conn,
224                                                const char* current_host,
225                                                gpointer user_data);
226 //#endif
227 //#if ENABLE(TIZEN_TV_CREATE_IDLE_TCP_CONNECTION)
228 void
229 soup_session_create_idle_connection(SoupSession *session, SoupURI *uri);
230 //#endif
231
232 G_END_DECLS
233
234 #endif /* SOUP_SESSION_H */