tracker r1866 - in branches/indexer-split: . data/dbus src/trackerd



Author: ifrade
Date: Fri Jul  4 14:57:23 2008
New Revision: 1866
URL: http://svn.gnome.org/viewvc/tracker?rev=1866&view=rev

Log:
Tracker daemon API async

Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/data/dbus/tracker-daemon.xml
   branches/indexer-split/src/trackerd/tracker-daemon.c
   branches/indexer-split/src/trackerd/tracker-daemon.h

Modified: branches/indexer-split/data/dbus/tracker-daemon.xml
==============================================================================
--- branches/indexer-split/data/dbus/tracker-daemon.xml	(original)
+++ branches/indexer-split/data/dbus/tracker-daemon.xml	Fri Jul  4 14:57:23 2008
@@ -72,6 +72,7 @@
 	 1.45.23).
       -->
     <method name="GetVersion">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
       <arg type="i" name="version" direction="out" />
     </method>
     
@@ -80,6 +81,7 @@
 	 "Optimizing", "Idle", "Shutdown".
       --> 
     <method name="GetStatus">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
       <arg type="s" name="status" direction="out" />
     </method>
     
@@ -91,6 +93,7 @@
 	 Output is in dict format: (service -> description, parent).
     --> 
     <method name="GetServices">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
       <arg type="b" name="main_services_only" direction="in" />
       <arg type="a{sv}" name="result" direction="out" />
     </method>
@@ -99,6 +102,7 @@
 	 in string array format: [service, no of entities]  
       --> 
     <method name="GetStats">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
       <arg type="aas" name="service_stats" direction="out" />
     </method>
         
@@ -107,6 +111,7 @@
 	 "EnableEvolution".
       -->
     <method name="SetBoolOption">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
       <arg type="s" name="option" direction="in" />
       <arg type="b" name="value" direction="in" />
     </method>
@@ -115,17 +120,21 @@
 	 one of "Throttle", "IndexDelay".
       -->
     <method name="SetIntOption">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
       <arg type="s" name="option" direction="in" />
       <arg type="i" name="value" direction="in" />
     </method>
     
     <!-- Shutdown tracker service with optional reindex. -->
     <method name="Shutdown">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
       <arg type="b" name="reindex" direction="in" />
     </method>
         
     <!-- Prompts tracker to send progress/state signals -->
-    <method name="PromptIndexSignals"/>
+    <method name="PromptIndexSignals">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
+    </method>
     
     <!-- Signal change in index status - states are:
 	 "Initializing", "Watching", "Indexing", "Pending",

Modified: branches/indexer-split/src/trackerd/tracker-daemon.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-daemon.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-daemon.c	Fri Jul  4 14:57:23 2008
@@ -250,75 +250,73 @@
 /*
  * Functions
  */
-gboolean
-tracker_daemon_get_version (TrackerDaemon  *object,
-			    gint           *version,
-			    GError        **error)
+void
+tracker_daemon_get_version (TrackerDaemon         *object,
+			    DBusGMethodInvocation *context,
+			    GError **error)
 {
 	guint  request_id;
 	gint   major = 0;
 	gint   minor = 0;
 	gint   revision = 0;
+	gint   version;
 	gchar *str;
 
  	request_id = tracker_dbus_get_next_request_id ();
 
-	tracker_dbus_return_val_if_fail (version != NULL, FALSE, error);
-
         tracker_dbus_request_new (request_id,
 				  "DBus request to get daemon version");
 
 	
 	sscanf (VERSION, "%d.%d.%d", &major, &minor, &revision);
 	str = g_strdup_printf ("%d%d%d", major, minor, revision);
-	*version = atoi (str);
+	version = atoi (str);
 	g_free (str);
 
-	tracker_dbus_request_success (request_id);
+	dbus_g_method_return (context, version);
 
-	return TRUE;
+	tracker_dbus_request_success (request_id);
 }
 
-gboolean
-tracker_daemon_get_status (TrackerDaemon  *object,
-			   gchar         **status,
-			   GError        **error)
+void
+tracker_daemon_get_status (TrackerDaemon         *object,
+			   DBusGMethodInvocation *context, 
+			   GError **error)
 {
 	TrackerDaemonPriv *priv;
+	gchar             *status;
 	guint              request_id;
 
 	request_id = tracker_dbus_get_next_request_id ();
 
-	tracker_dbus_return_val_if_fail (status != NULL, FALSE, error);
-
 	priv = GET_PRIV (object);
 
         tracker_dbus_request_new (request_id,
 				  "DBus request to get daemon status");
 
-	*status = g_strdup (tracker_status_get_as_string ());
+	status = g_strdup (tracker_status_get_as_string ());
 
-	tracker_dbus_request_success (request_id);
+	dbus_g_method_return (context, status);
+
+	g_free (status);
 
-	return TRUE;
+	tracker_dbus_request_success (request_id);
 }
 
-gboolean
-tracker_daemon_get_services (TrackerDaemon  *object,
-			     gboolean        main_services_only,
-			     GHashTable    **values,
-			     GError        **error)
+void
+tracker_daemon_get_services (TrackerDaemon         *object,
+			     gboolean               main_services_only,
+			     DBusGMethodInvocation *context,
+			     GError **error)
 {
 	TrackerDBInterface *iface;
 	TrackerDBResultSet *result_set;
 	guint               request_id;
-
+	GHashTable         *values = NULL;
 	/* FIXME: Note, the main_services_only variable is redundant */
 
 	request_id = tracker_dbus_get_next_request_id ();
 
-	tracker_dbus_return_val_if_fail (values != NULL, FALSE, error);
-
 	tracker_dbus_request_new (request_id,
 				  "DBus request to get daemon services");
 
@@ -332,30 +330,31 @@
 	iface = tracker_db_manager_get_db_interface_by_service (TRACKER_DB_FOR_FILE_SERVICE);
 
 	result_set = tracker_db_exec_proc (iface, "GetServices", 0);
-	*values = tracker_dbus_query_result_to_hash_table (result_set);
+	values = tracker_dbus_query_result_to_hash_table (result_set);
 
 	if (result_set) {
 		g_object_unref (result_set);
 	}
 
-	tracker_dbus_request_success (request_id);
+	dbus_g_method_return (context, values);
+
+	g_hash_table_destroy (values);
 
-	return TRUE;
+	tracker_dbus_request_success (request_id);
 }
 
-gboolean
-tracker_daemon_get_stats (TrackerDaemon  *object,
-			  GPtrArray     **values,
-			  GError        **error)
+void
+tracker_daemon_get_stats (TrackerDaemon         *object,
+			  DBusGMethodInvocation *context,
+			  GError **error)
 {
 	TrackerDBInterface *iface;
 	TrackerDBResultSet *result_set;
 	guint               request_id;
+	GPtrArray          *values = NULL;
 
 	request_id = tracker_dbus_get_next_request_id ();
 
-	tracker_dbus_return_val_if_fail (values != NULL, FALSE, error);
-
 	tracker_dbus_request_new (request_id,
 				  "DBus request to get daemon service stats");
 
@@ -369,22 +368,26 @@
 	iface = tracker_db_manager_get_db_interface_by_service (TRACKER_DB_FOR_FILE_SERVICE);
 
 	result_set = tracker_db_exec_proc (iface, "GetStats", 0);
-	*values = tracker_dbus_query_result_to_ptr_array (result_set);
+	values = tracker_dbus_query_result_to_ptr_array (result_set);
 
 	if (result_set) {
 		g_object_unref (result_set);
 	}
 
-	tracker_dbus_request_success (request_id);
+	dbus_g_method_return (context, values);
+
+	g_ptr_array_foreach (values, (GFunc) g_strfreev, NULL);
+	g_ptr_array_free (values, TRUE);
 
-	return TRUE;
+	tracker_dbus_request_success (request_id);
 }
 
-gboolean
-tracker_daemon_set_bool_option (TrackerDaemon  *object,
-				const gchar    *option,
-				gboolean        value,
-				GError        **error)
+void
+tracker_daemon_set_bool_option (TrackerDaemon         *object,
+				const gchar           *option,
+				gboolean               value,
+				DBusGMethodInvocation *context,
+				GError **error)
 {
 	TrackerDaemonPriv *priv;
 	guint              request_id;
@@ -397,7 +400,7 @@
 
 	request_id = tracker_dbus_get_next_request_id ();
 
-	tracker_dbus_return_val_if_fail (option != NULL, FALSE, error);
+	tracker_dbus_async_return_if_fail (option != NULL, FALSE);
 
 	priv = GET_PRIV (object);
 
@@ -462,14 +465,17 @@
 				       tracker_config_get_enable_indexing (priv->config));
 	}
 
-	return TRUE;
+	dbus_g_method_return (context);
+
+	tracker_dbus_request_success (request_id);
 }
 
-gboolean
-tracker_daemon_set_int_option (TrackerDaemon  *object,
-			       const gchar    *option,
-			       gint            value,
-			       GError        **error)
+void
+tracker_daemon_set_int_option (TrackerDaemon         *object,
+			       const gchar           *option,
+			       gint                   value,
+			       DBusGMethodInvocation *context,
+			       GError **error)
 {
 	TrackerDaemonPriv *priv;
 	guint              request_id;
@@ -481,7 +487,7 @@
 
 	request_id = tracker_dbus_get_next_request_id ();
 
-	tracker_dbus_return_val_if_fail (option != NULL, FALSE, error);
+	tracker_dbus_async_return_if_fail (option != NULL, FALSE);
 
 	priv = GET_PRIV (object);
 
@@ -502,15 +508,16 @@
 		g_message ("Maxinum number of unique words set to %d", value);
 	} 
 
-	tracker_dbus_request_success (request_id);
+	dbus_g_method_return (context);
 
-	return TRUE;
+	tracker_dbus_request_success (request_id);
 }
 
-gboolean
-tracker_daemon_shutdown (TrackerDaemon  *object,
-			 gboolean        reindex,
-			 GError        **error)
+void
+tracker_daemon_shutdown (TrackerDaemon         *object,
+			 gboolean               reindex,
+			 DBusGMethodInvocation *context,
+			 GError **error)
 {
 	TrackerDaemonPriv *priv;
 	guint              request_id;
@@ -530,14 +537,15 @@
 
 	g_timeout_add (500, (GSourceFunc) tracker_shutdown, NULL);
 
-	tracker_dbus_request_success (request_id);
+	dbus_g_method_return (context);
 
-	return TRUE;
+	tracker_dbus_request_success (request_id);
 }
 
-gboolean
-tracker_daemon_prompt_index_signals (TrackerDaemon  *object,
-				     GError        **error)
+void
+tracker_daemon_prompt_index_signals (TrackerDaemon         *object,
+				     DBusGMethodInvocation *context,
+				     GError **error)
 {
 	TrackerDaemonPriv *priv;
 	guint              request_id;
@@ -577,7 +585,7 @@
                                priv->tracker->mbox_processed, 
                                priv->tracker->mbox_count);    
 
-	tracker_dbus_request_success (request_id);
+	dbus_g_method_return (context);
 
-	return TRUE;
+	tracker_dbus_request_success (request_id);
 }

Modified: branches/indexer-split/src/trackerd/tracker-daemon.h
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-daemon.h	(original)
+++ branches/indexer-split/src/trackerd/tracker-daemon.h	Fri Jul  4 14:57:23 2008
@@ -53,38 +53,43 @@
 };
 
 GType          tracker_daemon_get_type             (void);
-TrackerDaemon *tracker_daemon_new                  (TrackerConfig  *config,
-						    Tracker        *tracker);
-void           tracker_daemon_set_config           (TrackerDaemon  *object,
-						    TrackerConfig  *config);
-void           tracker_daemon_set_tracker          (TrackerDaemon  *object,
-						    Tracker        *tracker);
-gboolean       tracker_daemon_get_version          (TrackerDaemon  *object,
-						    gint           *version,
-						    GError        **error);
-gboolean       tracker_daemon_get_status           (TrackerDaemon  *object,
-						    gchar         **status,
-						    GError        **error);
-gboolean       tracker_daemon_get_services         (TrackerDaemon  *object,
-						    gboolean        main_services_only,
-						    GHashTable    **values,
-						    GError        **error);
-gboolean       tracker_daemon_get_stats            (TrackerDaemon  *object,
-						    GPtrArray     **values,
-						    GError        **error);
-gboolean       tracker_daemon_set_bool_option      (TrackerDaemon  *object,
-						    const gchar    *option,
-						    gboolean        value,
-						    GError        **error);
-gboolean       tracker_daemon_set_int_option       (TrackerDaemon  *object,
-						    const gchar    *option,
-						    gint            value,
-						    GError        **error);
-gboolean       tracker_daemon_shutdown             (TrackerDaemon  *object,
-						    gboolean        reindex,
-						    GError        **error);
-gboolean       tracker_daemon_prompt_index_signals (TrackerDaemon  *object,
-						    GError        **error);
+TrackerDaemon *tracker_daemon_new                  (TrackerConfig         *config,
+						    Tracker               *tracker);
+void           tracker_daemon_set_config           (TrackerDaemon         *object,
+						    TrackerConfig         *config);
+void           tracker_daemon_set_tracker          (TrackerDaemon         *object,
+						    Tracker               *tracker);
+void           tracker_daemon_get_version          (TrackerDaemon         *object,
+						    DBusGMethodInvocation *context,
+						    GError **error);
+void           tracker_daemon_get_status           (TrackerDaemon         *object,
+						    DBusGMethodInvocation *context,
+						    GError **error);
+void           tracker_daemon_get_services         (TrackerDaemon         *object,
+						    gboolean               main_services_only,
+						    DBusGMethodInvocation *context,
+						    GError **error);
+void           tracker_daemon_get_stats            (TrackerDaemon         *object,
+						    DBusGMethodInvocation *context,
+						    GError **error);
+void           tracker_daemon_set_bool_option      (TrackerDaemon         *object,
+						    const gchar           *option,
+						    gboolean               value,
+						    DBusGMethodInvocation *context,
+						    GError **error);
+void           tracker_daemon_set_int_option       (TrackerDaemon         *object,
+						    const gchar           *option,
+						    gint                   value,
+						    DBusGMethodInvocation *context,
+						    GError **error);
+void           tracker_daemon_shutdown             (TrackerDaemon         *object,
+						    gboolean               reindex,
+						    DBusGMethodInvocation *context,
+						    GError **error);
+void           tracker_daemon_prompt_index_signals (TrackerDaemon         *object,
+						    DBusGMethodInvocation *context,
+						    GError **error);
+
 
 G_END_DECLS
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]