[maemo-commits] [maemo-commits] r15997 - in projects/haf/branches/hildon-thumbnail/daemonize: . tests
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Wed Sep 3 18:33:01 EEST 2008
- Previous message: [maemo-commits] r15996 - in projects/haf/trunk/gtk+: . gtk
- Next message: [maemo-commits] r15998 - projects/haf/branches/hildon-thumbnail/daemonize/tests
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: pvanhoof Date: 2008-09-03 18:32:59 +0300 (Wed, 03 Sep 2008) New Revision: 15997 Added: projects/haf/branches/hildon-thumbnail/daemonize/tests/daemon.c projects/haf/branches/hildon-thumbnail/daemonize/tests/daemon.xml Modified: projects/haf/branches/hildon-thumbnail/daemonize/ChangeLog projects/haf/branches/hildon-thumbnail/daemonize/configure.ac projects/haf/branches/hildon-thumbnail/daemonize/tests/ projects/haf/branches/hildon-thumbnail/daemonize/tests/Makefile.am Log: 2008-09-03 Philip Van Hoof <philip at codeminded.be> tests/daemon.xml tests/daemon.c tests/Makefile.am configure.ac: Made a little external plugin test Modified: projects/haf/branches/hildon-thumbnail/daemonize/ChangeLog =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/ChangeLog 2008-09-03 14:36:35 UTC (rev 15996) +++ projects/haf/branches/hildon-thumbnail/daemonize/ChangeLog 2008-09-03 15:32:59 UTC (rev 15997) @@ -1,5 +1,12 @@ 2008-09-03 Philip Van Hoof <philip at codeminded.be> + tests/daemon.xml + tests/daemon.c + tests/Makefile.am + configure.ac: Made a little external plugin test + +2008-09-03 Philip Van Hoof <philip at codeminded.be> + * configure.ac * config.h.in: Made GIO required Modified: projects/haf/branches/hildon-thumbnail/daemonize/configure.ac =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/configure.ac 2008-09-03 14:36:35 UTC (rev 15996) +++ projects/haf/branches/hildon-thumbnail/daemonize/configure.ac 2008-09-03 15:32:59 UTC (rev 15997) @@ -185,6 +185,7 @@ # --- Output --- AC_OUTPUT(Makefile \ + tests/Makefile \ daemon/Makefile \ daemon/plugins/Makefile \ thumbs/Makefile \ Property changes on: projects/haf/branches/hildon-thumbnail/daemonize/tests ___________________________________________________________________ Name: svn:ignore + Makefile.in *-glue.h hildon-thumbnail-tester .libs hildon-thumbnail-daemon-plugin-test .deps Makefile Modified: projects/haf/branches/hildon-thumbnail/daemonize/tests/Makefile.am =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/tests/Makefile.am 2008-09-03 14:36:35 UTC (rev 15996) +++ projects/haf/branches/hildon-thumbnail/daemonize/tests/Makefile.am 2008-09-03 15:32:59 UTC (rev 15997) @@ -1,8 +1,21 @@ -INCLUDES = -I$(srcdir)/../thumbs -I$(srcdir)/.. $(PKG_CFLAGS) +INCLUDES = -I$(srcdir)/../thumbs -I$(srcdir)/.. $(PKG_CFLAGS) \ + $(DBUS_CFLAGS) $(GLIB_CFLAGS) $(GMODULE_CFLAGS) $(GIO_CFLAGS) -bin_PROGRAMS = hildon-thumbnail-tester +bin_PROGRAMS = hildon-thumbnail-tester hildon-thumbnail-daemon-plugin-test +hildon_thumbnail_daemon_plugin_test_SOURCES = daemon.c daemon-glue.h +hildon_thumbnail_daemon_plugin_test_LDADD = $(top_builddir)/thumbs/libhildonthumbnail.la + $(DBUS_LIBS) $(GLIB_LIBS) $(GMODULE_LIBS) $(GIO_LIBS) + hildon_thumbnail_tester_SOURCES = tests.c hildon_thumbnail_tester_LDADD = $(top_builddir)/thumbs/libhildonthumbnail.la $(PKG_LIBS) EXTRA_DIST = $(wildcard $(srcdir)/images/*) + + +%-glue.h: $(top_srcdir)/tests/%.xml + $(DBUSBINDINGTOOL) --mode=glib-server --output=$@ --prefix=$(subst -,_,$*) $^ + +BUILT_SOURCES = daemon-glue.h + +EXTRA_DIST = $(BUILT_SOURCES) daemon.xml Added: projects/haf/branches/hildon-thumbnail/daemonize/tests/daemon.c =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/tests/daemon.c 2008-09-03 14:36:35 UTC (rev 15996) +++ projects/haf/branches/hildon-thumbnail/daemonize/tests/daemon.c 2008-09-03 15:32:59 UTC (rev 15997) @@ -0,0 +1,200 @@ +#include <glib.h> +#include <gio/gio.h> +#include <dbus/dbus-glib-bindings.h> + + +#define DAEMON_SERVICE "org.freedesktop.thumbnailer" +#define DAEMON_PATH "/org/freedesktop/thumbnailer" +#define DAEMON_INTERFACE "org.freedesktop.thumbnailer" + +#define MANAGER_SERVICE "org.freedesktop.thumbnailer.manager" +#define MANAGER_PATH "/org/freedesktop/thumbnailer/manager" +#define MANAGER_INTERFACE "org.freedesktop.thumbnailer.manager" + +#define TYPE_DAEMON (daemon_get_type()) +#define DAEMON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_DAEMON, Daemon)) +#define DAEMON_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), TYPE_DAEMON, DaemonClass)) +#define DAEMON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_DAEMON, DaemonClass)) + +typedef struct Daemon Daemon; +typedef struct DaemonClass DaemonClass; + +struct Daemon { + GObject parent; +}; + +struct DaemonClass { + GObjectClass parent; +}; + +typedef struct { + DBusGConnection *connection; +} DaemonPrivate; + +enum { + PROP_0, + PROP_CONNECTION +}; + +G_DEFINE_TYPE (Daemon, daemon, G_TYPE_OBJECT) + +#define DAEMON_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_DAEMON, DaemonPrivate)) + +void +daemon_create (Daemon *object, GStrv uris, DBusGMethodInvocation *context) +{ +} + +#include "daemon-glue.h" + + +static void +daemon_set_connection (Daemon *object, DBusGConnection *connection) +{ + DaemonPrivate *priv = DAEMON_GET_PRIVATE (object); + priv->connection = connection; +} + + +static void +daemon_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + switch (prop_id) { + case PROP_CONNECTION: + daemon_set_connection (DAEMON (object), + g_value_get_pointer (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + + +static void +daemon_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + DaemonPrivate *priv; + + priv = DAEMON_GET_PRIVATE (object); + + switch (prop_id) { + case PROP_CONNECTION: + g_value_set_pointer (value, priv->connection); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +daemon_finalize (GObject *object) +{ + G_OBJECT_CLASS (daemon_parent_class)->finalize (object); +} + +static void +daemon_class_init (DaemonClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + object_class->finalize = daemon_finalize; + object_class->set_property = daemon_set_property; + object_class->get_property = daemon_get_property; + + + g_object_class_install_property (object_class, + PROP_CONNECTION, + g_param_spec_pointer ("connection", + "DBus connection", + "DBus connection", + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT)); + + g_type_class_add_private (object_class, sizeof (DaemonPrivate)); +} + +static void +daemon_init (Daemon *object) +{ +} + +static void +daemon_start (Daemon *object) +{ + GError *error = NULL; + DaemonPrivate *priv = DAEMON_GET_PRIVATE (object); + + DBusGProxy *manager_proxy = dbus_g_proxy_new_for_name (priv->connection, + MANAGER_SERVICE, + MANAGER_PATH, + MANAGER_INTERFACE); + + + dbus_g_proxy_call (manager_proxy, "Register", + &error, G_TYPE_STRING, + "image/png", + G_TYPE_INVALID, + G_TYPE_INVALID); + + if (error) { + g_critical ("Failed to init: %s\n", error->message); + g_error_free (error); + } + + g_object_unref (manager_proxy); + +} + + +int +main (int argc, char **argv) +{ + DBusGConnection *connection; + DBusGProxy *proxy; + GError *error = NULL; + guint result; + GMainLoop *main_loop; + GObject *object; + + g_type_init (); + + if (!g_thread_supported ()) + g_thread_init (NULL); + + connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); + + proxy = dbus_g_proxy_new_for_name (connection, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + + org_freedesktop_DBus_request_name (proxy, DAEMON_SERVICE, + DBUS_NAME_FLAG_DO_NOT_QUEUE, + &result, error); + + object = g_object_new (TYPE_DAEMON, + "connection", connection, + NULL); + + daemon_start (DAEMON (object)); + + dbus_g_object_type_install_info (G_OBJECT_TYPE (object), + &dbus_glib_daemon_object_info); + + dbus_g_connection_register_g_object (connection, + DAEMON_PATH, + object); + + + main_loop = g_main_loop_new (NULL, FALSE); + g_main_loop_run (main_loop); + + g_main_loop_unref (main_loop); + + return 0; +} Added: projects/haf/branches/hildon-thumbnail/daemonize/tests/daemon.xml =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/tests/daemon.xml 2008-09-03 14:36:35 UTC (rev 15996) +++ projects/haf/branches/hildon-thumbnail/daemonize/tests/daemon.xml 2008-09-03 15:32:59 UTC (rev 15997) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<node name="/"> + <interface name="org.freedesktop.thumbnailer"> + <method name="Create"> + <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> + <arg type="as" name="uris" direction="in" /> + </method> + </interface> +</node>
- Previous message: [maemo-commits] r15996 - in projects/haf/trunk/gtk+: . gtk
- Next message: [maemo-commits] r15998 - projects/haf/branches/hildon-thumbnail/daemonize/tests
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]