diff options
author | Dan Winship <danw@src.gnome.org> | 2007-11-29 23:20:42 +0000 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2007-11-29 23:20:42 +0000 |
commit | a3b3d382c0b5ff6978b9437bd2fe607681d718ba (patch) | |
tree | 2c22af04033e9d07e6b4c5d2945c20be4a6e4e5b | |
parent | 0eb4ce925a419aa89162c03c0ad19c8bf9faf477 (diff) | |
download | libsoup-a3b3d382c0b5ff6978b9437bd2fe607681d718ba.tar.gz |
Make SoupMessage's uri property and SoupSession's proxy_uri property use a
* libsoup/soup-message.c:
* libsoup/soup-session.c: Make SoupMessage's uri property and
SoupSession's proxy_uri property use a boxed pspec
* libsoup/soup-uri.c: make SoupUri a boxed type
* python/libsoup.defs (Uri): add boxed SoupUri
svn path=/branches/libsoup-bindings/; revision=966
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | libsoup/soup-message.c | 16 | ||||
-rw-r--r-- | libsoup/soup-session.c | 21 | ||||
-rw-r--r-- | libsoup/soup-uri.c | 14 | ||||
-rw-r--r-- | libsoup/soup-uri.h | 3 | ||||
-rw-r--r-- | python/libsoup.defs | 19 |
6 files changed, 63 insertions, 20 deletions
@@ -1,5 +1,15 @@ 2007-11-29 Dan Winship <danw@gnome.org> + * libsoup/soup-message.c: + * libsoup/soup-session.c: Make SoupMessage's uri property and + SoupSession's proxy_uri property use a boxed pspec + + * libsoup/soup-uri.c: make SoupUri a boxed type + + * python/libsoup.defs (Uri): add boxed SoupUri + +2007-11-29 Dan Winship <danw@gnome.org> + * libsoup/soup-message.c: use GObject properties for SoupMessage fields. diff --git a/libsoup/soup-message.c b/libsoup/soup-message.c index 80c70196..26fc9573 100644 --- a/libsoup/soup-message.c +++ b/libsoup/soup-message.c @@ -303,10 +303,11 @@ soup_message_class_init (SoupMessageClass *message_class) G_PARAM_READWRITE)); g_object_class_install_property ( object_class, PROP_URI, - g_param_spec_pointer (SOUP_MESSAGE_URI, - "URI", - "The message's Request-URI", - G_PARAM_READWRITE)); + g_param_spec_boxed (SOUP_MESSAGE_URI, + "URI", + "The message's Request-URI", + SOUP_TYPE_URI, + G_PARAM_READWRITE)); g_object_class_install_property ( object_class, PROP_HTTP_VERSION, g_param_spec_enum (SOUP_MESSAGE_HTTP_VERSION, @@ -350,7 +351,7 @@ set_property (GObject *object, guint prop_id, msg->method = g_intern_string (g_value_get_string (value)); break; case PROP_URI: - soup_message_set_uri (msg, g_value_get_pointer (value)); + soup_message_set_uri (msg, g_value_get_boxed (value)); break; case PROP_HTTP_VERSION: soup_message_set_http_version (msg, g_value_get_enum (value)); @@ -382,10 +383,7 @@ get_property (GObject *object, guint prop_id, g_value_set_string (value, msg->method); break; case PROP_URI: - if (priv->uri) - g_value_set_pointer (value, soup_uri_copy (priv->uri)); - else - g_value_set_pointer (value, NULL); + g_value_set_boxed (value, priv->uri); break; case PROP_HTTP_VERSION: g_value_set_enum (value, priv->http_version); diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c index 37c19004..f0fb4281 100644 --- a/libsoup/soup-session.c +++ b/libsoup/soup-session.c @@ -300,10 +300,11 @@ soup_session_class_init (SoupSessionClass *session_class) /* properties */ g_object_class_install_property ( object_class, PROP_PROXY_URI, - g_param_spec_pointer (SOUP_SESSION_PROXY_URI, - "Proxy URI", - "The HTTP Proxy to use for this session", - G_PARAM_READWRITE)); + g_param_spec_boxed (SOUP_SESSION_PROXY_URI, + "Proxy URI", + "The HTTP Proxy to use for this session", + SOUP_TYPE_URI, + G_PARAM_READWRITE)); g_object_class_install_property ( object_class, PROP_MAX_CONNS, g_param_spec_int (SOUP_SESSION_MAX_CONNS, @@ -389,22 +390,22 @@ set_property (GObject *object, guint prop_id, { SoupSession *session = SOUP_SESSION (object); SoupSessionPrivate *priv = SOUP_SESSION_GET_PRIVATE (session); - gpointer pval; + SoupUri *uri; gboolean need_abort = FALSE; gboolean ca_file_changed = FALSE; const char *new_ca_file; switch (prop_id) { case PROP_PROXY_URI: - pval = g_value_get_pointer (value); + uri = g_value_get_boxed (value); - if (!safe_uri_equal (priv->proxy_uri, pval)) + if (!safe_uri_equal (priv->proxy_uri, uri)) need_abort = TRUE; if (priv->proxy_uri) soup_uri_free (priv->proxy_uri); - priv->proxy_uri = pval ? soup_uri_copy (pval) : NULL; + priv->proxy_uri = uri ? soup_uri_copy (uri) : NULL; if (need_abort) { soup_session_abort (session); @@ -462,9 +463,7 @@ get_property (GObject *object, guint prop_id, switch (prop_id) { case PROP_PROXY_URI: - g_value_set_pointer (value, priv->proxy_uri ? - soup_uri_copy (priv->proxy_uri) : - NULL); + g_value_set_boxed (value, priv->proxy_uri); break; case PROP_MAX_CONNS: g_value_set_int (value, priv->max_conns); diff --git a/libsoup/soup-uri.c b/libsoup/soup-uri.c index ecbf6a9d..6a105707 100644 --- a/libsoup/soup-uri.c +++ b/libsoup/soup-uri.c @@ -532,3 +532,17 @@ soup_uri_uses_default_port (const SoupUri *uri) { return uri->port == soup_protocol_default_port (uri->protocol); } + +GType +soup_uri_get_type (void) +{ + static GType type = 0; + + if (type == 0) { + type = g_boxed_type_register_static ( + g_intern_static_string ("SoupUri"), + (GBoxedCopyFunc)soup_uri_copy, + (GBoxedFreeFunc)soup_uri_free); + } + return type; +} diff --git a/libsoup/soup-uri.h b/libsoup/soup-uri.h index c9c9e787..832160e9 100644 --- a/libsoup/soup-uri.h +++ b/libsoup/soup-uri.h @@ -53,6 +53,9 @@ struct SoupUri { gboolean broken_encoding; }; +GType soup_uri_get_type (void); +#define SOUP_TYPE_URI (soup_uri_get_type ()) + SoupUri *soup_uri_new_with_base (const SoupUri *base, const char *uri_string); SoupUri *soup_uri_new (const char *uri_string); diff --git a/python/libsoup.defs b/python/libsoup.defs index 1f09d64b..60eb5d45 100644 --- a/python/libsoup.defs +++ b/python/libsoup.defs @@ -2190,6 +2190,25 @@ ;; From soup-uri.h +(define-boxed Uri + (in-module "Soup") + (c-name "SoupUri") + (gtype-id "SOUP_TYPE_URI") + (copy-func "soup_uri_copy") + (release-func "soup_uri_free") + (fields + '("guint" "protocol") + '("char*" "user") + '("char*" "passwd") + '("char*" "host") + '("guint" "port") + '("char*" "path") + '("char*" "query") + '("char*" "fragment") + '("gboolean" "broken_encoding") + ) +) + (define-method new_with_base (of-object "SoupUri") (c-name "soup_uri_new_with_base") |