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



Author: pvanhoof
Date: Mon May 12 10:57:21 2008
New Revision: 1392
URL: http://svn.gnome.org/viewvc/tracker?rev=1392&view=rev

Log:
2008-05-12  Philip Van Hoof  <pvanhoof gnome org>

	* src/trackerd/tracker-xesam-live-search.c
	* src/trackerd/tracker-xesam-live-search.h
	* src/trackerd/tracker-dbus-xesam.c
	* src/trackerd/tracker-dbus-xesam.h
	* data/tracker-dbus-xesam.xml: Support for range queries



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

Modified: branches/indexer-split/data/tracker-dbus-xesam.xml
==============================================================================
--- branches/indexer-split/data/tracker-dbus-xesam.xml	(original)
+++ branches/indexer-split/data/tracker-dbus-xesam.xml	Mon May 12 10:57:21 2008
@@ -101,4 +101,23 @@
     </signal>
 
   </interface>
+  <interface name="org.freedesktop.xesam.PagedSearch">
+      <method name="GetRangeHits">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
+      <arg type="s" name="search" direction="in" />
+      <arg type="u" name="a" direction="in" />
+      <arg type="u" name="b" direction="in" />
+      <arg type="aav" name="hits" direction="out" />
+    </method>
+
+    <method name="GetRangeHitData">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
+      <arg type="s" name="search" direction="in" />
+      <arg type="u" name="a" direction="in" />
+      <arg type="u" name="b" direction="in" />
+      <arg type="as" name="fields" direction="in" />
+      <arg type="aav" name="hit_data" direction="out" />
+    </method>
+  </interface>
+
 </node>

Modified: branches/indexer-split/src/trackerd/tracker-dbus-xesam.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-dbus-xesam.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-dbus-xesam.c	Mon May 12 10:57:21 2008
@@ -557,6 +557,41 @@
 	tracker_dbus_request_success (request_id);
 }
 
+
+
+void
+tracker_dbus_xesam_get_range_hits (TrackerDBusXesam    *object,
+				   const gchar           *search_id,
+				   guint                  a,
+				   guint                  b,
+				   DBusGMethodInvocation *context)
+{
+	guint request_id = tracker_dbus_get_next_request_id ();
+	GError *error = NULL;
+	TrackerXesamLiveSearch *search = tracker_xesam_get_live_search (search_id, &error);
+
+	if (search) {
+		GPtrArray *hits = NULL;
+		tracker_xesam_live_search_get_range_hits (search, a, b, &hits, &error);
+
+		if (error) {
+			dbus_g_method_return_error (context, error);
+			g_error_free (error);
+		} else {
+			dbus_g_method_return (context, hits);
+			freeup_hits_data (hits);
+		}
+
+		g_object_unref (search);
+	} else if (error) {
+		dbus_g_method_return_error (context, error);
+		g_error_free (error);
+	}
+
+	tracker_dbus_request_success (request_id);
+}
+
+
 void 
 tracker_dbus_xesam_get_hit_data (TrackerDBusXesam    *object,
 				   const gchar           *search_id,
@@ -590,6 +625,42 @@
 	tracker_dbus_request_success (request_id);
 }
 
+
+
+void 
+tracker_dbus_xesam_get_range_hit_data (TrackerDBusXesam    *object,
+				       const gchar           *search_id,
+				       guint                  a,
+				       guint                  b,
+				       GStrv                  fields, 
+				       DBusGMethodInvocation *context)
+{
+	guint request_id = tracker_dbus_get_next_request_id ();
+	GError *error = NULL;
+	TrackerXesamLiveSearch *search = tracker_xesam_get_live_search (search_id, &error);
+
+	if (search) {
+		GPtrArray *hit_data = NULL;
+		tracker_xesam_live_search_get_range_hit_data (search, a, b, fields, &hit_data, &error);
+
+		if (error) {
+			dbus_g_method_return_error (context, error);
+			g_error_free (error);
+		} else {
+			dbus_g_method_return (context, hit_data);
+			freeup_hits_data (hit_data);
+		}
+
+
+		g_object_unref (search);
+	} else if (error) {
+		dbus_g_method_return_error (context, error);
+		g_error_free (error);
+	}
+
+	tracker_dbus_request_success (request_id);
+}
+
 void 
 tracker_dbus_xesam_close_search (TrackerDBusXesam    *object,
 				   const gchar           *search_id,

Modified: branches/indexer-split/src/trackerd/tracker-dbus-xesam.h
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-dbus-xesam.h	(original)
+++ branches/indexer-split/src/trackerd/tracker-dbus-xesam.h	Mon May 12 10:57:21 2008
@@ -58,50 +58,61 @@
 TrackerDBusXesam *
       tracker_dbus_xesam_new                (DBConnection *db_con); 
 void  tracker_dbus_xesam_new_session        (TrackerDBusXesam    *object,
-					       DBusGMethodInvocation *context);
+					     DBusGMethodInvocation *context);
 void  tracker_dbus_xesam_set_property       (TrackerDBusXesam    *object,
-					       const gchar           *session_id,
-					       const gchar           *prop,
-					       GValue                *val,
-					       DBusGMethodInvocation *context);
+					     const gchar           *session_id,
+					     const gchar           *prop,
+					     GValue                *val,
+					     DBusGMethodInvocation *context);
 void  tracker_dbus_xesam_get_property       (TrackerDBusXesam    *object,
-					       const gchar           *session_id,
-					       const gchar           *prop,
-					       DBusGMethodInvocation *context);
+					     const gchar           *session_id,
+					     const gchar           *prop,
+					     DBusGMethodInvocation *context);
 void  tracker_dbus_xesam_close_session      (TrackerDBusXesam    *object,
-					       const gchar           *session_id,
-					       DBusGMethodInvocation *context);
+					     const gchar           *session_id,
+					     DBusGMethodInvocation *context);
 void  tracker_dbus_xesam_new_search         (TrackerDBusXesam    *object,
-					       const gchar           *session_id,
-					       const gchar           *query_xml,
-					       DBusGMethodInvocation *context);
+					     const gchar           *session_id,
+					     const gchar           *query_xml,
+					     DBusGMethodInvocation *context);
 void  tracker_dbus_xesam_start_search       (TrackerDBusXesam    *object,
-					       const gchar           *search_id,
-					       DBusGMethodInvocation *context);
+					     const gchar           *search_id,
+					     DBusGMethodInvocation *context);
 void  tracker_dbus_xesam_get_hit_count      (TrackerDBusXesam    *object,
-					       const gchar           *search_id,
-					       DBusGMethodInvocation *context);
+					     const gchar           *search_id,
+					     DBusGMethodInvocation *context);
 void  tracker_dbus_xesam_get_hits           (TrackerDBusXesam    *object,
-					       const gchar           *search_id,
-					       guint                  count,
-					       DBusGMethodInvocation *context);
+					     const gchar           *search_id,
+					     guint                  count,
+					     DBusGMethodInvocation *context);
+void tracker_dbus_xesam_get_range_hits	     (TrackerDBusXesam    *object,
+					      const gchar           *search_id,
+					      guint                  a,
+					      guint                  b,
+					      DBusGMethodInvocation *context);
 void  tracker_dbus_xesam_get_hit_data       (TrackerDBusXesam    *object,
-					       const gchar           *search_id,
-					       GArray                *hit_ids,
-					       GStrv                  fields,
-					       DBusGMethodInvocation *context);
+					     const gchar           *search_id,
+					     GArray                *hit_ids,
+					     GStrv                  fields,
+					     DBusGMethodInvocation *context);
+void tracker_dbus_xesam_get_range_hit_data  (TrackerDBusXesam    *object,
+					     const gchar           *search_id,
+					     guint                  a,
+					     guint                  b,
+					     GStrv                  fields, 
+					     DBusGMethodInvocation *context);
 void  tracker_dbus_xesam_close_search       (TrackerDBusXesam    *object,
-					       const gchar           *search_id,
-					       DBusGMethodInvocation *context);
+					     const gchar           *search_id,
+					     DBusGMethodInvocation *context);
 void  tracker_dbus_xesam_get_state          (TrackerDBusXesam    *object,
-					       DBusGMethodInvocation *context);
+					     DBusGMethodInvocation *context);
 void  tracker_dbus_xesam_emit_state_changed (TrackerDBusXesam    *self,
-					       GStrv                  state_info);
+					     GStrv                  state_info);
 void  tracker_dbus_xesam_name_owner_changed (DBusGProxy            *proxy,
-					       const char            *name,
-					       const char            *prev_owner,
-					       const char            *new_owner,
-					       TrackerDBusXesam    *self);
+					     const char            *name,
+					     const char            *prev_owner,
+					     const char            *new_owner,
+					     TrackerDBusXesam    *self);
 void  tracker_dbus_xesam_set_db_connection  (TrackerDBusXesam *object,
 				             DBConnection      *db_con);
 

Modified: branches/indexer-split/src/trackerd/tracker-xesam-live-search.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-xesam-live-search.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-xesam-live-search.c	Mon May 12 10:57:21 2008
@@ -474,6 +474,28 @@
 	}
 }
 
+void tracker_xesam_live_search_get_range_hits (TrackerXesamLiveSearch  *self,
+					       guint                    a,
+					       guint                    b,
+					       GPtrArray              **hits,
+					       GError                 **error)
+{
+	TrackerXesamLiveSearchPriv *priv = self->priv;
+
+	if (!priv->active)
+		g_set_error (error, TRACKER_XESAM_ERROR, 
+				TRACKER_XESAM_ERROR_SEARCH_NOT_ACTIVE,
+				"Search is not active");
+	else {
+		TrackerDBResultSet *result_set = NULL;
+
+		// For ottela: fetch results for get_hits
+
+		get_hit_data (self, result_set, hits);
+	}
+}
+
+
 /**
  * tracker_xesam_live_search_get_hit_data:
  * @self: a #TrackerXesamLiveSearch
@@ -523,6 +545,30 @@
 	}
 }
 
+
+void
+tracker_xesam_live_search_get_range_hit_data (TrackerXesamLiveSearch  *self,
+					      guint                    a,
+					      guint                    b,
+					      GStrv                    fields, 
+					      GPtrArray              **hit_data,
+					      GError                 **error)
+{
+	TrackerXesamLiveSearchPriv *priv = self->priv;
+
+	if (!priv->active)
+		g_set_error (error, TRACKER_XESAM_ERROR, 
+				TRACKER_XESAM_ERROR_SEARCH_NOT_ACTIVE,
+				"Search is not active yet");
+	else {
+		TrackerDBResultSet *result_set = NULL;
+
+		// For ottela: fetch results for get_hit_data
+
+		get_hit_data (self, result_set, hit_data);
+	}
+}
+
 /**
  * tracker_xesam_live_search_is_active:
  * @self: a #TrackerXesamLiveSearch

Modified: branches/indexer-split/src/trackerd/tracker-xesam-live-search.h
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-xesam-live-search.h	(original)
+++ branches/indexer-split/src/trackerd/tracker-xesam-live-search.h	Mon May 12 10:57:21 2008
@@ -68,6 +68,17 @@
 							   guint                    count,
 							   GPtrArray              **hits,
 							   GError                 **error);
+void         tracker_xesam_live_search_get_range_hit_data (TrackerXesamLiveSearch  *self,
+							   guint                    a,
+							   guint                    b,
+							   GStrv                  fields, 
+							   GPtrArray              **hit_data,
+							   GError                 **error);
+void         tracker_xesam_live_search_get_range_hits     (TrackerXesamLiveSearch  *self,
+							   guint                    a,
+							   guint                    b,
+							   GPtrArray              **hits,
+							   GError                 **error);
 void         tracker_xesam_live_search_get_hit_count      (TrackerXesamLiveSearch  *self,
 							   guint                   *count,
 							   GError                 **error);



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