summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2011-06-26 09:15:31 +0200
committerJens Georg <mail@jensge.org>2011-07-20 19:57:29 +0200
commit541f3752f89899c6ecd775abcfbd89afbb6fc403 (patch)
tree65d747e87541f3318401b0fc9d2718cc9ac26279
parentcf2a3298983f22a06b1e5785a431467a0f3105e4 (diff)
downloadgssdp-541f3752f89899c6ecd775abcfbd89afbb6fc403.tar.gz
Deprecate main_context property.
Use g_main_context_get_thread_default() instead
-rw-r--r--libgssdp/gssdp-client.c59
-rw-r--r--libgssdp/gssdp-client.h2
-rw-r--r--libgssdp/gssdp-resource-browser.c13
-rw-r--r--libgssdp/gssdp-resource-group.c18
-rw-r--r--libgssdp/gssdp-socket-source.c6
-rw-r--r--libgssdp/gssdp-socket-source.h3
-rw-r--r--tests/test-browser.c6
-rw-r--r--tests/test-publish.c6
-rw-r--r--tools/gssdp-device-sniffer.c5
9 files changed, 47 insertions, 71 deletions
diff --git a/libgssdp/gssdp-client.c b/libgssdp/gssdp-client.c
index 16a6da5..8b8e3f9 100644
--- a/libgssdp/gssdp-client.c
+++ b/libgssdp/gssdp-client.c
@@ -85,8 +85,6 @@ G_DEFINE_TYPE_EXTENDED (GSSDPClient,
gssdp_client_initable_iface_init));
struct _GSSDPClientPrivate {
- GMainContext *main_context;
-
char *server_id;
char *iface;
char *host_ip;
@@ -116,10 +114,6 @@ enum {
static guint signals[LAST_SIGNAL];
-/* Function prototypes */
-static void
-gssdp_client_set_main_context (GSSDPClient *client,
- GMainContext *context);
static char *
make_server_id (void);
static gboolean
@@ -259,14 +253,9 @@ gssdp_client_initable_init (GInitable *initable,
return FALSE;
}
- gssdp_socket_source_attach (client->priv->request_socket,
- client->priv->main_context);
-
- gssdp_socket_source_attach (client->priv->multicast_socket,
- client->priv->main_context);
-
- gssdp_socket_source_attach (client->priv->search_socket,
- client->priv->main_context);
+ gssdp_socket_source_attach (client->priv->request_socket);
+ gssdp_socket_source_attach (client->priv->multicast_socket);
+ gssdp_socket_source_attach (client->priv->search_socket);
return TRUE;
}
@@ -288,10 +277,12 @@ gssdp_client_get_property (GObject *object,
gssdp_client_get_server_id (client));
break;
case PROP_MAIN_CONTEXT:
+ g_warning ("GSSDPClient:main-context is deprecated."
+ " Please use g_main_context_push_thread_default()");
g_value_set_pointer
(value,
(gpointer)
- gssdp_client_get_main_context (client));
+ g_main_context_get_thread_default ());
break;
case PROP_IFACE:
g_value_set_string (value,
@@ -330,8 +321,8 @@ gssdp_client_set_property (GObject *object,
g_value_get_string (value));
break;
case PROP_MAIN_CONTEXT:
- gssdp_client_set_main_context (client,
- g_value_get_pointer (value));
+ g_warning ("GSSDPClient:main-context is deprecated."
+ " Please use g_main_context_push_thread_default()");
break;
case PROP_IFACE:
client->priv->iface = g_value_dup_string (value);
@@ -371,12 +362,6 @@ gssdp_client_dispose (GObject *object)
client->priv->search_socket = NULL;
}
- /* Unref the context */
- if (client->priv->main_context) {
- g_main_context_unref (client->priv->main_context);
- client->priv->main_context = NULL;
- }
-
G_OBJECT_CLASS (gssdp_client_parent_class)->dispose (object);
}
@@ -433,6 +418,7 @@ gssdp_client_class_init (GSSDPClientClass *klass)
* GSSDPClient:main-context
*
* The #GMainContext to use. Set to NULL to use the default.
+ * Deprecated: 0.11.1: Use g_main_context_push_thread_default().
**/
g_object_class_install_property
(object_class,
@@ -552,7 +538,8 @@ gssdp_client_class_init (GSSDPClientClass *klass)
/**
* gssdp_client_new
- * @main_context: The #GMainContext to associate with, or NULL
+ * @main_context: Deprecated: 0.11.1: Always set to NULL. If you want to
+ * specify a context use g_main_context_push_thread_default()
* @iface: The name of the network interface, or %NULL for auto-detection.
* @error: Location to store error, or NULL
*
@@ -563,42 +550,30 @@ gssdp_client_new (GMainContext *main_context,
const char *iface,
GError **error)
{
+ if (main_context) {
+ g_warning ("GSSDPClient:main-context is deprecated."
+ " Please use g_main_context_push_thread_default()");
+ }
return g_initable_new (GSSDP_TYPE_CLIENT,
NULL,
error,
- "main-context", main_context,
"interface", iface,
NULL);
}
/*
- * Sets the GMainContext @client is associated with to @main_context
- */
-static void
-gssdp_client_set_main_context (GSSDPClient *client,
- GMainContext *main_context)
-{
- g_return_if_fail (GSSDP_IS_CLIENT (client));
-
- /* A NULL main_context is fine */
- if (main_context)
- client->priv->main_context = g_main_context_ref (main_context);
-
- g_object_notify (G_OBJECT (client), "main-context");
-}
-
-/**
* gssdp_client_get_main_context
* @client: A #GSSDPClient
*
* Returns: (transfer none): The #GMainContext @client is associated with, or NULL.
+ * Deprecated: 0.11.1: Returns g_main_context_get_thread_default()
**/
GMainContext *
gssdp_client_get_main_context (GSSDPClient *client)
{
g_return_val_if_fail (GSSDP_IS_CLIENT (client), NULL);
- return client->priv->main_context;
+ return g_main_context_get_thread_default ();
}
/**
diff --git a/libgssdp/gssdp-client.h b/libgssdp/gssdp-client.h
index ff2b2c2..32ba9d3 100644
--- a/libgssdp/gssdp-client.h
+++ b/libgssdp/gssdp-client.h
@@ -75,8 +75,10 @@ gssdp_client_new (GMainContext *main_context,
const char *iface,
GError **error);
+#ifndef GSSDP_DISABLE_DEPRECATED
GMainContext *
gssdp_client_get_main_context (GSSDPClient *client);
+#endif
void
gssdp_client_set_server_id (GSSDPClient *client,
diff --git a/libgssdp/gssdp-resource-browser.c b/libgssdp/gssdp-resource-browser.c
index 77b25b7..1199a25 100644
--- a/libgssdp/gssdp-resource-browser.c
+++ b/libgssdp/gssdp-resource-browser.c
@@ -614,7 +614,6 @@ resource_available (GSSDPResourceBrowser *resource_browser,
gboolean was_cached;
guint timeout;
GList *locations;
- GMainContext *context;
usn = soup_message_headers_get_one (headers, "USN");
if (!usn)
@@ -709,9 +708,8 @@ resource_available (GSSDPResourceBrowser *resource_browser,
resource_expire,
resource, NULL);
- context = gssdp_client_get_main_context
- (resource_browser->priv->client);
- g_source_attach (resource->timeout_src, context);
+ g_source_attach (resource->timeout_src,
+ g_main_context_get_thread_default ());
g_source_unref (resource->timeout_src);
@@ -962,8 +960,6 @@ discovery_timeout (gpointer data)
static void
start_discovery (GSSDPResourceBrowser *resource_browser)
{
- GMainContext *context;
-
/* Send one now */
send_discovery_request (resource_browser);
@@ -975,9 +971,8 @@ start_discovery (GSSDPResourceBrowser *resource_browser)
discovery_timeout,
resource_browser, NULL);
- context = gssdp_client_get_main_context
- (resource_browser->priv->client);
- g_source_attach (resource_browser->priv->timeout_src, context);
+ g_source_attach (resource_browser->priv->timeout_src,
+ g_main_context_get_thread_default ());
g_source_unref (resource_browser->priv->timeout_src);
}
diff --git a/libgssdp/gssdp-resource-group.c b/libgssdp/gssdp-resource-group.c
index db6e2bf..e5b852b 100644
--- a/libgssdp/gssdp-resource-group.c
+++ b/libgssdp/gssdp-resource-group.c
@@ -522,7 +522,6 @@ gssdp_resource_group_set_available (GSSDPResourceGroup *resource_group,
resource_group->priv->available = available;
if (available) {
- GMainContext *context;
int timeout;
/* We want to re-announce at least 3 times before the resource
@@ -542,9 +541,8 @@ gssdp_resource_group_set_available (GSSDPResourceGroup *resource_group,
resource_group_timeout,
resource_group, NULL);
- context = gssdp_client_get_main_context
- (resource_group->priv->client);
- g_source_attach (resource_group->priv->timeout_src, context);
+ g_source_attach (resource_group->priv->timeout_src,
+ g_main_context_get_thread_default ());
g_source_unref (resource_group->priv->timeout_src);
@@ -805,7 +803,6 @@ message_received_cb (GSSDPClient *client,
/* Match. */
guint timeout;
DiscoveryResponse *response;
- GMainContext *context;
/* Get a random timeout from the interval [0, mx] */
timeout = g_random_int_range (0, mx * 1000);
@@ -828,8 +825,8 @@ message_received_cb (GSSDPClient *client,
discovery_response_timeout,
response, NULL);
- context = gssdp_client_get_main_context (client);
- g_source_attach (response->timeout_src, context);
+ g_source_attach (response->timeout_src,
+ g_main_context_get_thread_default ());
g_source_unref (response->timeout_src);
@@ -1005,16 +1002,13 @@ queue_message (GSSDPResourceGroup *resource_group,
if (resource_group->priv->message_src == NULL) {
/* nothing in the queue: process message immediately
and add a timeout for (possible) next message */
- GMainContext *context;
-
process_queue (resource_group);
resource_group->priv->message_src = g_timeout_source_new (
resource_group->priv->message_delay);
g_source_set_callback (resource_group->priv->message_src,
process_queue, resource_group, NULL);
- context = gssdp_client_get_main_context (
- resource_group->priv->client);
- g_source_attach (resource_group->priv->message_src, context);
+ g_source_attach (resource_group->priv->message_src,
+ g_main_context_get_thread_default ());
g_source_unref (resource_group->priv->message_src);
}
}
diff --git a/libgssdp/gssdp-socket-source.c b/libgssdp/gssdp-socket-source.c
index 720061e..e8409a6 100644
--- a/libgssdp/gssdp-socket-source.c
+++ b/libgssdp/gssdp-socket-source.c
@@ -337,13 +337,13 @@ gssdp_socket_source_set_callback (GSSDPSocketSource *self,
}
void
-gssdp_socket_source_attach (GSSDPSocketSource *self,
- GMainContext *context)
+gssdp_socket_source_attach (GSSDPSocketSource *self)
{
g_return_if_fail (self != NULL);
g_return_if_fail (GSSDP_IS_SOCKET_SOURCE (self));
- g_source_attach (self->priv->source, context);
+ g_source_attach (self->priv->source,
+ g_main_context_get_thread_default ());
}
static void
diff --git a/libgssdp/gssdp-socket-source.h b/libgssdp/gssdp-socket-source.h
index c464aeb..39b2932 100644
--- a/libgssdp/gssdp-socket-source.h
+++ b/libgssdp/gssdp-socket-source.h
@@ -84,8 +84,7 @@ gssdp_socket_source_set_callback (GSSDPSocketSource *socket_source,
gpointer user_data);
G_GNUC_INTERNAL void
-gssdp_socket_source_attach (GSSDPSocketSource *socket_source,
- GMainContext *context);
+gssdp_socket_source_attach (GSSDPSocketSource *socket_source);
G_END_DECLS
diff --git a/tests/test-browser.c b/tests/test-browser.c
index 0b88ba5..4157fca 100644
--- a/tests/test-browser.c
+++ b/tests/test-browser.c
@@ -20,6 +20,7 @@
*/
#include <libgssdp/gssdp.h>
+#include <gio/gio.h>
#include <stdlib.h>
static void
@@ -58,7 +59,10 @@ main (int argc,
g_type_init ();
error = NULL;
- client = gssdp_client_new (NULL, NULL, &error);
+ client = g_initable_new (GSSDP_TYPE_CLIENT,
+ NULL,
+ &error,
+ NULL);
if (error) {
g_printerr ("Error creating the GSSDP client: %s\n",
error->message);
diff --git a/tests/test-publish.c b/tests/test-publish.c
index 89c62cc..52889fb 100644
--- a/tests/test-publish.c
+++ b/tests/test-publish.c
@@ -20,6 +20,7 @@
*/
#include <libgssdp/gssdp.h>
+#include <gio/gio.h>
#include <stdlib.h>
int
@@ -34,7 +35,10 @@ main (int argc,
g_type_init ();
error = NULL;
- client = gssdp_client_new (NULL, NULL, &error);
+ client = g_initable_new (GSSDP_TYPE_CLIENT,
+ NULL,
+ &error,
+ NULL);
if (error) {
g_printerr ("Error creating the GSSDP client: %s\n",
error->message);
diff --git a/tools/gssdp-device-sniffer.c b/tools/gssdp-device-sniffer.c
index 833bb07..4ae3943 100644
--- a/tools/gssdp-device-sniffer.c
+++ b/tools/gssdp-device-sniffer.c
@@ -601,7 +601,10 @@ init_upnp (void)
GError *error;
error = NULL;
- client = gssdp_client_new (NULL, NULL, &error);
+ client = g_initable_new (GSSDP_TYPE_CLIENT,
+ NULL,
+ &error,
+ NULL);
if (error) {
g_printerr ("Error creating the GSSDP client: %s\n",
error->message);