diff options
-rw-r--r-- | src/custom-service-watcher.c | 22 | ||||
-rw-r--r-- | src/custom-service-watcher.h | 3 | ||||
-rw-r--r-- | src/custom-service.c | 3 |
3 files changed, 27 insertions, 1 deletions
diff --git a/src/custom-service-watcher.c b/src/custom-service-watcher.c index b4680ab..2b83c13 100644 --- a/src/custom-service-watcher.c +++ b/src/custom-service-watcher.c @@ -16,7 +16,7 @@ static gboolean _notification_watcher_server_is_notification_host_registered (Cu typedef struct _CustomServiceWatcherPrivate CustomServiceWatcherPrivate; struct _CustomServiceWatcherPrivate { - int dummy; + CustomServiceAppstore * appstore; }; #define CUSTOM_SERVICE_WATCHER_GET_PRIVATE(o) \ @@ -48,6 +48,10 @@ custom_service_watcher_class_init (CustomServiceWatcherClass *klass) static void custom_service_watcher_init (CustomServiceWatcher *self) { + CustomServiceWatcherPrivate * priv = CUSTOM_SERVICE_WATCHER_GET_PRIVATE(self); + + priv->appstore = NULL; + GError * error = NULL; DBusGConnection * session_bus = dbus_g_bus_get(DBUS_BUS_SESSION, &error); if (error != NULL) { @@ -66,6 +70,12 @@ custom_service_watcher_init (CustomServiceWatcher *self) static void custom_service_watcher_dispose (GObject *object) { + CustomServiceWatcherPrivate * priv = CUSTOM_SERVICE_WATCHER_GET_PRIVATE(object); + + if (priv->appstore != NULL) { + g_object_unref(G_OBJECT(priv->appstore)); + priv->appstore = NULL; + } G_OBJECT_CLASS (custom_service_watcher_parent_class)->dispose (object); return; @@ -79,6 +89,16 @@ custom_service_watcher_finalize (GObject *object) return; } +CustomServiceWatcher * +custom_service_watcher_new (CustomServiceAppstore * appstore) +{ + GObject * obj = g_object_new(CUSTOM_SERVICE_WATCHER_TYPE, NULL); + CustomServiceWatcherPrivate * priv = CUSTOM_SERVICE_WATCHER_GET_PRIVATE(obj); + priv->appstore = appstore; + g_object_ref(G_OBJECT(priv->appstore)); + return CUSTOM_SERVICE_WATCHER(obj); +} + static gboolean _notification_watcher_server_register_service (CustomServiceWatcher * appstore, const gchar * service, DBusGMethodInvocation * method) { diff --git a/src/custom-service-watcher.h b/src/custom-service-watcher.h index 3006175..c705fb5 100644 --- a/src/custom-service-watcher.h +++ b/src/custom-service-watcher.h @@ -4,6 +4,8 @@ #include <glib.h> #include <glib-object.h> +#include "custom-service-appstore.h" + G_BEGIN_DECLS #define CUSTOM_SERVICE_WATCHER_TYPE (custom_service_watcher_get_type ()) @@ -25,6 +27,7 @@ struct _CustomServiceWatcher { }; GType custom_service_watcher_get_type (void); +CustomServiceWatcher * custom_service_watcher_new (CustomServiceAppstore * appstore); G_END_DECLS diff --git a/src/custom-service.c b/src/custom-service.c index df3d58a..3205bc2 100644 --- a/src/custom-service.c +++ b/src/custom-service.c @@ -2,10 +2,12 @@ #include "libindicator/indicator-service.h" #include "notification-item-client.h" #include "custom-service-appstore.h" +#include "custom-service-watcher.h" #include "dbus-shared.h" static GMainLoop * mainloop = NULL; static CustomServiceAppstore * appstore = NULL; +static CustomServiceWatcher * watcher = NULL; static IndicatorService * service = NULL; int @@ -15,6 +17,7 @@ main (int argc, char ** argv) service = indicator_service_new(INDICATOR_CUSTOM_DBUS_ADDR); appstore = CUSTOM_SERVICE_APPSTORE(g_object_new(CUSTOM_SERVICE_APPSTORE_TYPE, NULL)); + watcher = custom_service_watcher_new(appstore); mainloop = g_main_loop_new(NULL, FALSE); g_main_loop_run(mainloop); |