123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
- /*
- * Copyright (C) 2000-2003, Ximian, Inc.
- */
- #ifndef SOUP_MESSAGE_H
- #define SOUP_MESSAGE_H 1
- #include <libsoup/soup-types.h>
- #include <libsoup/soup-message-body.h>
- #include <libsoup/soup-message-headers.h>
- #include <libsoup/soup-method.h>
- G_BEGIN_DECLS
- #define SOUP_TYPE_MESSAGE (soup_message_get_type ())
- #define SOUP_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_MESSAGE, SoupMessage))
- #define SOUP_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_MESSAGE, SoupMessageClass))
- #define SOUP_IS_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOUP_TYPE_MESSAGE))
- #define SOUP_IS_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SOUP_TYPE_MESSAGE))
- #define SOUP_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_MESSAGE, SoupMessageClass))
- struct _SoupMessage {
- GObject parent;
- /*< public >*/
- const char *method;
- guint status_code;
- char *reason_phrase;
- SoupMessageBody *request_body;
- SoupMessageHeaders *request_headers;
- SoupMessageBody *response_body;
- SoupMessageHeaders *response_headers;
- };
- typedef struct {
- GObjectClass parent_class;
- /* signals */
- void (*wrote_informational) (SoupMessage *msg);
- void (*wrote_headers) (SoupMessage *msg);
- void (*wrote_chunk) (SoupMessage *msg);
- void (*wrote_body) (SoupMessage *msg);
- void (*got_informational) (SoupMessage *msg);
- void (*got_headers) (SoupMessage *msg);
- void (*got_chunk) (SoupMessage *msg, SoupBuffer *chunk);
- void (*got_body) (SoupMessage *msg);
- void (*restarted) (SoupMessage *msg);
- void (*finished) (SoupMessage *msg);
- void (*starting) (SoupMessage *msg);
- /* Padding for future expansion */
- void (*_libsoup_reserved1) (void);
- void (*_libsoup_reserved2) (void);
- void (*_libsoup_reserved3) (void);
- } SoupMessageClass;
- SOUP_AVAILABLE_IN_2_4
- GType soup_message_get_type (void);
- #define SOUP_MESSAGE_METHOD "method"
- #define SOUP_MESSAGE_URI "uri"
- #define SOUP_MESSAGE_HTTP_VERSION "http-version"
- #define SOUP_MESSAGE_FLAGS "flags"
- #define SOUP_MESSAGE_SERVER_SIDE "server-side"
- #define SOUP_MESSAGE_STATUS_CODE "status-code"
- #define SOUP_MESSAGE_REASON_PHRASE "reason-phrase"
- #define SOUP_MESSAGE_FIRST_PARTY "first-party"
- #define SOUP_MESSAGE_REQUEST_BODY "request-body"
- #define SOUP_MESSAGE_REQUEST_BODY_DATA "request-body-data"
- #define SOUP_MESSAGE_REQUEST_HEADERS "request-headers"
- #define SOUP_MESSAGE_RESPONSE_BODY "response-body"
- #define SOUP_MESSAGE_RESPONSE_BODY_DATA "response-body-data"
- #define SOUP_MESSAGE_RESPONSE_HEADERS "response-headers"
- #define SOUP_MESSAGE_TLS_CERTIFICATE "tls-certificate"
- #define SOUP_MESSAGE_TLS_ERRORS "tls-errors"
- #define SOUP_MESSAGE_PRIORITY "priority"
- SOUP_AVAILABLE_IN_2_4
- SoupMessage *soup_message_new (const char *method,
- const char *uri_string);
- SOUP_AVAILABLE_IN_2_4
- SoupMessage *soup_message_new_from_uri (const char *method,
- SoupURI *uri);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_set_request (SoupMessage *msg,
- const char *content_type,
- SoupMemoryUse req_use,
- const char *req_body,
- gsize req_length);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_set_response (SoupMessage *msg,
- const char *content_type,
- SoupMemoryUse resp_use,
- const char *resp_body,
- gsize resp_length);
- typedef enum {
- SOUP_HTTP_1_0 = 0, /*< nick=http-1-0 >*/
- SOUP_HTTP_1_1 = 1 /*< nick=http-1-1 >*/
- } SoupHTTPVersion;
- SOUP_AVAILABLE_IN_2_4
- void soup_message_set_http_version (SoupMessage *msg,
- SoupHTTPVersion version);
- SOUP_AVAILABLE_IN_2_4
- SoupHTTPVersion soup_message_get_http_version (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- gboolean soup_message_is_keepalive (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- SoupURI *soup_message_get_uri (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_set_uri (SoupMessage *msg,
- SoupURI *uri);
- SOUP_AVAILABLE_IN_2_26
- SoupAddress *soup_message_get_address (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_30
- SoupURI *soup_message_get_first_party (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_30
- void soup_message_set_first_party (SoupMessage *msg,
- SoupURI *first_party);
- typedef enum {
- SOUP_MESSAGE_NO_REDIRECT = (1 << 1),
- SOUP_MESSAGE_CAN_REBUILD = (1 << 2),
- #ifndef SOUP_DISABLE_DEPRECATED
- SOUP_MESSAGE_OVERWRITE_CHUNKS = (1 << 3),
- #endif
- SOUP_MESSAGE_CONTENT_DECODED = (1 << 4),
- SOUP_MESSAGE_CERTIFICATE_TRUSTED = (1 << 5),
- SOUP_MESSAGE_NEW_CONNECTION = (1 << 6),
- SOUP_MESSAGE_IDEMPOTENT = (1 << 7),
- SOUP_MESSAGE_IGNORE_CONNECTION_LIMITS = (1 << 8)
- } SoupMessageFlags;
- SOUP_AVAILABLE_IN_2_4
- void soup_message_set_flags (SoupMessage *msg,
- SoupMessageFlags flags);
- SOUP_AVAILABLE_IN_2_4
- SoupMessageFlags soup_message_get_flags (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_34
- gboolean soup_message_get_https_status (SoupMessage *msg,
- GTlsCertificate **certificate,
- GTlsCertificateFlags *errors);
- /* Specialized signal handlers */
- SOUP_AVAILABLE_IN_2_4
- guint soup_message_add_header_handler (SoupMessage *msg,
- const char *signal,
- const char *header,
- GCallback callback,
- gpointer user_data);
- SOUP_AVAILABLE_IN_2_4
- guint soup_message_add_status_code_handler (
- SoupMessage *msg,
- const char *signal,
- guint status_code,
- GCallback callback,
- gpointer user_data);
- /*
- * Status Setting
- */
- SOUP_AVAILABLE_IN_2_4
- void soup_message_set_status (SoupMessage *msg,
- guint status_code);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_set_status_full (SoupMessage *msg,
- guint status_code,
- const char *reason_phrase);
- SOUP_AVAILABLE_IN_2_38
- void soup_message_set_redirect (SoupMessage *msg,
- guint status_code,
- const char *redirect_uri);
- /* I/O */
- #ifndef SOUP_DISABLE_DEPRECATED
- typedef SoupBuffer * (*SoupChunkAllocator) (SoupMessage *msg,
- gsize max_len,
- gpointer user_data);
- SOUP_AVAILABLE_IN_2_4
- SOUP_DEPRECATED_IN_2_42_FOR(SoupRequest)
- void soup_message_set_chunk_allocator (SoupMessage *msg,
- SoupChunkAllocator allocator,
- gpointer user_data,
- GDestroyNotify destroy_notify);
- #endif
- SOUP_AVAILABLE_IN_2_28
- void soup_message_disable_feature (SoupMessage *msg,
- GType feature_type);
- SOUP_AVAILABLE_IN_2_42
- SoupRequest *soup_message_get_soup_request (SoupMessage *msg);
- typedef enum {
- SOUP_MESSAGE_PRIORITY_VERY_LOW = 0,
- SOUP_MESSAGE_PRIORITY_LOW,
- SOUP_MESSAGE_PRIORITY_NORMAL,
- SOUP_MESSAGE_PRIORITY_HIGH,
- SOUP_MESSAGE_PRIORITY_VERY_HIGH
- } SoupMessagePriority;
- SOUP_AVAILABLE_IN_2_44
- void soup_message_set_priority (SoupMessage *msg,
- SoupMessagePriority priority);
- SOUP_AVAILABLE_IN_2_44
- SoupMessagePriority soup_message_get_priority (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_wrote_informational (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_wrote_headers (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_wrote_chunk (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_wrote_body_data (SoupMessage *msg, SoupBuffer *chunk);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_wrote_body (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_got_informational (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_got_headers (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_got_chunk (SoupMessage *msg, SoupBuffer *chunk);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_got_body (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_content_sniffed (SoupMessage *msg, const char *content_type, GHashTable *params);
- SOUP_AVAILABLE_IN_2_50
- void soup_message_starting (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_restarted (SoupMessage *msg);
- SOUP_AVAILABLE_IN_2_4
- void soup_message_finished (SoupMessage *msg);
- G_END_DECLS
- #endif /*SOUP_MESSAGE_H*/
|