aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/custom-service-watcher.c22
-rw-r--r--src/custom-service-watcher.h3
-rw-r--r--src/custom-service.c3
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);