1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */ 2 /* 3 * Copyright (C) 2000-2003, Ximian, Inc. 4 */ 5 6 #ifndef __SOUP_CONNECTION_H__ 7 #define __SOUP_CONNECTION_H__ 1 8 9 #include "soup-types.h" 10 #include "soup-message-private.h" 11 #include "soup-misc.h" 12 13 G_BEGIN_DECLS 14 15 #define SOUP_TYPE_CONNECTION (soup_connection_get_type ()) 16 G_DECLARE_FINAL_TYPE (SoupConnection, soup_connection, SOUP, CONNECTION, GObject) 17 18 typedef enum { 19 SOUP_CONNECTION_NEW, 20 SOUP_CONNECTION_CONNECTING, 21 SOUP_CONNECTION_IDLE, 22 SOUP_CONNECTION_IN_USE, 23 SOUP_CONNECTION_DISCONNECTED 24 } SoupConnectionState; 25 26 void soup_connection_connect_async (SoupConnection *conn, 27 int io_priority, 28 GCancellable *cancellable, 29 GAsyncReadyCallback callback, 30 gpointer user_data); 31 gboolean soup_connection_connect_finish (SoupConnection *conn, 32 GAsyncResult *result, 33 GError **error); 34 gboolean soup_connection_connect (SoupConnection *conn, 35 GCancellable *cancellable, 36 GError **error); 37 void soup_connection_tunnel_handshake_async (SoupConnection *conn, 38 int io_priority, 39 GCancellable *cancellable, 40 GAsyncReadyCallback callback, 41 gpointer user_data); 42 gboolean soup_connection_tunnel_handshake_finish (SoupConnection *conn, 43 GAsyncResult *result, 44 GError **error); 45 gboolean soup_connection_tunnel_handshake (SoupConnection *conn, 46 GCancellable *cancellable, 47 GError **error); 48 void soup_connection_disconnect (SoupConnection *conn); 49 50 GSocket *soup_connection_get_socket (SoupConnection *conn); 51 GIOStream *soup_connection_get_iostream (SoupConnection *conn); 52 GIOStream *soup_connection_steal_iostream (SoupConnection *conn); 53 GUri *soup_connection_get_remote_uri (SoupConnection *conn); 54 GUri *soup_connection_get_proxy_uri (SoupConnection *conn); 55 gboolean soup_connection_is_via_proxy (SoupConnection *conn); 56 gboolean soup_connection_is_tunnelled (SoupConnection *conn); 57 58 SoupConnectionState soup_connection_get_state (SoupConnection *conn); 59 void soup_connection_set_in_use (SoupConnection *conn, 60 gboolean in_use); 61 gboolean soup_connection_is_idle_open (SoupConnection *conn); 62 63 SoupClientMessageIO *soup_connection_setup_message_io (SoupConnection *conn, 64 SoupMessage *msg); 65 66 GTlsCertificate *soup_connection_get_tls_certificate (SoupConnection *conn); 67 GTlsCertificateFlags soup_connection_get_tls_certificate_errors (SoupConnection *conn); 68 GTlsProtocolVersion soup_connection_get_tls_protocol_version (SoupConnection *conn); 69 char *soup_connection_get_tls_ciphersuite_name (SoupConnection *conn); 70 void soup_connection_request_tls_certificate (SoupConnection *conn, 71 GTlsConnection *connection, 72 GTask *task); 73 void soup_connection_complete_tls_certificate_request (SoupConnection *conn, 74 GTlsCertificate *certificate, 75 GTask *task); 76 void soup_connection_set_tls_client_certificate (SoupConnection *conn, 77 GTlsCertificate *certificate); 78 void soup_connection_request_tls_certificate_password (SoupConnection *conn, 79 GTlsPassword *password, 80 GTask *task); 81 void soup_connection_complete_tls_certificate_password_request (SoupConnection *conn, 82 GTask *task); 83 84 guint64 soup_connection_get_id (SoupConnection *conn); 85 GSocketAddress *soup_connection_get_remote_address (SoupConnection *conn); 86 SoupHTTPVersion soup_connection_get_negotiated_protocol (SoupConnection *conn); 87 gboolean soup_connection_is_reusable (SoupConnection *conn); 88 89 G_END_DECLS 90 91 #endif /* __SOUP_CONNECTION_H__ */ 92