[tracker] tracker-miner-fs: Added reindexing by mime type for new extractors



commit a6da15e367bd100806d79ac3f51f88e5f5009000
Author: Martyn Russell <martyn lanedo com>
Date:   Thu Jan 21 12:47:10 2010 +0000

    tracker-miner-fs: Added reindexing by mime type for new extractors
    
    This is the initial work only. Nothing actually works yet. Currently
    there is a D-Bus API in tracker-miner-fs to call and tracker-control
    has a command line switch (-m) that can be used to call
    tracker-miner-fs and perform the operation which still needs
    implementing.

 data/dbus/Makefile.am                              |    1 +
 data/dbus/tracker-miner-files-reindex.xml          |   10 +
 src/tracker-control/Makefile.am                    |   16 ++-
 src/tracker-control/tracker-control.c              |   67 ++++++-
 src/tracker-miner-fs/Makefile.am                   |    5 +
 src/tracker-miner-fs/tracker-dbus.c                |  191 ++++++++++++++++++++
 src/tracker-miner-fs/tracker-dbus.h                |   36 ++++
 src/tracker-miner-fs/tracker-main.c                |   30 +++-
 src/tracker-miner-fs/tracker-miner-files-reindex.c |   82 +++++++++
 src/tracker-miner-fs/tracker-miner-files-reindex.h |   58 ++++++
 10 files changed, 486 insertions(+), 10 deletions(-)
---
diff --git a/data/dbus/Makefile.am b/data/dbus/Makefile.am
index 8a62c21..aeb4149 100644
--- a/data/dbus/Makefile.am
+++ b/data/dbus/Makefile.am
@@ -6,6 +6,7 @@ config_DATA =							\
 	tracker-backup.xml					\
 	tracker-extract.xml					\
 	tracker-miner.xml					\
+	tracker-miner-files-reindex.xml				\
 	tracker-resources.xml					\
 	tracker-resources-class.xml				\
 	tracker-statistics.xml					\
diff --git a/data/dbus/tracker-miner-files-reindex.xml b/data/dbus/tracker-miner-files-reindex.xml
new file mode 100644
index 0000000..260a321
--- /dev/null
+++ b/data/dbus/tracker-miner-files-reindex.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<node name="/">
+  <interface name="org.freedesktop.Tracker1.Miner.Files.Reindex">
+    <method name="MimeTypes">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
+      <arg type="as" name="mime_types" direction="in" />
+    </method>
+  </interface>
+</node>
diff --git a/src/tracker-control/Makefile.am b/src/tracker-control/Makefile.am
index 84f0ba3..44b1245 100644
--- a/src/tracker-control/Makefile.am
+++ b/src/tracker-control/Makefile.am
@@ -25,5 +25,19 @@ libs = 									\
 
 bin_PROGRAMS = tracker-control
 
-tracker_control_SOURCES = tracker-control.c
+tracker_control_SOURCES = 						\
+	$(dbus_sources)							\
+	tracker-control.c
+
 tracker_control_LDADD = $(libs)
+
+dbus_sources = 								\
+	tracker-miner-files-reindex-client.h
+
+%-client.h: $(top_srcdir)/data/dbus/%.xml
+	$(AM_V_GEN)$(DBUSBINDINGTOOL) --mode=glib-client --output=$@ --prefix=$(subst -,_,$*) $^
+
+BUILT_SOURCES = 							\
+	$(dbus_sources)
+
+CLEANFILES = $(BUILT_SOURCES)
diff --git a/src/tracker-control/tracker-control.c b/src/tracker-control/tracker-control.c
index adcebf4..89099d8 100644
--- a/src/tracker-control/tracker-control.c
+++ b/src/tracker-control/tracker-control.c
@@ -33,10 +33,14 @@
 #include <glib/gstdio.h>
 
 #include <libtracker-common/tracker-common.h>
+
 #include <libtracker-db/tracker-db.h>
+
 #include <libtracker-miner/tracker-miner-manager.h>
 #include <libtracker-miner/tracker-crawler.h>
 
+#include "tracker-miner-files-reindex-client.h"
+
 #define ABOUT	  \
 	"Tracker " PACKAGE_VERSION "\n"
 
@@ -47,14 +51,15 @@
 	"\n" \
 	"  http://www.gnu.org/licenses/gpl.txt\n";
 
-static gboolean     should_kill;
-static gboolean     should_terminate;
-static gboolean     hard_reset;
-static gboolean     soft_reset;
-static gboolean     remove_config;
-static gboolean     remove_thumbnails;
-static gboolean     start;
-static gboolean     print_version;
+static gboolean should_kill;
+static gboolean should_terminate;
+static gboolean hard_reset;
+static gboolean soft_reset;
+static gboolean remove_config;
+static gboolean remove_thumbnails;
+static gboolean start;
+static const gchar **reindex_mime_types;
+static gboolean print_version;
 
 static GOptionEntry entries[] = {
 	{ "kill", 'k', 0, G_OPTION_ARG_NONE, &should_kill,
@@ -79,6 +84,9 @@ static GOptionEntry entries[] = {
 	{ "start", 's', 0, G_OPTION_ARG_NONE, &start,
 	  N_("Starts miners (which indirectly starts tracker-store too)"),
 	  NULL },
+	{ "reindex-mime-type", 'm', 0, G_OPTION_ARG_STRING_ARRAY, &reindex_mime_types,
+	  N_("Reindex files which match the mime type supplied (for new extractors), use -m MIME1 -m MIME2"),
+	  N_("MIME") },
 	{ "version", 'V', 0, G_OPTION_ARG_NONE, &print_version,
 	  N_("Print version"),
 	  NULL },
@@ -475,5 +483,48 @@ main (int argc, char **argv)
 		g_slist_free (miners);
 	}
 
+	if (reindex_mime_types) {
+		DBusGConnection *connection;
+		DBusGProxy *proxy;
+	
+		GError *error = NULL;
+
+		connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+		
+		if (!connection) {
+			g_print ("Could not connect to the D-Bus session bus, %s",
+			         error ? error->message : "no error given.");
+			g_clear_error (&error);
+			return FALSE;
+		}
+		
+		/* The definitions below (DBUS_SERVICE_DBUS, etc) are
+		 * predefined for us to just use (dbus_g_proxy_...)
+		 */
+		proxy = dbus_g_proxy_new_for_name (connection,
+		                                   "org.freedesktop.Tracker1.Miner.Files.Reindex",
+		                                   "/org/freedesktop/Tracker1/Miner/Files/Reindex",
+		                                   "org.freedesktop.Tracker1.Miner.Files.Reindex");
+		
+		if (!proxy) {
+			g_print ("Could not create a proxy for the D-Bus service, %s",
+			         error ? error->message : "no error given.");
+			g_clear_error (&error);
+			return FALSE;
+		}
+		
+		if (!org_freedesktop_Tracker1_Miner_Files_Reindex_mime_types (proxy, 
+		                                                              reindex_mime_types, 
+		                                                              &error)) {
+			g_print ("Could not reindex mime types, %s",
+			         error ? error->message : "no error given.");
+			g_clear_error (&error);
+			g_object_unref (proxy);
+			return FALSE;
+		}
+
+		g_object_unref (proxy);
+	}
+
 	return EXIT_SUCCESS;
 }
diff --git a/src/tracker-miner-fs/Makefile.am b/src/tracker-miner-fs/Makefile.am
index 9cffda7..cad83e9 100644
--- a/src/tracker-miner-fs/Makefile.am
+++ b/src/tracker-miner-fs/Makefile.am
@@ -20,11 +20,15 @@ libexec_PROGRAMS = tracker-miner-fs
 tracker_miner_fs_SOURCES =						\
 	tracker-config.c						\
 	tracker-config.h						\
+	tracker-dbus.c							\
+	tracker-dbus.h							\
 	tracker-main.c							\
 	tracker-miner-applications.c					\
 	tracker-miner-applications.h					\
 	tracker-miner-files.c						\
 	tracker-miner-files.h						\
+	tracker-miner-files-reindex.c					\
+	tracker-miner-files-reindex.h					\
 	tracker-thumbnailer.c						\
 	tracker-thumbnailer.h
 
@@ -53,6 +57,7 @@ marshal_sources =							\
 
 dbus_sources = 								\
 	tracker-miner-glue.h						\
+	tracker-miner-files-reindex-glue.h				\
 	tracker-extract-client.h
 
 tracker-marshal.h: tracker-marshal.list
diff --git a/src/tracker-miner-fs/tracker-dbus.c b/src/tracker-miner-fs/tracker-dbus.c
new file mode 100644
index 0000000..99116d9
--- /dev/null
+++ b/src/tracker-miner-fs/tracker-dbus.c
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2010, Nokia
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301, USA.
+ */
+
+#include "config.h"
+
+#include <libtracker-common/tracker-dbus.h>
+
+#include "tracker-dbus.h"
+#include "tracker-miner-files-reindex.h"
+#include "tracker-miner-files-reindex-glue.h"
+
+static DBusGConnection *connection;
+static DBusGProxy      *gproxy;
+static GSList          *objects;
+
+static gboolean
+dbus_register_service (DBusGProxy  *proxy,
+                       const gchar *name)
+{
+	GError *error = NULL;
+	guint   result;
+
+	g_message ("Registering D-Bus service...\n"
+	           "  Name:'%s'",
+	           name);
+
+	if (!org_freedesktop_DBus_request_name (proxy,
+	                                        name,
+	                                        DBUS_NAME_FLAG_DO_NOT_QUEUE,
+	                                        &result, &error)) {
+		g_critical ("Could not aquire name:'%s', %s",
+		            name,
+		            error ? error->message : "no error given");
+		g_error_free (error);
+
+		return FALSE;
+	}
+
+	if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) {
+		g_critical ("D-Bus service name:'%s' is already taken, "
+		            "perhaps the daemon is already running?",
+		            name);
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+static void
+dbus_register_object (DBusGConnection       *lconnection,
+                      DBusGProxy            *proxy,
+                      GObject               *object,
+                      const DBusGObjectInfo *info,
+                      const gchar           *path)
+{
+	g_message ("Registering D-Bus object...");
+	g_message ("  Path:'%s'", path);
+	g_message ("  Type:'%s'", G_OBJECT_TYPE_NAME (object));
+
+	dbus_g_object_type_install_info (G_OBJECT_TYPE (object), info);
+	dbus_g_connection_register_g_object (lconnection, path, object);
+}
+
+static gboolean
+dbus_register_names (void)
+{
+	GError *error = NULL;
+
+	if (connection) {
+		g_critical ("The DBusGConnection is already set, have we already initialized?");
+		return FALSE;
+	}
+
+	if (gproxy) {
+		g_critical ("The DBusGProxy is already set, have we already initialized?");
+		return FALSE;
+	}
+
+	connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+
+	if (!connection) {
+		g_critical ("Could not connect to the D-Bus session bus, %s",
+		            error ? error->message : "no error given.");
+		g_clear_error (&error);
+		return FALSE;
+	}
+
+	/* The definitions below (DBUS_SERVICE_DBUS, etc) are
+	 * predefined for us to just use (dbus_g_proxy_...)
+	 */
+	gproxy = dbus_g_proxy_new_for_name (connection,
+	                                    DBUS_SERVICE_DBUS,
+	                                    DBUS_PATH_DBUS,
+	                                    DBUS_INTERFACE_DBUS);
+
+	/* Register the service name for org.freedesktop.Tracker1.Miner.Files.Reindex */
+	if (!dbus_register_service (gproxy, TRACKER_MINER_FILES_REINDEX_SERVICE)) {
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+gboolean
+tracker_dbus_init (void)
+{
+	/* Don't reinitialize */
+	if (objects) {
+		return TRUE;
+	}
+
+	/* Register names and get proxy/connection details */
+	if (!dbus_register_names ()) {
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+void
+tracker_dbus_shutdown (void)
+{
+	if (objects) {
+		g_slist_foreach (objects, (GFunc) g_object_unref, NULL);
+		g_slist_free (objects);
+		objects = NULL;
+	}
+
+	if (gproxy) {
+		g_object_unref (gproxy);
+		gproxy = NULL;
+	}
+
+	connection = NULL;
+}
+
+gboolean
+tracker_dbus_register_objects (gpointer object)
+{
+	g_return_val_if_fail (TRACKER_IS_MINER_FILES_REINDEX (object), FALSE);
+
+	if (!connection || !gproxy) {
+		g_critical ("D-Bus support must be initialized before registering objects!");
+		return FALSE;
+	}
+
+	/* Add org.freedesktop.Tracker1.Extract */
+	if (!object) {
+		g_critical ("Could not create TrackerExtract object to register");
+		return FALSE;
+	}
+
+	dbus_register_object (connection,
+	                      gproxy,
+	                      G_OBJECT (object),
+	                      &dbus_glib_tracker_miner_files_reindex_object_info,
+	                      TRACKER_MINER_FILES_REINDEX_PATH);
+	objects = g_slist_prepend (objects, object);
+
+	return TRUE;
+}
+
+GObject *
+tracker_dbus_get_object (GType type)
+{
+	GSList *l;
+
+	for (l = objects; l; l = l->next) {
+		if (G_OBJECT_TYPE (l->data) == type) {
+			return l->data;
+		}
+	}
+
+	return NULL;
+}
diff --git a/src/tracker-miner-fs/tracker-dbus.h b/src/tracker-miner-fs/tracker-dbus.h
new file mode 100644
index 0000000..364ef7b
--- /dev/null
+++ b/src/tracker-miner-fs/tracker-dbus.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2010, Nokia
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301, USA.
+ */
+
+#ifndef __TRACKER_MINER_FS_DBUS_H__
+#define __TRACKER_MINER_FS_DBUS_H__
+
+#include <glib.h>
+
+#include <dbus/dbus-glib-bindings.h>
+
+G_BEGIN_DECLS
+
+gboolean tracker_dbus_init             (void);
+void     tracker_dbus_shutdown         (void);
+gboolean tracker_dbus_register_objects (gpointer object);
+GObject *tracker_dbus_get_object       (GType    type);
+
+G_END_DECLS
+
+#endif /* __TRACKER_MINER_FS_DBUS_H__ */
diff --git a/src/tracker-miner-fs/tracker-main.c b/src/tracker-miner-fs/tracker-main.c
index 57d6508..37c4f11 100644
--- a/src/tracker-miner-fs/tracker-main.c
+++ b/src/tracker-miner-fs/tracker-main.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006, Mr Jamie McCracken (jamiemcc gnome org)
+/*
  * Copyright (C) 2008, Nokia
 
  * This library is free software; you can redistribute it and/or
@@ -44,9 +44,11 @@
 #include <libtracker-db/tracker-db-dbus.h>
 
 #include "tracker-config.h"
+#include "tracker-dbus.h"
 #include "tracker-marshal.h"
 #include "tracker-miner-applications.h"
 #include "tracker-miner-files.h"
+#include "tracker-miner-files-reindex.h"
 #include "tracker-thumbnailer.h"
 
 #define ABOUT	  \
@@ -229,6 +231,7 @@ main (gint argc, gchar *argv[])
 {
 	TrackerConfig *config;
 	TrackerMiner *miner_applications, *miner_files;
+	TrackerMinerFilesReindex *object;
 	GOptionContext *context;
 	GError *error = NULL;
 	gchar *log_filename = NULL;
@@ -311,6 +314,31 @@ main (gint argc, gchar *argv[])
 		           str ? str : "no error given");
 	}
 
+	if (!tracker_dbus_init ()) {
+		g_object_unref (config);
+		tracker_log_shutdown ();
+
+		return EXIT_FAILURE;
+	}
+
+	object = tracker_miner_files_reindex_new ();
+
+	if (!object) {
+		g_object_unref (config);
+		tracker_log_shutdown ();
+
+		return EXIT_FAILURE;
+	}
+
+	/* Make Tracker available for introspection */
+	if (!tracker_dbus_register_objects (object)) {
+		g_object_unref (object);
+		g_object_unref (config);
+		tracker_log_shutdown ();
+
+		return EXIT_FAILURE;
+	}
+
 	tracker_thumbnailer_init ();
 
 	/* Create miner for applications */
diff --git a/src/tracker-miner-fs/tracker-miner-files-reindex.c b/src/tracker-miner-fs/tracker-miner-files-reindex.c
new file mode 100644
index 0000000..0cf4fcc
--- /dev/null
+++ b/src/tracker-miner-fs/tracker-miner-files-reindex.c
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2010, Nokia
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301, USA.
+ */
+
+#include "config.h"
+
+#include <libtracker-common/tracker-dbus.h>
+
+#include "tracker-miner-files-reindex.h"
+#include "tracker-dbus.h"
+#include "tracker-marshal.h"
+
+#define TRACKER_MINER_FILES_REINDEX_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TRACKER_TYPE_MINER_FILES_REINDEX, TrackerMinerFilesReindexPrivate))
+
+typedef struct {
+	GHashTable *mime_types;
+} TrackerMinerFilesReindexPrivate;
+
+G_DEFINE_TYPE(TrackerMinerFilesReindex, tracker_miner_files_reindex, G_TYPE_OBJECT)
+
+static void
+tracker_miner_files_reindex_class_init (TrackerMinerFilesReindexClass *klass)
+{
+	GObjectClass *object_class;
+
+	object_class = G_OBJECT_CLASS (klass);
+
+	g_type_class_add_private (object_class, sizeof (TrackerMinerFilesReindexPrivate));
+}
+
+static void
+tracker_miner_files_reindex_init (TrackerMinerFilesReindex *object)
+{
+}
+
+TrackerMinerFilesReindex *
+tracker_miner_files_reindex_new (void)
+{
+	return g_object_new (TRACKER_TYPE_MINER_FILES_REINDEX, NULL);
+}
+
+void
+tracker_miner_files_reindex_mime_types (TrackerMinerFilesReindex  *object,
+                                        gchar                    **mime_types,
+                                        DBusGMethodInvocation     *context,
+                                        GError                   **error)
+{
+	guint request_id;
+	gchar **p;
+
+	request_id = tracker_dbus_get_next_request_id ();
+
+	tracker_dbus_async_return_if_fail (mime_types != NULL, context);
+	tracker_dbus_async_return_if_fail (g_strv_length (mime_types) > 0, context);
+
+	tracker_dbus_request_new (request_id, context, "%s()", __FUNCTION__);
+
+	tracker_dbus_request_comment (request_id, context,
+	                              "Attempting to reindex the following mime types:");
+
+	for (p = mime_types; *p; p++) {
+		tracker_dbus_request_comment (request_id, context, "  %s", *p);
+	}
+
+	tracker_dbus_request_success (request_id, context);
+	dbus_g_method_return (context);
+}
diff --git a/src/tracker-miner-fs/tracker-miner-files-reindex.h b/src/tracker-miner-fs/tracker-miner-files-reindex.h
new file mode 100644
index 0000000..c0281fa
--- /dev/null
+++ b/src/tracker-miner-fs/tracker-miner-files-reindex.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2010, Nokia
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301, USA.
+ */
+
+#ifndef __TRACKER_STORE_MINER_FILES_REINDEX_H__
+#define __TRACKER_STORE_MINER_FILES_REINDEX_H__
+
+#include <glib-object.h>
+
+#define TRACKER_MINER_FILES_REINDEX_SERVICE         "org.freedesktop.Tracker1.Miner.Files.Reindex"
+#define TRACKER_MINER_FILES_REINDEX_PATH            "/org/freedesktop/Tracker1/Miner/Files/Reindex"
+#define TRACKER_MINER_FILES_REINDEX_INTERFACE       "org.freedesktop.Tracker1.Miner.Files.Reindex"
+
+G_BEGIN_DECLS
+
+#define TRACKER_TYPE_MINER_FILES_REINDEX            (tracker_miner_files_reindex_get_type ())
+#define TRACKER_MINER_FILES_REINDEX(object)         (G_TYPE_CHECK_INSTANCE_CAST ((object), TRACKER_TYPE_MINER_FILES_REINDEX, TrackerMinerFilesReindex))
+#define TRACKER_MINER_FILES_REINDEX_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_TYPE_DBUS_MINER_FILES_REINDEX, TrackerMinerFilesReindexClass))
+#define TRACKER_IS_MINER_FILES_REINDEX(object)      (G_TYPE_CHECK_INSTANCE_TYPE ((object), TRACKER_TYPE_MINER_FILES_REINDEX))
+#define TRACKER_IS_MINER_FILES_REINDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_TYPE_MINER_FILES_REINDEX))
+#define TRACKER_MINER_FILES_REINDEX_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_TYPE_MINER_FILES_REINDEX, TrackerMinerFilesReindexClass))
+
+typedef struct TrackerMinerFilesReindex TrackerMinerFilesReindex;
+typedef struct TrackerMinerFilesReindexClass TrackerMinerFilesReindexClass;
+
+struct TrackerMinerFilesReindex {
+	GObject parent;
+};
+
+struct TrackerMinerFilesReindexClass {
+	GObjectClass parent;
+};
+
+GType                     tracker_miner_files_reindex_get_type   (void);
+TrackerMinerFilesReindex *tracker_miner_files_reindex_new        (void);
+void                      tracker_miner_files_reindex_mime_types (TrackerMinerFilesReindex  *object,
+                                                                  gchar                    **mime_types,
+                                                                  DBusGMethodInvocation     *context,
+                                                                  GError                   **error);
+
+G_END_DECLS
+
+#endif /* __TRACKER_STORE_MINER_FILES_REINDEX_H__ */



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