soup-session.h 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
  2. /*
  3. * Copyright (C) 2000-2003, Ximian, Inc.
  4. */
  5. #ifndef SOUP_SESSION_H
  6. #define SOUP_SESSION_H 1
  7. #include <libsoup/soup-types.h>
  8. #include <libsoup/soup-address.h>
  9. #include <libsoup/soup-message.h>
  10. #include <libsoup/soup-websocket-connection.h>
  11. G_BEGIN_DECLS
  12. #define SOUP_TYPE_SESSION (soup_session_get_type ())
  13. #define SOUP_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_SESSION, SoupSession))
  14. #define SOUP_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_SESSION, SoupSessionClass))
  15. #define SOUP_IS_SESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOUP_TYPE_SESSION))
  16. #define SOUP_IS_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SOUP_TYPE_SESSION))
  17. #define SOUP_SESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_SESSION, SoupSessionClass))
  18. typedef void (*SoupSessionCallback) (SoupSession *session,
  19. SoupMessage *msg,
  20. gpointer user_data);
  21. struct _SoupSession {
  22. GObject parent;
  23. };
  24. typedef struct {
  25. GObjectClass parent_class;
  26. /* signals */
  27. void (*request_started) (SoupSession *session, SoupMessage *msg,
  28. SoupSocket *socket);
  29. void (*authenticate) (SoupSession *session, SoupMessage *msg,
  30. SoupAuth *auth, gboolean retrying);
  31. /* methods */
  32. void (*queue_message) (SoupSession *session, SoupMessage *msg,
  33. SoupSessionCallback callback,
  34. gpointer user_data);
  35. void (*requeue_message) (SoupSession *session, SoupMessage *msg);
  36. guint (*send_message) (SoupSession *session, SoupMessage *msg);
  37. void (*cancel_message) (SoupSession *session, SoupMessage *msg,
  38. guint status_code);
  39. void (*auth_required) (SoupSession *session, SoupMessage *msg,
  40. SoupAuth *auth, gboolean retrying);
  41. void (*flush_queue) (SoupSession *session);
  42. void (*kick) (SoupSession *session);
  43. /* Padding for future expansion */
  44. void (*_libsoup_reserved4) (void);
  45. } SoupSessionClass;
  46. SOUP_AVAILABLE_IN_2_42
  47. GType soup_session_get_type (void);
  48. #define SOUP_SESSION_LOCAL_ADDRESS "local-address"
  49. #define SOUP_SESSION_PROXY_URI "proxy-uri"
  50. #define SOUP_SESSION_PROXY_RESOLVER "proxy-resolver"
  51. #define SOUP_SESSION_MAX_CONNS "max-conns"
  52. #define SOUP_SESSION_MAX_CONNS_PER_HOST "max-conns-per-host"
  53. #define SOUP_SESSION_USE_NTLM "use-ntlm"
  54. #define SOUP_SESSION_SSL_CA_FILE "ssl-ca-file"
  55. #define SOUP_SESSION_SSL_USE_SYSTEM_CA_FILE "ssl-use-system-ca-file"
  56. #define SOUP_SESSION_TLS_DATABASE "tls-database"
  57. #define SOUP_SESSION_SSL_STRICT "ssl-strict"
  58. #define SOUP_SESSION_TLS_INTERACTION "tls-interaction"
  59. #define SOUP_SESSION_ASYNC_CONTEXT "async-context"
  60. #define SOUP_SESSION_USE_THREAD_CONTEXT "use-thread-context"
  61. #define SOUP_SESSION_TIMEOUT "timeout"
  62. #define SOUP_SESSION_USER_AGENT "user-agent"
  63. #define SOUP_SESSION_ACCEPT_LANGUAGE "accept-language"
  64. #define SOUP_SESSION_ACCEPT_LANGUAGE_AUTO "accept-language-auto"
  65. #define SOUP_SESSION_IDLE_TIMEOUT "idle-timeout"
  66. #define SOUP_SESSION_ADD_FEATURE "add-feature"
  67. #define SOUP_SESSION_ADD_FEATURE_BY_TYPE "add-feature-by-type"
  68. #define SOUP_SESSION_REMOVE_FEATURE_BY_TYPE "remove-feature-by-type"
  69. #define SOUP_SESSION_HTTP_ALIASES "http-aliases"
  70. #define SOUP_SESSION_HTTPS_ALIASES "https-aliases"
  71. SOUP_AVAILABLE_IN_2_42
  72. SoupSession *soup_session_new (void);
  73. SOUP_AVAILABLE_IN_2_42
  74. SoupSession *soup_session_new_with_options (const char *optname1,
  75. ...) G_GNUC_NULL_TERMINATED;
  76. SOUP_AVAILABLE_IN_2_4
  77. void soup_session_queue_message (SoupSession *session,
  78. SoupMessage *msg,
  79. SoupSessionCallback callback,
  80. gpointer user_data);
  81. SOUP_AVAILABLE_IN_2_4
  82. void soup_session_requeue_message (SoupSession *session,
  83. SoupMessage *msg);
  84. SOUP_AVAILABLE_IN_2_4
  85. guint soup_session_send_message (SoupSession *session,
  86. SoupMessage *msg);
  87. SOUP_AVAILABLE_IN_2_4
  88. void soup_session_pause_message (SoupSession *session,
  89. SoupMessage *msg);
  90. SOUP_AVAILABLE_IN_2_4
  91. void soup_session_unpause_message (SoupSession *session,
  92. SoupMessage *msg);
  93. SOUP_AVAILABLE_IN_2_4
  94. void soup_session_cancel_message (SoupSession *session,
  95. SoupMessage *msg,
  96. guint status_code);
  97. SOUP_AVAILABLE_IN_2_4
  98. void soup_session_abort (SoupSession *session);
  99. SOUP_AVAILABLE_IN_2_4
  100. GMainContext *soup_session_get_async_context(SoupSession *session);
  101. SOUP_AVAILABLE_IN_2_42
  102. void soup_session_send_async (SoupSession *session,
  103. SoupMessage *msg,
  104. GCancellable *cancellable,
  105. GAsyncReadyCallback callback,
  106. gpointer user_data);
  107. SOUP_AVAILABLE_IN_2_42
  108. GInputStream *soup_session_send_finish (SoupSession *session,
  109. GAsyncResult *result,
  110. GError **error);
  111. SOUP_AVAILABLE_IN_2_42
  112. GInputStream *soup_session_send (SoupSession *session,
  113. SoupMessage *msg,
  114. GCancellable *cancellable,
  115. GError **error);
  116. #ifndef SOUP_DISABLE_DEPRECATED
  117. SOUP_AVAILABLE_IN_2_30
  118. SOUP_DEPRECATED_IN_2_38_FOR (soup_session_prefetch_dns)
  119. void soup_session_prepare_for_uri (SoupSession *session,
  120. SoupURI *uri);
  121. #endif
  122. SOUP_AVAILABLE_IN_2_38
  123. void soup_session_prefetch_dns (SoupSession *session,
  124. const char *hostname,
  125. GCancellable *cancellable,
  126. SoupAddressCallback callback,
  127. gpointer user_data);
  128. SOUP_AVAILABLE_IN_2_38
  129. gboolean soup_session_would_redirect (SoupSession *session,
  130. SoupMessage *msg);
  131. SOUP_AVAILABLE_IN_2_38
  132. gboolean soup_session_redirect_message (SoupSession *session,
  133. SoupMessage *msg);
  134. SOUP_AVAILABLE_IN_2_24
  135. void soup_session_add_feature (SoupSession *session,
  136. SoupSessionFeature *feature);
  137. SOUP_AVAILABLE_IN_2_24
  138. void soup_session_add_feature_by_type (SoupSession *session,
  139. GType feature_type);
  140. SOUP_AVAILABLE_IN_2_24
  141. void soup_session_remove_feature (SoupSession *session,
  142. SoupSessionFeature *feature);
  143. SOUP_AVAILABLE_IN_2_24
  144. void soup_session_remove_feature_by_type (SoupSession *session,
  145. GType feature_type);
  146. SOUP_AVAILABLE_IN_2_42
  147. gboolean soup_session_has_feature (SoupSession *session,
  148. GType feature_type);
  149. SOUP_AVAILABLE_IN_2_26
  150. GSList *soup_session_get_features (SoupSession *session,
  151. GType feature_type);
  152. SOUP_AVAILABLE_IN_2_26
  153. SoupSessionFeature *soup_session_get_feature (SoupSession *session,
  154. GType feature_type);
  155. SOUP_AVAILABLE_IN_2_28
  156. SoupSessionFeature *soup_session_get_feature_for_message(SoupSession *session,
  157. GType feature_type,
  158. SoupMessage *msg);
  159. SOUP_AVAILABLE_IN_2_42
  160. SoupRequest *soup_session_request (SoupSession *session,
  161. const char *uri_string,
  162. GError **error);
  163. SOUP_AVAILABLE_IN_2_42
  164. SoupRequest *soup_session_request_uri (SoupSession *session,
  165. SoupURI *uri,
  166. GError **error);
  167. SOUP_AVAILABLE_IN_2_42
  168. SoupRequestHTTP *soup_session_request_http (SoupSession *session,
  169. const char *method,
  170. const char *uri_string,
  171. GError **error);
  172. SOUP_AVAILABLE_IN_2_42
  173. SoupRequestHTTP *soup_session_request_http_uri (SoupSession *session,
  174. const char *method,
  175. SoupURI *uri,
  176. GError **error);
  177. SOUP_AVAILABLE_IN_2_42
  178. GQuark soup_request_error_quark (void);
  179. #define SOUP_REQUEST_ERROR soup_request_error_quark ()
  180. typedef enum {
  181. SOUP_REQUEST_ERROR_BAD_URI,
  182. SOUP_REQUEST_ERROR_UNSUPPORTED_URI_SCHEME,
  183. SOUP_REQUEST_ERROR_PARSING,
  184. SOUP_REQUEST_ERROR_ENCODING
  185. } SoupRequestError;
  186. SOUP_AVAILABLE_IN_2_50
  187. GIOStream *soup_session_steal_connection (SoupSession *session,
  188. SoupMessage *msg);
  189. SOUP_AVAILABLE_IN_2_50
  190. void soup_session_websocket_connect_async (SoupSession *session,
  191. SoupMessage *msg,
  192. const char *origin,
  193. char **protocols,
  194. GCancellable *cancellable,
  195. GAsyncReadyCallback callback,
  196. gpointer user_data);
  197. SOUP_AVAILABLE_IN_2_50
  198. SoupWebsocketConnection *soup_session_websocket_connect_finish (SoupSession *session,
  199. GAsyncResult *result,
  200. GError **error);
  201. G_END_DECLS
  202. #endif /* SOUP_SESSION_H */