From 6f81ccffb569609d9a493249bb6adfc248d84162 Mon Sep 17 00:00:00 2001 From: Jason Conti Date: Sun, 8 May 2011 13:39:02 -0400 Subject: Renamed the interface. --- data/Makefile.am | 6 +- src/datetime-interface.c | 207 ----------------------------------------------- src/datetime-interface.h | 57 ------------- src/example-interface.c | 207 +++++++++++++++++++++++++++++++++++++++++++++++ src/example-interface.h | 57 +++++++++++++ 5 files changed, 267 insertions(+), 267 deletions(-) delete mode 100644 src/datetime-interface.c delete mode 100644 src/datetime-interface.h create mode 100644 src/example-interface.c create mode 100644 src/example-interface.h diff --git a/data/Makefile.am b/data/Makefile.am index 9600da4..9eef2e0 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -1,12 +1,12 @@ #SUBDIRS = icons dbus_servicesdir = $(DBUSSERVICEDIR) -dbus_services_DATA = indicator-datetime.service +dbus_services_DATA = indicator-example.service %.service: %.service.in sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ EXTRA_DIST = \ - indicator-datetime.service.in + indicator-example.service.in -CLEANFILES = indicator-datetime.service +CLEANFILES = indicator-example.service diff --git a/src/datetime-interface.c b/src/datetime-interface.c deleted file mode 100644 index 5939061..0000000 --- a/src/datetime-interface.c +++ /dev/null @@ -1,207 +0,0 @@ -/* -An indicator to time and date related information in the menubar. - -Copyright 2010 Canonical Ltd. - -Authors: - Ted Gould - -This program is free software: you can redistribute it and/or modify it -under the terms of the GNU General Public License version 3, as published -by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranties of -MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program. If not, see . -*/ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include - -#include "datetime-interface.h" -#include "gen-datetime-service.xml.h" -#include "dbus-shared.h" - -/** - DatetimeInterfacePrivate: - @dbus_registration: The handle for this object being registered - on dbus. - - Structure to define the memory for the private area - of the datetime interface instance. -*/ -struct _DatetimeInterfacePrivate { - GDBusConnection * bus; - GCancellable * bus_cancel; - guint dbus_registration; -}; - -#define DATETIME_INTERFACE_GET_PRIVATE(o) (DATETIME_INTERFACE(o)->priv) - -/* GDBus Stuff */ -static GDBusNodeInfo * node_info = NULL; -static GDBusInterfaceInfo * interface_info = NULL; - -static void datetime_interface_class_init (DatetimeInterfaceClass *klass); -static void datetime_interface_init (DatetimeInterface *self); -static void datetime_interface_dispose (GObject *object); -static void datetime_interface_finalize (GObject *object); -static void bus_get_cb (GObject * object, GAsyncResult * res, gpointer user_data); - -G_DEFINE_TYPE (DatetimeInterface, datetime_interface, G_TYPE_OBJECT); - -static void -datetime_interface_class_init (DatetimeInterfaceClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - g_type_class_add_private (klass, sizeof (DatetimeInterfacePrivate)); - - object_class->dispose = datetime_interface_dispose; - object_class->finalize = datetime_interface_finalize; - - /* Setting up the DBus interfaces */ - if (node_info == NULL) { - GError * error = NULL; - - node_info = g_dbus_node_info_new_for_xml(_datetime_service, &error); - if (error != NULL) { - g_error("Unable to parse Datetime Service Interface description: %s", error->message); - g_error_free(error); - } - } - - if (interface_info == NULL) { - interface_info = g_dbus_node_info_lookup_interface(node_info, SERVICE_IFACE); - - if (interface_info == NULL) { - g_error("Unable to find interface '" SERVICE_IFACE "'"); - } - } - - return; -} - -static void -datetime_interface_init (DatetimeInterface *self) -{ - self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, DATETIME_INTERFACE_TYPE, DatetimeInterfacePrivate); - - self->priv->bus = NULL; - self->priv->bus_cancel = NULL; - self->priv->dbus_registration = 0; - - self->priv->bus_cancel = g_cancellable_new(); - g_bus_get(G_BUS_TYPE_SESSION, - self->priv->bus_cancel, - bus_get_cb, - self); - - return; -} - -static void -bus_get_cb (GObject * object, GAsyncResult * res, gpointer user_data) -{ - GError * error = NULL; - GDBusConnection * connection = g_bus_get_finish(res, &error); - - if (error != NULL) { - g_error("OMG! Unable to get a connection to DBus: %s", error->message); - g_error_free(error); - return; - } - - DatetimeInterfacePrivate * priv = DATETIME_INTERFACE_GET_PRIVATE(user_data); - - g_warn_if_fail(priv->bus == NULL); - priv->bus = connection; - - if (priv->bus_cancel != NULL) { - g_object_unref(priv->bus_cancel); - priv->bus_cancel = NULL; - } - - /* Now register our object on our new connection */ - priv->dbus_registration = g_dbus_connection_register_object(priv->bus, - SERVICE_OBJ, - interface_info, - NULL, - user_data, - NULL, - &error); - - if (error != NULL) { - g_error("Unable to register the object to DBus: %s", error->message); - g_error_free(error); - return; - } - - return; -} - -static void -datetime_interface_dispose (GObject *object) -{ - DatetimeInterfacePrivate * priv = DATETIME_INTERFACE_GET_PRIVATE(object); - - if (priv->dbus_registration != 0) { - g_dbus_connection_unregister_object(priv->bus, priv->dbus_registration); - /* Don't care if it fails, there's nothing we can do */ - priv->dbus_registration = 0; - } - - if (priv->bus != NULL) { - g_object_unref(priv->bus); - priv->bus = NULL; - } - - if (priv->bus_cancel != NULL) { - g_cancellable_cancel(priv->bus_cancel); - g_object_unref(priv->bus_cancel); - priv->bus_cancel = NULL; - } - - G_OBJECT_CLASS (datetime_interface_parent_class)->dispose (object); - return; -} - -static void -datetime_interface_finalize (GObject *object) -{ - - G_OBJECT_CLASS (datetime_interface_parent_class)->finalize (object); - return; -} - -void -datetime_interface_update (DatetimeInterface *self) -{ - g_return_if_fail(IS_DATETIME_INTERFACE(self)); - - DatetimeInterfacePrivate * priv = DATETIME_INTERFACE_GET_PRIVATE(self); - GError * error = NULL; - - g_dbus_connection_emit_signal (priv->bus, - NULL, - SERVICE_OBJ, - SERVICE_IFACE, - "UpdateTime", - NULL, - &error); - - if (error != NULL) { - g_error("Unable to send UpdateTime signal: %s", error->message); - g_error_free(error); - return; - } - - return; -} diff --git a/src/datetime-interface.h b/src/datetime-interface.h deleted file mode 100644 index ae85605..0000000 --- a/src/datetime-interface.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -An indicator to time and date related information in the menubar. - -Copyright 2010 Canonical Ltd. - -Authors: - Ted Gould - -This program is free software: you can redistribute it and/or modify it -under the terms of the GNU General Public License version 3, as published -by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranties of -MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program. If not, see . -*/ - -#ifndef __DATETIME_INTERFACE_H__ -#define __DATETIME_INTERFACE_H__ - -#include -#include - -G_BEGIN_DECLS - -#define DATETIME_INTERFACE_TYPE (datetime_interface_get_type ()) -#define DATETIME_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATETIME_INTERFACE_TYPE, DatetimeInterface)) -#define DATETIME_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATETIME_INTERFACE_TYPE, DatetimeInterfaceClass)) -#define IS_DATETIME_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATETIME_INTERFACE_TYPE)) -#define IS_DATETIME_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATETIME_INTERFACE_TYPE)) -#define DATETIME_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATETIME_INTERFACE_TYPE, DatetimeInterfaceClass)) - -typedef struct _DatetimeInterface DatetimeInterface; -typedef struct _DatetimeInterfacePrivate DatetimeInterfacePrivate; -typedef struct _DatetimeInterfaceClass DatetimeInterfaceClass; - -struct _DatetimeInterfaceClass { - GObjectClass parent_class; - - void (*update_time) (void); -}; - -struct _DatetimeInterface { - GObject parent; - DatetimeInterfacePrivate * priv; -}; - -GType datetime_interface_get_type (void); -void datetime_interface_update (DatetimeInterface *self); - -G_END_DECLS - -#endif diff --git a/src/example-interface.c b/src/example-interface.c new file mode 100644 index 0000000..1ca729a --- /dev/null +++ b/src/example-interface.c @@ -0,0 +1,207 @@ +/* +An example indicator. + +Copyright 2010 Canonical Ltd. + +Authors: + Ted Gould + +This program is free software: you can redistribute it and/or modify it +under the terms of the GNU General Public License version 3, as published +by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranties of +MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR +PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program. If not, see . +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "example-interface.h" +#include "gen-example-service.xml.h" +#include "dbus-shared.h" + +/** + ExampleInterfacePrivate: + @dbus_registration: The handle for this object being registered + on dbus. + + Structure to define the memory for the private area + of the example interface instance. +*/ +struct _ExampleInterfacePrivate { + GDBusConnection * bus; + GCancellable * bus_cancel; + guint dbus_registration; +}; + +#define EXAMPLE_INTERFACE_GET_PRIVATE(o) (EXAMPLE_INTERFACE(o)->priv) + +/* GDBus Stuff */ +static GDBusNodeInfo * node_info = NULL; +static GDBusInterfaceInfo * interface_info = NULL; + +static void example_interface_class_init (ExampleInterfaceClass *klass); +static void example_interface_init (ExampleInterface *self); +static void example_interface_dispose (GObject *object); +static void example_interface_finalize (GObject *object); +static void bus_get_cb (GObject * object, GAsyncResult * res, gpointer user_data); + +G_DEFINE_TYPE (ExampleInterface, example_interface, G_TYPE_OBJECT); + +static void +example_interface_class_init (ExampleInterfaceClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (ExampleInterfacePrivate)); + + object_class->dispose = example_interface_dispose; + object_class->finalize = example_interface_finalize; + + /* Setting up the DBus interfaces */ + if (node_info == NULL) { + GError * error = NULL; + + node_info = g_dbus_node_info_new_for_xml(_example_service, &error); + if (error != NULL) { + g_error("Unable to parse Example Service Interface description: %s", error->message); + g_error_free(error); + } + } + + if (interface_info == NULL) { + interface_info = g_dbus_node_info_lookup_interface(node_info, SERVICE_IFACE); + + if (interface_info == NULL) { + g_error("Unable to find interface '" SERVICE_IFACE "'"); + } + } + + return; +} + +static void +example_interface_init (ExampleInterface *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, EXAMPLE_INTERFACE_TYPE, ExampleInterfacePrivate); + + self->priv->bus = NULL; + self->priv->bus_cancel = NULL; + self->priv->dbus_registration = 0; + + self->priv->bus_cancel = g_cancellable_new(); + g_bus_get(G_BUS_TYPE_SESSION, + self->priv->bus_cancel, + bus_get_cb, + self); + + return; +} + +static void +bus_get_cb (GObject * object, GAsyncResult * res, gpointer user_data) +{ + GError * error = NULL; + GDBusConnection * connection = g_bus_get_finish(res, &error); + + if (error != NULL) { + g_error("OMG! Unable to get a connection to DBus: %s", error->message); + g_error_free(error); + return; + } + + ExampleInterfacePrivate * priv = EXAMPLE_INTERFACE_GET_PRIVATE(user_data); + + g_warn_if_fail(priv->bus == NULL); + priv->bus = connection; + + if (priv->bus_cancel != NULL) { + g_object_unref(priv->bus_cancel); + priv->bus_cancel = NULL; + } + + /* Now register our object on our new connection */ + priv->dbus_registration = g_dbus_connection_register_object(priv->bus, + SERVICE_OBJ, + interface_info, + NULL, + user_data, + NULL, + &error); + + if (error != NULL) { + g_error("Unable to register the object to DBus: %s", error->message); + g_error_free(error); + return; + } + + return; +} + +static void +example_interface_dispose (GObject *object) +{ + ExampleInterfacePrivate * priv = EXAMPLE_INTERFACE_GET_PRIVATE(object); + + if (priv->dbus_registration != 0) { + g_dbus_connection_unregister_object(priv->bus, priv->dbus_registration); + /* Don't care if it fails, there's nothing we can do */ + priv->dbus_registration = 0; + } + + if (priv->bus != NULL) { + g_object_unref(priv->bus); + priv->bus = NULL; + } + + if (priv->bus_cancel != NULL) { + g_cancellable_cancel(priv->bus_cancel); + g_object_unref(priv->bus_cancel); + priv->bus_cancel = NULL; + } + + G_OBJECT_CLASS (example_interface_parent_class)->dispose (object); + return; +} + +static void +example_interface_finalize (GObject *object) +{ + + G_OBJECT_CLASS (example_interface_parent_class)->finalize (object); + return; +} + +void +example_interface_update (ExampleInterface *self) +{ + g_return_if_fail(IS_EXAMPLE_INTERFACE(self)); + + ExampleInterfacePrivate * priv = EXAMPLE_INTERFACE_GET_PRIVATE(self); + GError * error = NULL; + + g_dbus_connection_emit_signal (priv->bus, + NULL, + SERVICE_OBJ, + SERVICE_IFACE, + "UpdateTime", + NULL, + &error); + + if (error != NULL) { + g_error("Unable to send UpdateTime signal: %s", error->message); + g_error_free(error); + return; + } + + return; +} diff --git a/src/example-interface.h b/src/example-interface.h new file mode 100644 index 0000000..3c18c48 --- /dev/null +++ b/src/example-interface.h @@ -0,0 +1,57 @@ +/* +An example indicator. + +Copyright 2010 Canonical Ltd. + +Authors: + Ted Gould + +This program is free software: you can redistribute it and/or modify it +under the terms of the GNU General Public License version 3, as published +by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranties of +MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR +PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program. If not, see . +*/ + +#ifndef __EXAMPLE_INTERFACE_H__ +#define __EXAMPLE_INTERFACE_H__ + +#include +#include + +G_BEGIN_DECLS + +#define EXAMPLE_INTERFACE_TYPE (example_interface_get_type ()) +#define EXAMPLE_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXAMPLE_INTERFACE_TYPE, ExampleInterface)) +#define EXAMPLE_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EXAMPLE_INTERFACE_TYPE, ExampleInterfaceClass)) +#define IS_EXAMPLE_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EXAMPLE_INTERFACE_TYPE)) +#define IS_EXAMPLE_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EXAMPLE_INTERFACE_TYPE)) +#define EXAMPLE_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EXAMPLE_INTERFACE_TYPE, ExampleInterfaceClass)) + +typedef struct _ExampleInterface ExampleInterface; +typedef struct _ExampleInterfacePrivate ExampleInterfacePrivate; +typedef struct _ExampleInterfaceClass ExampleInterfaceClass; + +struct _ExampleInterfaceClass { + GObjectClass parent_class; + + void (*update_time) (void); +}; + +struct _ExampleInterface { + GObject parent; + ExampleInterfacePrivate * priv; +}; + +GType example_interface_get_type (void); +void example_interface_update (ExampleInterface *self); + +G_END_DECLS + +#endif -- cgit v1.2.3