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



Author: pvanhoof
Date: Fri Jul 18 12:04:44 2008
New Revision: 1888
URL: http://svn.gnome.org/viewvc/tracker?rev=1888&view=rev

Log:
2008-07-18  Philip Van Hoof  <pvanhoof gnome org>

	* src/tracker-indexer/tracker-indexer.c:
	* src/tracker-indexer/tracker-indexer.h:
	* data/dbus/tracker-indexer.xml:

	Added a SetPaused DBus API to the indexer



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

Modified: branches/indexer-split/data/dbus/tracker-indexer.xml
==============================================================================
--- branches/indexer-split/data/dbus/tracker-indexer.xml	(original)
+++ branches/indexer-split/data/dbus/tracker-indexer.xml	Fri Jul 18 12:04:44 2008
@@ -26,7 +26,11 @@
       <arg type="s" name="module" direction="in" />
       <arg type="as" name="files" direction="in" />
     </method>
-    
+    <method name="SetPaused">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
+      <arg type="b" name="paused" direction="in" />
+    </method>
+
     <!-- Signals --> 
     <signal name="Status">
       <arg type="d" name="elapsed_time" />
@@ -34,6 +38,8 @@
       <arg type="u" name="items_done" />
       <arg type="u" name="items_remaining" />
     </signal>
+    <signal name="Paused" />
+    <signal name="Continued" />
     <signal name="Started" />
     <signal name="Finished">
       <arg type="d" name="elapsed_time" />

Modified: branches/indexer-split/src/tracker-indexer/tracker-indexer.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-indexer.c	(original)
+++ branches/indexer-split/src/tracker-indexer/tracker-indexer.c	Fri Jul 18 12:04:44 2008
@@ -149,6 +149,8 @@
 	FINISHED,
 	MODULE_STARTED,
 	MODULE_FINISHED,
+	PAUSED,
+	CONTINUED,
 	LAST_SIGNAL
 };
 
@@ -468,6 +470,24 @@
 			      g_cclosure_marshal_VOID__VOID,
 			      G_TYPE_NONE, 
 			      0);
+	signals[PAUSED] = 
+		g_signal_new ("paused",
+			      G_OBJECT_CLASS_TYPE (object_class),
+			      G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (TrackerIndexerClass, paused),
+			      NULL, NULL,
+			      g_cclosure_marshal_VOID__VOID,
+			      G_TYPE_NONE, 
+			      0);
+	signals[CONTINUED] = 
+		g_signal_new ("continued",
+			      G_OBJECT_CLASS_TYPE (object_class),
+			      G_SIGNAL_RUN_LAST,
+			      G_STRUCT_OFFSET (TrackerIndexerClass, continued),
+			      NULL, NULL,
+			      g_cclosure_marshal_VOID__VOID,
+			      G_TYPE_NONE, 
+			      0);
 	signals[FINISHED] = 
 		g_signal_new ("finished",
 			      G_OBJECT_CLASS_TYPE (object_class),
@@ -979,6 +999,45 @@
 	return indexer->private->idle_id != 0;
 }
 
+
+/**
+ * This one is not being used yet, but might be used in near future. Therefore
+ * it would be useful if Garnacho could review this for consistency and 
+ * correctness. Ps. it got written by that pvanhoof dude, just ping him if you
+ * have questions.
+ **/
+
+void
+tracker_indexer_set_paused (TrackerIndexer         *indexer,
+			    gboolean                paused,
+			    DBusGMethodInvocation  *context,
+			    GError                **error)
+{
+	g_return_if_fail (TRACKER_IS_INDEXER (indexer));
+
+	if (tracker_indexer_get_is_running (indexer)) {
+		if (paused) {
+			if (indexer->private->in_transaction) {
+				stop_transaction (indexer);
+			}
+			if (indexer->private->idle_id) {
+				g_source_remove (indexer->private->idle_id);
+				indexer->private->idle_id = 0;
+			}
+			g_signal_emit (indexer, signals[PAUSED], 0);
+		}
+	} else {
+		if (!paused) {
+			if (!indexer->private->idle_id) {
+				indexer->private->idle_id = g_idle_add (process_func, indexer);
+				g_signal_emit (indexer, signals[CONTINUED], 0);
+			}
+		}
+	}
+	dbus_g_method_return (context);
+}
+
+
 void
 tracker_indexer_process_all (TrackerIndexer *indexer)
 {

Modified: branches/indexer-split/src/tracker-indexer/tracker-indexer.h
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-indexer.h	(original)
+++ branches/indexer-split/src/tracker-indexer/tracker-indexer.h	Fri Jul 18 12:04:44 2008
@@ -58,6 +58,8 @@
 				 guint           items_indexed,
 				 guint           items_remaining);
 	void (*started)         (TrackerIndexer *indexer);
+	void (*paused)          (TrackerIndexer *indexer);
+	void (*continued)       (TrackerIndexer *indexer);
 	void (*finished)        (TrackerIndexer *indexer,
 				 gdouble         seconds_elapsed,
 				 guint           items_indexed);
@@ -72,8 +74,10 @@
 TrackerIndexer *tracker_indexer_new            (void);
 
 gboolean        tracker_indexer_get_is_running (TrackerIndexer         *indexer);
-void            tracker_indexer_set_is_running (TrackerIndexer         *indexer,
-						gboolean                is_running);
+void            tracker_indexer_set_paused     (TrackerIndexer         *indexer,
+						 gboolean                paused,
+						 DBusGMethodInvocation  *context,
+						 GError                **error);
 void            tracker_indexer_process_all    (TrackerIndexer         *indexer);
 
 void            tracker_indexer_files_check    (TrackerIndexer         *indexer,



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