tracker r3160 - in trunk: . data/dbus src/libtracker src/tracker-utils src/trackerd



Author: mr
Date: Wed Apr  1 12:30:46 2009
New Revision: 3160
URL: http://svn.gnome.org/viewvc/tracker?rev=3160&view=rev

Log:
	* src/tracker-utils/tracker-info.c: Added command line switches to
	faciliate the _get() and _get_multiple() APIs for Metadata. Now we
	can request multiple specific metadata types for multiple files
	using tracker-info.

	* data/dbus/tracker-metadata.xml:
	* src/libtracker/tracker.[ch]: 
	* src/trackerd/tracker-metadata.[ch]: Added
	tracker_metadata_get_multiple() so we can get multiple metadata
	types for multiple files. This is quite a bit faster than
	requesting multiple metadata types for one file at a time. Fixes
	NB#108543.


Modified:
   trunk/ChangeLog
   trunk/data/dbus/tracker-metadata.xml
   trunk/src/libtracker/tracker.c
   trunk/src/libtracker/tracker.h
   trunk/src/tracker-utils/tracker-info.c
   trunk/src/trackerd/tracker-metadata.c
   trunk/src/trackerd/tracker-metadata.h

Modified: trunk/data/dbus/tracker-metadata.xml
==============================================================================
--- trunk/data/dbus/tracker-metadata.xml	(original)
+++ trunk/data/dbus/tracker-metadata.xml	Wed Apr  1 12:30:46 2009
@@ -24,6 +24,17 @@
       <arg type="aas" name="metadata" direction="out" />
     </method>
 
+    <!-- Retrieves an array of metadata values for the specified array
+	 of metadata keys for services and id pair.
+      --> 
+    <method name="GetMultiple">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> 
+      <arg type="s" name="service_type" direction="in" />
+      <arg type="as" name="uris" direction="in" />
+      <arg type="as" name="keys" direction="in" />
+      <arg type="aas" name="metadata" direction="out" />
+    </method>
+    
     <!-- Sets specified metadata keys to the specified metadata values
 	 for a service and id pair.
       -->

Modified: trunk/src/libtracker/tracker.c
==============================================================================
--- trunk/src/libtracker/tracker.c	(original)
+++ trunk/src/libtracker/tracker.c	Wed Apr  1 12:30:46 2009
@@ -442,6 +442,19 @@
 }
 
 GPtrArray *
+tracker_metadata_get_multiple (TrackerClient *client, ServiceType service, const char **ids, const char **keys, GError **error)
+{
+	GPtrArray *array = NULL;
+	const char *service_str = tracker_service_types[service];
+
+        if (!org_freedesktop_Tracker_Metadata_get_multiple (client->proxy_metadata, service_str, ids, keys, &array, error)) {
+                return NULL;
+        }
+
+	return array;
+}
+
+GPtrArray *
 tracker_metadata_get_all (TrackerClient *client, ServiceType service, const gchar *uri, GError **error)
 {
         const gchar *service_str = tracker_service_types[service];
@@ -1097,6 +1110,23 @@
 
 
 void
+tracker_metadata_get_multiple_async (TrackerClient *client, ServiceType service, const char **ids, const char **keys, TrackerGPtrArrayReply callback, gpointer user_data)
+{
+	GPtrArrayCallBackStruct *callback_struct;
+	const char *service_str;
+
+	callback_struct = g_new (GPtrArrayCallBackStruct, 1);
+	callback_struct->callback = callback;
+	callback_struct->data = user_data;
+
+	service_str = tracker_service_types[service];
+
+	client->last_pending_call = org_freedesktop_Tracker_Metadata_get_multiple_async (client->proxy_metadata, service_str, ids, keys, tracker_GPtrArray_reply, callback_struct);
+
+}
+
+
+void
 tracker_metadata_set_async (TrackerClient *client, ServiceType service, const char *id, const char **keys, char **values, TrackerVoidReply callback, gpointer user_data)
 {
 

Modified: trunk/src/libtracker/tracker.h
==============================================================================
--- trunk/src/libtracker/tracker.h	(original)
+++ trunk/src/libtracker/tracker.h	Wed Apr  1 12:30:46 2009
@@ -119,6 +119,7 @@
 void		tracker_prompt_index_signals			(TrackerClient *client, GError **error);
 
 char **			tracker_metadata_get				(TrackerClient *client, ServiceType service, const char *id, const char **keys, GError **error);
+GPtrArray *			tracker_metadata_get_multiple			(TrackerClient *client, ServiceType service, const char **ids, const char **keys, GError **error);
 GPtrArray *             tracker_metadata_get_all                        (TrackerClient *client, ServiceType service, const gchar *uri, GError **error);
 void			tracker_metadata_set				(TrackerClient *client, ServiceType service, const char *id, const char **keys, char **values, GError **error);
 void			tracker_metadata_register_type			(TrackerClient *client, const char *name, MetadataTypes type, GError **error);
@@ -185,6 +186,7 @@
 void		tracker_prompt_index_signals_async			(TrackerClient *client, TrackerVoidReply callback, gpointer user_data);
 
 void		tracker_metadata_get_async				(TrackerClient *client, ServiceType service, const char *id, const char **keys, TrackerArrayReply callback, gpointer user_data);
+void		tracker_metadata_get_multiple_async				(TrackerClient *client, ServiceType service, const char **ids, const char **keys, TrackerGPtrArrayReply callback, gpointer user_data);
 void		tracker_metadata_set_async				(TrackerClient *client, ServiceType service, const char *id, const char **keys, char **values, TrackerVoidReply callback, gpointer user_data);
 void		tracker_metadata_register_type_async			(TrackerClient *client, const char *name, MetadataTypes type, TrackerVoidReply callback, gpointer user_data);
 void		tracker_metadata_get_registered_types_async		(TrackerClient *client, const char *classname, TrackerArrayReply callback, gpointer user_data);

Modified: trunk/src/tracker-utils/tracker-info.c
==============================================================================
--- trunk/src/tracker-utils/tracker-info.c	(original)
+++ trunk/src/tracker-utils/tracker-info.c	Wed Apr  1 12:30:46 2009
@@ -34,28 +34,55 @@
 #include <libtracker-common/tracker-common.h>
 
 static gchar	     *service;
-static gchar        **uri = NULL;
+static gchar        **metadata;
+static gchar        **uris;
 
 static GOptionEntry   entries[] = {
 	{ "service", 's', 0, G_OPTION_ARG_STRING, &service,
 	  N_("Service type of the file"),
-	  NULL
+	  N_("Files")
 	},
-	{ G_OPTION_REMAINING, 0,
-	  G_OPTION_FLAG_FILENAME, G_OPTION_ARG_STRING_ARRAY, &uri,
+	{ "metadata", 'm', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_STRING_ARRAY, &metadata,
+	  N_("Metadata to request (optional, multiple calls allowed)"),
+	  N_("File:Size")
+	},
+	{ G_OPTION_REMAINING, 0, G_OPTION_FLAG_FILENAME, G_OPTION_ARG_FILENAME_ARRAY, &uris,
 	  N_("FILE..."),
-	  N_("FILE")},
+	  N_("FILE")
+	},
 	{ NULL }
 };
 
 static void
-print_property_value (gpointer value)
+print_property_value (gpointer data,
+		      gpointer user_data)
 {
-	gchar **pair;
+	GStrv results;
+	GStrv uris_used;
 
-	pair = value;
+	results = data;
+	uris_used = user_data;
+	
+	if (uris_used) { 
+		static gint uri_id = 0;
+		GStrv p;
+		gint i;
 
-	g_print ("  '%s' = '%s'\n", pair[0], pair[1]);
+		g_print ("%s\n", uris_used[uri_id]);
+		
+		if (!results) {
+			g_print ("  %s\n", _("No metadata available"));
+			return;
+		}
+
+		for (p = results, i = 0; *p; p++, i++) {
+			g_print ("  '%s' = '%s'\n", metadata[i], *p);
+		}
+
+		uri_id++;
+	} else {
+		g_print ("  '%s' = '%s'\n", results[0], results[1]);
+	}
 }
 
 int
@@ -64,10 +91,13 @@
 	TrackerClient	*client;
 	ServiceType	 type;
 	GFile           *file;
-	gchar           *abs_path;
+	gchar           *summary;
+	gchar           *path;
 	GOptionContext	*context;
 	GError		*error = NULL;
-	GPtrArray	*results;
+	guint            count;
+	gint             i;
+	gint             exit_result = EXIT_SUCCESS;
 
 	setlocale (LC_ALL, "");
 
@@ -81,14 +111,34 @@
 
 	/* Translators: this message will appear after the usage string */
 	/* and before the list of options.				*/
+	summary = g_strconcat (_("For a list of services and metadata that "
+				 "can be used here, see tracker-services."),
+			       NULL);
+
+	g_option_context_set_summary (context, summary);
 	g_option_context_add_main_entries (context, entries, NULL);
 	g_option_context_parse (context, &argc, &argv, NULL);
+	g_free (summary);
+
+	if (!uris) {
+		gchar *help;
+
+		g_printerr (_("URI missing"));
+		g_printerr ("\n\n");
+
+		help = g_option_context_get_help (context, TRUE, NULL);
+		g_option_context_free (context);
+		g_printerr ("%s", help);
+		g_free (help);
+
+		return EXIT_FAILURE;
+	}
 
-	if (!uri) {
+	if (!metadata && g_strv_length (uris) > 1) {
 		gchar *help;
 
-		g_printerr ("%s\n\n",
-			    _("Uri missing"));
+		g_printerr (_("Requesting ALL information about multiple files is not supported"));
+		g_printerr ("\n\n");
 
 		help = g_option_context_get_help (context, TRUE, NULL);
 		g_option_context_free (context);
@@ -103,67 +153,154 @@
 	client = tracker_connect (FALSE);
 
 	if (!client) {
-		g_printerr ("%s\n",
-			    _("Could not establish a DBus connection to Tracker"));
+		g_printerr (_("Could not establish a DBus connection to Tracker"));
+		g_printerr ("\n");
+
 		return EXIT_FAILURE;
 	}
 
 	if (!service) {
-		g_print ("%s\n",
-			 _("Defaulting to 'files' service"));
+		g_print (_("Defaulting to 'files' service"));
+		g_print ("\n");
 
 		type = SERVICE_FILES;
 	} else {
 		type = tracker_service_name_to_type (service);
 
 		if (type == SERVICE_OTHER_FILES && g_ascii_strcasecmp (service, "Other")) {
-			g_printerr ("%s\n",
-				    _("Service type not recognized, using 'Other' ..."));
+			g_printerr (_("Service type not recognized, using 'Other' ..."));
+			g_printerr ("\n");
 		}
 	}
 
-	file = g_file_new_for_commandline_arg (uri[0]);
-	abs_path = g_file_get_path (file);
+	count = g_strv_length (uris);
 
-	results = tracker_metadata_get_all (client,
-					    type,
-					    abs_path,
-					    &error);
-	g_free (abs_path);
-	g_object_unref (file);
-	
-	if (error) {
-		g_printerr ("%s, %s\n",
-			    _("Unable to retrieve data for uri"),
-			    error->message);
+	if (count > 1 && metadata != NULL) {
+		gchar     **strv;
+		GPtrArray  *results;
+
+		strv = g_new (gchar*, count + 1);
+
+		/* Convert all files to real paths */
+		for (i = 0; i < count; i++) {
+			file = g_file_new_for_commandline_arg (uris[i]);
+			path = g_file_get_path (file);
+			g_object_unref (file);
 		
-		g_error_free (error);
-		tracker_disconnect (client);
+			strv[i] = path;
+		}
+
+		strv[i] = NULL;
 		
-		return EXIT_FAILURE;
-	}
+		results = tracker_metadata_get_multiple (client,
+							 type,
+							 (const gchar **) strv,
+							 (const gchar **) metadata,
+							 &error);
+
+		if (error) {
+			g_printerr (_("Unable to retrieve data for %d uris"),
+				    count);
+			g_printerr (", %s\n",
+				    error->message);
+			
+			g_error_free (error);
+			
+			exit_result = EXIT_FAILURE;
+		} else if (!results) {
+			g_print (_("No metadata available for all %d uris"),
+				 count);
+			g_print ("\n");
+		} else {
+			g_print (_("Results:"));
+			g_print ("\n");
+			
+			g_ptr_array_foreach (results, print_property_value, strv);
+			g_ptr_array_foreach (results, (GFunc) g_strfreev, NULL);
+			g_ptr_array_free (results, TRUE);
+		}
 
-	if (!results) {
-		g_print ("%s\n",
-			 _("No metadata available for that uri"));
+		g_strfreev (strv);
 	} else {
-		gint length;
+		GPtrArray *results;
 
-		length = results->len;
-
-		g_print (tracker_dngettext (NULL,
-					    _("Result: %d"), 
-					    _("Results: %d"),
-					    length),
-			 length);
-		g_print ("\n");
+		file = g_file_new_for_commandline_arg (uris[0]);
+		path = g_file_get_path (file);
 		
-		g_ptr_array_foreach (results, (GFunc) print_property_value, NULL);
-		g_ptr_array_foreach (results, (GFunc) g_strfreev, NULL);
-		g_ptr_array_free (results, TRUE);
+		if (G_LIKELY (!metadata)) {
+			results = tracker_metadata_get_all (client,
+							    type,
+							    path,
+							    &error);
+
+			if (error) {
+				g_printerr ("%s, %s\n",
+					    _("Unable to retrieve data for uri"),
+					    error->message);
+
+				g_error_free (error);
+				exit_result = EXIT_FAILURE;
+			} else if (!results) {
+				g_print (_("No metadata available for that uri"));
+				g_print ("\n");
+			} else {
+				gint length;
+				
+				length = results->len;
+				
+				g_print (tracker_dngettext (NULL,
+							    _("Result: %d for '%s'"), 
+							    _("Results: %d for '%s'"),
+							    length),
+					 length,
+					 path);
+				g_print ("\n");
+				
+				g_ptr_array_foreach (results, print_property_value, NULL);
+				g_ptr_array_foreach (results, (GFunc) g_strfreev, NULL);
+				g_ptr_array_free (results, TRUE);
+			}		
+		} else {
+			GStrv results;
+
+			results = tracker_metadata_get (client,
+							type,
+							path,
+							(const gchar **) metadata,
+							&error);
+			if (error) {
+				g_printerr ("%s, %s\n",
+					    _("Unable to retrieve data for uri"),
+					    error->message);
+
+				g_error_free (error);
+				exit_result = EXIT_FAILURE;
+			} else if (!results) {
+				g_print (_("No metadata available for that uri"));
+				g_print ("\n");
+			} else {
+				gint length;
+				gint i;
+				
+				length = g_strv_length (results);
+				
+				g_print (_("Results:")); 
+				g_print ("\n");
+
+				for (i = 0; i < length; i++) {
+					g_print ("  '%s' = '%s'\n",
+						 metadata[i], results[i]);
+				}
+				
+				g_strfreev (results);
+			}		
+		}
+
+		g_object_unref (file);
+		g_free (path);
 	}
 
 	tracker_disconnect (client);
 
-	return EXIT_SUCCESS;
+	return exit_result;
 }

Modified: trunk/src/trackerd/tracker-metadata.c
==============================================================================
--- trunk/src/trackerd/tracker-metadata.c	(original)
+++ trunk/src/trackerd/tracker-metadata.c	Wed Apr  1 12:30:46 2009
@@ -65,88 +65,62 @@
  * Functions
  */
 
-void
-tracker_metadata_get (TrackerMetadata	     *object,
-		      const gchar	     *service_type,
-		      const gchar	     *uri,
-		      gchar		    **keys,
-		      DBusGMethodInvocation  *context,
-		      GError		    **error)
+static gchar **
+tracker_metadata_get_internal (TrackerMetadata  *object,
+			       guint		 request_id,
+			       const gchar	*service_type,
+			       const gchar	*uri,
+			       gchar	       **keys,
+			       GError	       **error)
 {
 	TrackerDBInterface  *iface;
 	TrackerDBResultSet  *result_set;
-	guint		     request_id;
 	const gchar         *service_result;
 	guint32              service_id;
 	gchar		    *service_id_str;
 	guint		     i;
 	gchar		   **values;
-	GError		    *actual_error = NULL;
-
-	request_id = tracker_dbus_get_next_request_id ();
-
-	tracker_dbus_async_return_if_fail (service_type != NULL, context);
-	tracker_dbus_async_return_if_fail (uri != NULL, context);
-	tracker_dbus_async_return_if_fail (keys != NULL, context);
-	tracker_dbus_async_return_if_fail (g_strv_length (keys) > 0, context);
-
-	tracker_dbus_request_new (request_id,
-				  "DBus request to get metadata values, "
-				  "service type:'%s'",
-				  service_type);
 
 	if (!tracker_ontology_service_is_valid (service_type)) {
 		tracker_dbus_request_failed (request_id,
-					     &actual_error,
+					     error,
 					     "Service '%s' is invalid or has not been implemented yet",
 					     service_type);
-		dbus_g_method_return_error (context, actual_error);
-		g_error_free (actual_error);
-		return;
+		return NULL;
 	}
 
 	service_id = tracker_data_query_file_id (service_type, uri);
 
 	if (service_id <= 0) {
 		tracker_dbus_request_failed (request_id,
-					     &actual_error,
+					     error,
 					     "Service URI '%s' not found",
 					     uri);
-		dbus_g_method_return_error (context, actual_error);
-		g_error_free (actual_error);
-		return;
+		return NULL;
 	}
 
 	/* Checking keys */
 	for (i = 0; i < g_strv_length (keys); i++) {
-
 		if (tracker_ontology_get_field_by_name (keys[i]) == NULL) {
 			tracker_dbus_request_failed (request_id,
-						     &actual_error,
+						     error,
 						     "Metadata field '%s' not registered in the system",
 						     keys[i]);
-			dbus_g_method_return_error (context, actual_error);
-			g_error_free (actual_error);
-			return;
+			return NULL;
 		}
 	}
 
-	/* The parameter service_type can be "Files"
-	 * and the actual service type of the uri "Video"
-	 *
-	 * Note: Does this matter?
-	 */
+	/* Get database interface */
 	iface = tracker_db_manager_get_db_interface_by_service (service_type);
 
+	/* Check we have a file in the database before looking up the metadata. */
 	service_result = tracker_data_query_service_type_by_id (iface, service_id);
 	if (!service_result) {
 	       tracker_dbus_request_failed (request_id,
-					    &actual_error,
+					    error,
 					    "Service type can not be found for entity '%s'",
 					    uri);
-	       dbus_g_method_return_error (context, actual_error);
-	       g_error_free (actual_error);
-	       return;
+	       return NULL;
 	}
 
 	service_id_str = tracker_guint_to_string (service_id);
@@ -162,10 +136,49 @@
 
 	if (!values) {
 		tracker_dbus_request_failed (request_id,
-					     &actual_error,
+					     error,
 					     "No metadata information was available");
+		return NULL;
+	}
+
+	return values;
+}
+
+void
+tracker_metadata_get (TrackerMetadata	     *object,
+		      const gchar	     *service_type,
+		      const gchar	     *uri,
+		      gchar		    **keys,
+		      DBusGMethodInvocation  *context,
+		      GError		    **error)
+{
+	guint    request_id;
+	gchar  **values;
+	GError  *actual_error = NULL;
+
+	request_id = tracker_dbus_get_next_request_id ();
+
+	tracker_dbus_async_return_if_fail (service_type != NULL, context);
+	tracker_dbus_async_return_if_fail (uri != NULL, context);
+	tracker_dbus_async_return_if_fail (keys != NULL, context);
+	tracker_dbus_async_return_if_fail (g_strv_length (keys) > 0, context);
+
+	tracker_dbus_request_new (request_id,
+				  "DBus request to get metadata values, "
+				  "service type:'%s'",
+				  service_type);
+
+	values = tracker_metadata_get_internal (object, 
+						request_id,
+						service_type,
+						uri, 
+						keys,
+						&actual_error);
+
+	if (!values) {
 		dbus_g_method_return_error (context, actual_error);
 		g_error_free (actual_error);
+		return;
 	}
 
 	dbus_g_method_return (context, values);
@@ -175,11 +188,66 @@
 }
 
 void
-tracker_metadata_get_all (TrackerMetadata	     *object,
-			  const gchar	             *service_type,
-			  const gchar	             *uri,
-			  DBusGMethodInvocation      *context,
-			  GError		    **error)
+tracker_metadata_get_multiple (TrackerMetadata	      *object,
+			       const gchar	      *service_type,
+			       const gchar	     **uris,
+			       gchar		     **keys,
+			       DBusGMethodInvocation  *context,
+			       GError		     **error)
+{
+	guint	   request_id;
+	guint	   count;
+	gint	   i;
+	GPtrArray *values;
+	GError	  *actual_error = NULL;
+
+	request_id = tracker_dbus_get_next_request_id ();
+
+	tracker_dbus_async_return_if_fail (service_type != NULL, context);
+	tracker_dbus_async_return_if_fail (uris != NULL, context);
+	tracker_dbus_async_return_if_fail (keys != NULL, context);
+	tracker_dbus_async_return_if_fail (g_strv_length (keys) > 0, context);
+
+	tracker_dbus_request_new (request_id,
+				  "DBus request to get multiple metadata values, "
+				  "service type:'%s'",
+				  service_type);
+
+	count = g_strv_length ((GStrv) uris);
+	values = g_ptr_array_sized_new (count);
+
+	for (i = 0; i < count && !actual_error; i++) {
+		GStrv strv;
+
+		strv = tracker_metadata_get_internal (object, 
+						      request_id, 
+						      service_type, 
+						      uris[i], 
+						      keys,
+						      &actual_error);
+
+		/* Don't allow errors, but allow NULLs */
+		g_ptr_array_add (values, strv);
+	}
+
+	if (G_UNLIKELY (actual_error)) {
+		dbus_g_method_return_error (context, actual_error);
+		g_error_free (actual_error);
+	} else {
+		dbus_g_method_return (context, values);
+		tracker_dbus_request_success (request_id);
+	}
+
+	g_ptr_array_foreach (values, (GFunc) g_strfreev, NULL);
+	g_ptr_array_free (values, TRUE);
+}
+
+void
+tracker_metadata_get_all (TrackerMetadata	 *object,
+			  const gchar	         *service_type,
+			  const gchar	         *uri,
+			  DBusGMethodInvocation  *context,
+			  GError		**error)
 {
 	guint		     request_id;
 	gchar		    *service_id;

Modified: trunk/src/trackerd/tracker-metadata.h
==============================================================================
--- trunk/src/trackerd/tracker-metadata.h	(original)
+++ trunk/src/trackerd/tracker-metadata.h	Wed Apr  1 12:30:46 2009
@@ -50,94 +50,97 @@
 	GObjectClass parent;
 };
 
-GType		 tracker_metadata_get_type		 (void);
-TrackerMetadata *tracker_metadata_new			 (void);
-void		 tracker_metadata_get			 (TrackerMetadata	 *object,
-							  const gchar		 *service_type,
-							  const gchar		 *uri,
-							  gchar			**keys,
-							  DBusGMethodInvocation  *context,
-							  GError		**error);
-void             tracker_metadata_get_all                (TrackerMetadata	 *object,
-					                  const gchar	         *service_type,
-					                  const gchar	         *uri,
-							  DBusGMethodInvocation  *context,
-							  GError		**error);
-void		 tracker_metadata_set			 (TrackerMetadata	 *object,
-							  const gchar		 *service_type,
-							  const gchar		 *uri,
-							  gchar			**keys,
-							  gchar			**metadata,
-							  DBusGMethodInvocation  *context,
-							  GError		**error);
-void		 tracker_metadata_get_type_details	 (TrackerMetadata	 *object,
-							  const gchar		 *metadata,
-							  DBusGMethodInvocation  *context,
-							  GError		**error);
-void		 tracker_metadata_get_registered_types	 (TrackerMetadata	 *object,
-							  const gchar		 *service_type,
-							  DBusGMethodInvocation  *context,
-							  GError		**error);
-void		 tracker_metadata_get_registered_classes (TrackerMetadata	 *object,
-							  DBusGMethodInvocation  *context,
-							  GError		**error);
-void		 tracker_metadata_get_unique_values	 (TrackerMetadata	 *object,
-							  const gchar		 *service_type,
-							  gchar			**fields,
-							  const gchar		 *query_condition,
-							  gboolean		  order_desc,
-							  gint			  offset,
-							  gint			  max_hits,
-							  DBusGMethodInvocation  *context,
-							  GError		**error);
-void		 tracker_metadata_get_sum		 (TrackerMetadata	 *object,
-							  const gchar		 *service_type,
-							  const gchar		 *field,
-							  const gchar		 *query_condition,
-							  DBusGMethodInvocation  *context,
-							  GError		**error);
-void		 tracker_metadata_get_count		 (TrackerMetadata	 *object,
-							  const gchar		 *service_type,
-							  const gchar		 *field,
-							  const gchar		 *query_condition,
-							  DBusGMethodInvocation  *context,
-							  GError		**error);
-
-void	   tracker_metadata_get_unique_values_with_count (TrackerMetadata          *object,
-							  const gchar	           *service_type,
-							  gchar		          **fields,
-							  const gchar	           *query_condition,
-							  const gchar	           *count,
-							  gboolean	            order_desc,
-							  gint			    offset,
-							  gint			    max_hits,
-							  DBusGMethodInvocation    *context,
-							  GError		  **error);
-
-void tracker_metadata_get_unique_values_with_count_and_sum (TrackerMetadata        *object,
-							    const gchar	           *service_type,
-							    gchar		  **fields,
-							    const gchar	           *query_condition,
-							    const gchar	           *count,
-							    const gchar            *sum,
-							    gboolean		    order_desc,
-							    gint		    offset,
-							    gint		    max_hits,
-							    DBusGMethodInvocation  *context,
-							    GError		  **error);
-
-void tracker_metadata_get_unique_values_with_concat_count_and_sum (TrackerMetadata        *object,
-								   const gchar	           *service_type,
-								   gchar		  **fields,
-								   const gchar	           *query_condition,
-								   const gchar             *concat,
-								   const gchar	           *count,
-								   const gchar            *sum,
-								   gboolean		    order_desc,
-								   gint		    offset,
-								   gint		    max_hits,
-								   DBusGMethodInvocation  *context,
-								   GError		  **error);
+GType            tracker_metadata_get_type                                    (void);
+TrackerMetadata *tracker_metadata_new                                         (void);
+void             tracker_metadata_get                                         (TrackerMetadata        *object,
+									       const gchar            *service_type,
+									       const gchar            *uri,
+									       gchar                 **keys,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
+void             tracker_metadata_get_all                                     (TrackerMetadata        *object,
+									       const gchar            *service_type,
+									       const gchar            *uri,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
+void             tracker_metadata_get_multiple                                (TrackerMetadata        *object,
+									       const gchar            *service_type,
+									       const gchar           **uris,
+									       gchar                 **keys,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
+void             tracker_metadata_set                                         (TrackerMetadata        *object,
+									       const gchar            *service_type,
+									       const gchar            *uri,
+									       gchar                 **keys,
+									       gchar                 **metadata,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
+void             tracker_metadata_get_type_details                            (TrackerMetadata        *object,
+									       const gchar            *metadata,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
+void             tracker_metadata_get_registered_types                        (TrackerMetadata        *object,
+									       const gchar            *service_type,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
+void             tracker_metadata_get_registered_classes                      (TrackerMetadata        *object,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
+void             tracker_metadata_get_unique_values                           (TrackerMetadata        *object,
+									       const gchar            *service_type,
+									       gchar                 **fields,
+									       const gchar            *query_condition,
+									       gboolean                order_desc,
+									       gint                    offset,
+									       gint                    max_hits,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
+void             tracker_metadata_get_sum                                     (TrackerMetadata        *object,
+									       const gchar            *service_type,
+									       const gchar            *field,
+									       const gchar            *query_condition,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
+void             tracker_metadata_get_count                                   (TrackerMetadata        *object,
+									       const gchar            *service_type,
+									       const gchar            *field,
+									       const gchar            *query_condition,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
+void             tracker_metadata_get_unique_values_with_count                (TrackerMetadata        *object,
+									       const gchar            *service_type,
+									       gchar                 **fields,
+									       const gchar            *query_condition,
+									       const gchar            *count,
+									       gboolean                order_desc,
+									       gint                    offset,
+									       gint                    max_hits,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
+void             tracker_metadata_get_unique_values_with_count_and_sum        (TrackerMetadata        *object,
+									       const gchar            *service_type,
+									       gchar                 **fields,
+									       const gchar            *query_condition,
+									       const gchar            *count,
+									       const gchar            *sum,
+									       gboolean                order_desc,
+									       gint                    offset,
+									       gint                    max_hits,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
+void             tracker_metadata_get_unique_values_with_concat_count_and_sum (TrackerMetadata        *object,
+									       const gchar            *service_type,
+									       gchar                 **fields,
+									       const gchar            *query_condition,
+									       const gchar            *concat,
+									       const gchar            *count,
+									       const gchar            *sum,
+									       gboolean                order_desc,
+									       gint                    offset,
+									       gint                    max_hits,
+									       DBusGMethodInvocation  *context,
+									       GError                **error);
 
 G_END_DECLS
 



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