[libsoup/SoupMessagePrivate] SoupMessage: seal access to private members
- From: Claudio Saavedra <csaavedra src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup/SoupMessagePrivate] SoupMessage: seal access to private members
- Date: Tue, 9 Jul 2019 14:09:49 +0000 (UTC)
commit b0ff493330ccf5b844b9305e1820c0574c6968b7
Author: Claudio Saavedra <csaavedra igalia com>
Date: Tue Jul 9 17:06:48 2019 +0300
SoupMessage: seal access to private members
Remove the GET_PRIVATE macro and add private getters and setters
for all private members that are accessed internally. This cleans
all deprecation warnings generated from using the GET_PRIVATE macro.
libsoup/soup-cache.c | 4 +-
libsoup/soup-content-sniffer.c | 13 ++----
libsoup/soup-message-client-io.c | 11 ++---
libsoup/soup-message-io.c | 90 ++++++++++++++++------------------------
libsoup/soup-message-private.h | 14 ++++++-
libsoup/soup-message-server-io.c | 3 +-
libsoup/soup-message.c | 68 ++++++++++++++++++++++++++++++
7 files changed, 125 insertions(+), 78 deletions(-)
---
diff --git a/libsoup/soup-cache.c b/libsoup/soup-cache.c
index 682625e6..a7c66b97 100644
--- a/libsoup/soup-cache.c
+++ b/libsoup/soup-cache.c
@@ -1354,7 +1354,6 @@ soup_cache_generate_conditional_request (SoupCache *cache, SoupMessage *original
SoupURI *uri;
SoupCacheEntry *entry;
const char *last_modified, *etag;
- SoupMessagePrivate *origpriv;
GSList *f;
g_return_val_if_fail (SOUP_IS_CACHE (cache), NULL);
@@ -1382,8 +1381,7 @@ soup_cache_generate_conditional_request (SoupCache *cache, SoupMessage *original
(SoupMessageHeadersForeachFunc)copy_headers,
msg->request_headers);
- origpriv = SOUP_MESSAGE_GET_PRIVATE (original);
- for (f = origpriv->disabled_features; f; f = f->next)
+ for (f = soup_message_get_disabled_features (original); f; f = f->next)
soup_message_disable_feature (msg, (GType) GPOINTER_TO_SIZE (f->data));
if (last_modified)
diff --git a/libsoup/soup-content-sniffer.c b/libsoup/soup-content-sniffer.c
index 7573fde5..967ec614 100644
--- a/libsoup/soup-content-sniffer.c
+++ b/libsoup/soup-content-sniffer.c
@@ -842,9 +842,7 @@ soup_content_sniffer_real_get_buffer_size (SoupContentSniffer *sniffer)
static void
soup_content_sniffer_got_headers_cb (SoupMessage *msg, SoupContentSniffer *sniffer)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
-
- priv->bytes_for_sniffing = soup_content_sniffer_get_buffer_size (sniffer);
+ soup_message_set_bytes_for_sniffing (msg, soup_content_sniffer_get_buffer_size (sniffer));
}
static void
@@ -852,9 +850,7 @@ soup_content_sniffer_request_queued (SoupSessionFeature *feature,
SoupSession *session,
SoupMessage *msg)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
-
- priv->sniffer = g_object_ref (SOUP_CONTENT_SNIFFER (feature));
+ soup_message_set_content_sniffer (msg, SOUP_CONTENT_SNIFFER (feature));
g_signal_connect (msg, "got-headers",
G_CALLBACK (soup_content_sniffer_got_headers_cb),
feature);
@@ -865,10 +861,7 @@ soup_content_sniffer_request_unqueued (SoupSessionFeature *feature,
SoupSession *session,
SoupMessage *msg)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
-
- g_object_unref (priv->sniffer);
- priv->sniffer = NULL;
+ soup_message_set_content_sniffer (msg, NULL);
g_signal_handlers_disconnect_by_func (msg, soup_content_sniffer_got_headers_cb, feature);
}
diff --git a/libsoup/soup-message-client-io.c b/libsoup/soup-message-client-io.c
index f571ef73..8fead4b0 100644
--- a/libsoup/soup-message-client-io.c
+++ b/libsoup/soup-message-client-io.c
@@ -15,7 +15,6 @@
#include "soup.h"
#include "soup-connection.h"
-#include "soup-message-private.h"
#include "soup-message-queue.h"
#include "soup-socket-private.h"
@@ -26,7 +25,6 @@ parse_response_headers (SoupMessage *msg,
gpointer user_data,
GError **error)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
SoupHTTPVersion version;
g_free(msg->reason_phrase);
@@ -45,10 +43,8 @@ parse_response_headers (SoupMessage *msg,
g_object_notify (G_OBJECT (msg), SOUP_MESSAGE_STATUS_CODE);
g_object_notify (G_OBJECT (msg), SOUP_MESSAGE_REASON_PHRASE);
- if (version < priv->http_version) {
- priv->http_version = version;
- g_object_notify (G_OBJECT (msg), SOUP_MESSAGE_HTTP_VERSION);
- }
+ if (version < soup_message_get_http_version (msg))
+ soup_message_set_http_version (msg, version);
if ((msg->method == SOUP_METHOD_HEAD ||
msg->status_code == SOUP_STATUS_NO_CONTENT ||
@@ -74,7 +70,6 @@ static void
get_request_headers (SoupMessage *msg, GString *header,
SoupEncoding *encoding, gpointer user_data)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
SoupMessageQueueItem *item = user_data;
SoupURI *uri = soup_message_get_uri (msg);
char *uri_host;
@@ -110,7 +105,7 @@ get_request_headers (SoupMessage *msg, GString *header,
g_string_append_printf (header, "%s %s HTTP/1.%d\r\n",
msg->method, uri_string,
- (priv->http_version == SOUP_HTTP_1_0) ? 0 : 1);
+ (soup_message_get_http_version (msg) == SOUP_HTTP_1_0) ? 0 : 1);
if (!soup_message_headers_get_one (msg->request_headers, "Host")) {
if (soup_uri_uses_default_port (uri)) {
diff --git a/libsoup/soup-message-io.c b/libsoup/soup-message-io.c
index 3a7d7356..1f550e63 100644
--- a/libsoup/soup-message-io.c
+++ b/libsoup/soup-message-io.c
@@ -99,15 +99,14 @@ static void io_run (SoupMessage *msg, gboolean blocking);
void
soup_message_io_cleanup (SoupMessage *msg)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
SoupMessageIOData *io;
soup_message_io_stop (msg);
- io = priv->io_data;
+ io = soup_message_get_io_data (msg);
if (!io)
return;
- priv->io_data = NULL;
+ soup_message_set_io_data (msg, NULL);
if (io->iostream)
g_object_unref (io->iostream);
@@ -138,8 +137,7 @@ soup_message_io_cleanup (SoupMessage *msg)
void
soup_message_io_stop (SoupMessage *msg)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
if (!io)
return;
@@ -160,12 +158,12 @@ soup_message_io_stop (SoupMessage *msg)
void
soup_message_io_finished (SoupMessage *msg)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io;
SoupMessageCompletionFn completion_cb;
gpointer completion_data;
SoupMessageIOCompletion completion;
+ io = soup_message_get_io_data (msg);
if (!io)
return;
@@ -188,12 +186,12 @@ soup_message_io_finished (SoupMessage *msg)
GIOStream *
soup_message_io_steal (SoupMessage *msg)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io;
SoupMessageCompletionFn completion_cb;
gpointer completion_data;
GIOStream *iostream;
+ io = soup_message_get_io_data (msg);
if (!io || !io->iostream)
return NULL;
@@ -214,11 +212,11 @@ static gboolean
read_headers (SoupMessage *msg, gboolean blocking,
GCancellable *cancellable, GError **error)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io;
gssize nread, old_len;
gboolean got_lf;
+ io = soup_message_get_io_data (msg);
while (1) {
old_len = io->read_header_buf->len;
g_byte_array_set_size (io->read_header_buf, old_len + RESPONSE_BLOCK_SIZE);
@@ -325,10 +323,10 @@ closed_async (GObject *source,
{
GOutputStream *body_ostream = G_OUTPUT_STREAM (source);
SoupMessage *msg = user_data;
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io;
GCancellable *async_close_wait;
+ io = soup_message_get_io_data (msg);
if (!io || !io->async_close_wait || io->body_ostream != body_ostream) {
g_object_unref (msg);
return;
@@ -381,8 +379,7 @@ static gboolean
io_write (SoupMessage *msg, gboolean blocking,
GCancellable *cancellable, GError **error)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
SoupBuffer *chunk;
gssize nwrote;
@@ -450,7 +447,7 @@ io_write (SoupMessage *msg, gboolean blocking,
/* If this was "101 Switching Protocols", then
* the server probably stole the connection...
*/
- if (io != priv->io_data)
+ if (io != soup_message_get_io_data (msg))
return FALSE;
soup_message_cleanup_response (msg);
@@ -544,7 +541,7 @@ io_write (SoupMessage *msg, gboolean blocking,
}
if (io->mode == SOUP_MESSAGE_IO_SERVER ||
- priv->msg_flags & SOUP_MESSAGE_CAN_REBUILD)
+ soup_message_get_flags (msg) & SOUP_MESSAGE_CAN_REBUILD)
soup_message_body_wrote_chunk (io->write_body, io->write_chunk);
io->write_body_offset += io->write_chunk->length;
soup_buffer_free (io->write_chunk);
@@ -608,8 +605,7 @@ static gboolean
io_read (SoupMessage *msg, gboolean blocking,
GCancellable *cancellable, GError **error)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
guchar *stack_buf = NULL;
gssize nread;
SoupBuffer *buffer;
@@ -663,7 +659,7 @@ io_read (SoupMessage *msg, gboolean blocking,
/* If this was "101 Switching Protocols", then
* the session may have stolen the connection...
*/
- if (io != priv->io_data)
+ if (io != soup_message_get_io_data (msg))
return FALSE;
soup_message_cleanup_response (msg);
@@ -730,7 +726,7 @@ io_read (SoupMessage *msg, gboolean blocking,
}
}
- if (priv->sniffer) {
+ if (soup_message_get_content_sniffer (msg)) {
SoupContentSnifferStream *sniffer_stream = SOUP_CONTENT_SNIFFER_STREAM
(io->body_istream);
const char *content_type;
GHashTable *params;
@@ -748,8 +744,8 @@ io_read (SoupMessage *msg, gboolean blocking,
case SOUP_MESSAGE_IO_STATE_BODY:
- if (priv->chunk_allocator) {
- buffer = priv->chunk_allocator (msg, io->read_length, priv->chunk_allocator_data);
+ if (soup_message_has_chunk_allocator (msg)) {
+ buffer = soup_message_allocate_chunk (msg, io->read_length);
if (!buffer) {
g_return_val_if_fail (!io->item || !io->item->new_api, FALSE);
soup_message_io_pause (msg);
@@ -818,8 +814,7 @@ message_source_check (GSource *source)
SoupMessageSource *message_source = (SoupMessageSource *)source;
if (message_source->paused) {
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (message_source->msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (message_source->msg);
if (io && io->paused)
return FALSE;
@@ -893,8 +888,7 @@ GSource *
soup_message_io_get_source (SoupMessage *msg, GCancellable *cancellable,
SoupMessageSourceFunc callback, gpointer user_data)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
GSource *base_source, *source;
SoupMessageSource *message_source;
@@ -942,8 +936,7 @@ soup_message_io_get_source (SoupMessage *msg, GCancellable *cancellable,
static gboolean
request_is_restartable (SoupMessage *msg, GError *error)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
if (!io)
return FALSE;
@@ -963,8 +956,7 @@ io_run_until (SoupMessage *msg, gboolean blocking,
SoupMessageIOState read_state, SoupMessageIOState write_state,
GCancellable *cancellable, GError **error)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
gboolean progress = TRUE, done;
GError *my_error = NULL;
@@ -979,7 +971,7 @@ io_run_until (SoupMessage *msg, gboolean blocking,
g_object_ref (msg);
- while (progress && priv->io_data == io && !io->paused && !io->async_close_wait &&
+ while (progress && soup_message_get_io_data (msg) == io && !io->paused && !io->async_close_wait &&
(io->read_state < read_state || io->write_state < write_state)) {
if (SOUP_MESSAGE_IO_STATE_ACTIVE (io->read_state))
@@ -1003,7 +995,7 @@ io_run_until (SoupMessage *msg, gboolean blocking,
g_propagate_error (error, my_error);
g_object_unref (msg);
return FALSE;
- } else if (priv->io_data != io) {
+ } else if (soup_message_get_io_data (msg) != io) {
g_set_error_literal (error, G_IO_ERROR,
G_IO_ERROR_CANCELLED,
_("Operation was cancelled"));
@@ -1040,8 +1032,7 @@ io_run_ready (SoupMessage *msg, gpointer user_data)
static void
io_run (SoupMessage *msg, gboolean blocking)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
GError *error = NULL;
GCancellable *cancellable;
@@ -1063,7 +1054,7 @@ io_run (SoupMessage *msg, gboolean blocking)
g_clear_error (&error);
io->io_source = soup_message_io_get_source (msg, NULL, io_run_ready, msg);
g_source_attach (io->io_source, io->async_context);
- } else if (error && priv->io_data == io) {
+ } else if (error && soup_message_get_io_data (msg) == io) {
if (g_error_matches (error, SOUP_HTTP_ERROR, SOUP_STATUS_TRY_AGAIN))
io->item->state = SOUP_MESSAGE_RESTARTING;
else if (error->domain == G_TLS_ERROR) {
@@ -1108,8 +1099,7 @@ soup_message_io_run_until_finish (SoupMessage *msg,
GCancellable *cancellable,
GError **error)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
gboolean success;
g_object_ref (msg);
@@ -1134,8 +1124,7 @@ static void
client_stream_eof (SoupClientInputStream *stream, gpointer user_data)
{
SoupMessage *msg = user_data;
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
if (io && io->read_state == SOUP_MESSAGE_IO_STATE_BODY)
io->read_state = SOUP_MESSAGE_IO_STATE_BODY_DONE;
@@ -1145,8 +1134,7 @@ GInputStream *
soup_message_io_get_response_istream (SoupMessage *msg,
GError **error)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
GInputStream *client_stream;
g_return_val_if_fail (io->mode == SOUP_MESSAGE_IO_CLIENT, NULL);
@@ -1174,7 +1162,6 @@ new_iostate (SoupMessage *msg, GIOStream *iostream,
SoupMessageCompletionFn completion_cb,
gpointer completion_data)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
SoupMessageIOData *io;
io = g_slice_new0 (SoupMessageIOData);
@@ -1198,9 +1185,9 @@ new_iostate (SoupMessage *msg, GIOStream *iostream,
io->read_state = SOUP_MESSAGE_IO_STATE_NOT_STARTED;
io->write_state = SOUP_MESSAGE_IO_STATE_NOT_STARTED;
- if (priv->io_data)
+ if (soup_message_get_io_data (msg))
soup_message_io_cleanup (msg);
- priv->io_data = io;
+ soup_message_set_io_data (msg, io);
return io;
}
@@ -1264,8 +1251,7 @@ soup_message_io_server (SoupMessage *msg,
void
soup_message_io_pause (SoupMessage *msg)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
g_return_if_fail (io != NULL);
@@ -1290,8 +1276,7 @@ soup_message_io_pause (SoupMessage *msg)
static gboolean
io_unpause_internal (gpointer msg)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
g_return_val_if_fail (io != NULL, FALSE);
@@ -1308,8 +1293,7 @@ io_unpause_internal (gpointer msg)
void
soup_message_io_unpause (SoupMessage *msg)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
- SoupMessageIOData *io = priv->io_data;
+ SoupMessageIOData *io = soup_message_get_io_data (msg);
g_return_if_fail (io != NULL);
@@ -1336,7 +1320,5 @@ soup_message_io_unpause (SoupMessage *msg)
gboolean
soup_message_io_in_progress (SoupMessage *msg)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
-
- return priv->io_data != NULL;
+ return soup_message_get_io_data (msg) != NULL;
}
diff --git a/libsoup/soup-message-private.h b/libsoup/soup-message-private.h
index 2f3d58a7..febaac1a 100644
--- a/libsoup/soup-message-private.h
+++ b/libsoup/soup-message-private.h
@@ -44,7 +44,6 @@ typedef struct {
SoupMessagePriority priority;
} SoupMessagePrivate;
-#define SOUP_MESSAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SOUP_TYPE_MESSAGE,
SoupMessagePrivate))
void soup_message_cleanup_response (SoupMessage *msg);
@@ -142,6 +141,8 @@ GInputStream *soup_message_io_get_response_istream (SoupMessage *msg,
gboolean soup_message_disables_feature (SoupMessage *msg,
gpointer feature);
+GSList *soup_message_get_disabled_features (SoupMessage *msg);
+
void soup_message_set_https_status (SoupMessage *msg,
SoupConnection *conn);
@@ -161,4 +162,15 @@ SoupConnection *soup_message_get_connection (SoupMessage *msg);
void soup_message_set_connection (SoupMessage *msg,
SoupConnection *conn);
+gpointer soup_message_get_io_data (SoupMessage *msg);
+void soup_message_set_io_data (SoupMessage *msg,
+ gpointer io);
+
+SoupContentSniffer* soup_message_get_content_sniffer (SoupMessage *msg);
+void soup_message_set_content_sniffer (SoupMessage *msg, SoupContentSniffer *sniffer);
+void soup_message_set_bytes_for_sniffing (SoupMessage *msg, gsize bytes);
+
+gboolean soup_message_has_chunk_allocator (SoupMessage *msg);
+SoupBuffer *soup_message_allocate_chunk (SoupMessage *msg, goffset read_length);
+
#endif /* __SOUP_MESSAGE_PRIVATE_H__ */
diff --git a/libsoup/soup-message-server-io.c b/libsoup/soup-message-server-io.c
index 35b544c2..71e943b6 100644
--- a/libsoup/soup-message-server-io.c
+++ b/libsoup/soup-message-server-io.c
@@ -45,7 +45,6 @@ static guint
parse_request_headers (SoupMessage *msg, char *headers, guint headers_len,
SoupEncoding *encoding, gpointer sock, GError **error)
{
- SoupMessagePrivate *priv = SOUP_MESSAGE_GET_PRIVATE (msg);
char *req_method, *req_path, *url;
SoupHTTPVersion version;
const char *req_host;
@@ -109,7 +108,7 @@ parse_request_headers (SoupMessage *msg, char *headers, guint headers_len,
req_host, req_path);
uri = soup_uri_new (url);
g_free (url);
- } else if (priv->http_version == SOUP_HTTP_1_0) {
+ } else if (soup_message_get_http_version (msg) == SOUP_HTTP_1_0) {
/* No Host header, no AbsoluteUri */
SoupAddress *addr = soup_socket_get_local_address (sock);
diff --git a/libsoup/soup-message.c b/libsoup/soup-message.c
index bed75f57..41c32834 100644
--- a/libsoup/soup-message.c
+++ b/libsoup/soup-message.c
@@ -1860,6 +1860,14 @@ soup_message_disables_feature (SoupMessage *msg, gpointer feature)
return FALSE;
}
+GSList *
+soup_message_get_disabled_features (SoupMessage *msg)
+{
+ SoupMessagePrivate *priv = soup_message_get_instance_private (msg);
+
+ return priv->disabled_features;
+}
+
/**
* soup_message_get_first_party:
* @msg: a #SoupMessage
@@ -2116,3 +2124,63 @@ soup_message_get_priority (SoupMessage *msg)
return priv->priority;
}
+
+gpointer
+soup_message_get_io_data (SoupMessage *msg)
+{
+ SoupMessagePrivate *priv = soup_message_get_instance_private (msg);
+
+ return priv->io_data;
+}
+
+void
+soup_message_set_io_data (SoupMessage *msg, gpointer io)
+{
+ SoupMessagePrivate *priv = soup_message_get_instance_private (msg);
+
+ priv->io_data = io;
+}
+
+SoupContentSniffer *
+soup_message_get_content_sniffer (SoupMessage *msg)
+{
+ SoupMessagePrivate *priv = soup_message_get_instance_private (msg);
+
+ return priv->sniffer;
+}
+
+void
+soup_message_set_content_sniffer (SoupMessage *msg, SoupContentSniffer *sniffer)
+{
+ SoupMessagePrivate *priv = soup_message_get_instance_private (msg);
+
+ if (priv->sniffer)
+ g_object_unref (priv->sniffer);
+
+ priv->sniffer = sniffer ? g_object_ref (sniffer): NULL;
+}
+
+void
+soup_message_set_bytes_for_sniffing (SoupMessage *msg, gsize bytes)
+{
+ SoupMessagePrivate *priv = soup_message_get_instance_private (msg);
+
+ priv->bytes_for_sniffing = bytes;
+}
+
+gboolean
+soup_message_has_chunk_allocator (SoupMessage *msg)
+{
+ SoupMessagePrivate *priv = soup_message_get_instance_private (msg);
+
+ return priv->chunk_allocator != NULL;
+}
+
+SoupBuffer *
+soup_message_allocate_chunk (SoupMessage *msg,
+ goffset read_length)
+{
+ SoupMessagePrivate *priv = soup_message_get_instance_private (msg);
+
+ return priv->chunk_allocator (msg, read_length, priv->chunk_allocator_data);
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]