rendered paste body#include <glib.h>#include <dbus/dbus-glib.h>#include <dbus/dbus-glib-bindings.h>#include "tracker-dbus.h"gbooleantimeout (gpointer data){ g_print ("timeout called from context %d\n", GPOINTER_TO_INT (data)); return TRUE;}gpointerthread (gpointer data){ DBusGConnection *connection; DBusGProxy *proxy; GMainContext *context; GMainLoop *loop; GSource *source; TrackerDBus *server; guint flags; context = g_main_context_new (); loop = g_main_loop_new (context, FALSE); connection = dbus_g_bus_get (DBUS_BUS_SESSION, NULL); dbus_connection_setup_with_g_main (dbus_g_connection_get_connection (connection), context); proxy = dbus_g_proxy_new_for_name (connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS); org_freedesktop_DBus_request_name (proxy, "testing.Tracker", DBUS_NAME_FLAG_REPLACE_EXISTING, &flags, NULL); server = tracker_dbus_new (); dbus_g_connection_register_g_object (connection, "/testing/Tracker", G_OBJECT (server)); source = g_timeout_source_new (1000); g_source_set_callback (source, timeout, GINT_TO_POINTER (2), NULL); g_source_attach (source, context); g_main_loop_run (loop);}intmain (int argc, char *argv[]){ GMainLoop *loop; g_type_init (); g_thread_init (NULL); dbus_g_thread_init (); g_thread_create (thread, NULL, TRUE, NULL); loop = g_main_loop_new (NULL, FALSE); g_timeout_add (1000, timeout, GINT_TO_POINTER (1)); g_main_loop_run (loop);}