tracker r1538 - in branches/xesam-support: . data data/dbus po src/libstemmer src/libtracker src/libtracker-common src/libtracker-db src/tracker-indexer src/tracker-indexer/modules src/trackerd



Author: pvanhoof
Date: Fri May 30 09:25:54 2008
New Revision: 1538
URL: http://svn.gnome.org/viewvc/tracker?rev=1538&view=rev

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

	* Merged xesam-support with indexer-split
	svn merge -r 1524:1537 ../indexer-split



Added:
   branches/xesam-support/data/dbus/   (props changed)
      - copied from r1537, /branches/indexer-split/data/dbus/
   branches/xesam-support/src/trackerd/tracker-daemon.c
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-daemon.c
   branches/xesam-support/src/trackerd/tracker-daemon.h
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-daemon.h
   branches/xesam-support/src/trackerd/tracker-files.c
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-files.c
   branches/xesam-support/src/trackerd/tracker-files.h
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-files.h
   branches/xesam-support/src/trackerd/tracker-keywords.c
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-keywords.c
   branches/xesam-support/src/trackerd/tracker-keywords.h
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-keywords.h
   branches/xesam-support/src/trackerd/tracker-metadata.c
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-metadata.c
   branches/xesam-support/src/trackerd/tracker-metadata.h
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-metadata.h
   branches/xesam-support/src/trackerd/tracker-search.c
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-search.c
   branches/xesam-support/src/trackerd/tracker-search.h
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-search.h
   branches/xesam-support/src/trackerd/tracker-xesam-manager.c
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-xesam-manager.c
   branches/xesam-support/src/trackerd/tracker-xesam-manager.h
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-xesam-manager.h
   branches/xesam-support/src/trackerd/tracker-xesam.c
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-xesam.c
   branches/xesam-support/src/trackerd/tracker-xesam.h
      - copied unchanged from r1537, /branches/indexer-split/src/trackerd/tracker-xesam.h
Removed:
   branches/xesam-support/data/org.freedesktop.Tracker.Indexer.service.in
   branches/xesam-support/data/org.freedesktop.Tracker.service.in
   branches/xesam-support/data/tracker-dbus-daemon.xml
   branches/xesam-support/data/tracker-dbus-files.xml
   branches/xesam-support/data/tracker-dbus-keywords.xml
   branches/xesam-support/data/tracker-dbus-metadata.xml
   branches/xesam-support/data/tracker-dbus-search.xml
   branches/xesam-support/data/tracker-dbus-xesam.xml
   branches/xesam-support/data/tracker-indexer.xml
   branches/xesam-support/data/tracker.cfg
   branches/xesam-support/src/trackerd/tracker-dbus-daemon.c
   branches/xesam-support/src/trackerd/tracker-dbus-daemon.h
   branches/xesam-support/src/trackerd/tracker-dbus-files.c
   branches/xesam-support/src/trackerd/tracker-dbus-files.h
   branches/xesam-support/src/trackerd/tracker-dbus-keywords.c
   branches/xesam-support/src/trackerd/tracker-dbus-keywords.h
   branches/xesam-support/src/trackerd/tracker-dbus-metadata.c
   branches/xesam-support/src/trackerd/tracker-dbus-metadata.h
   branches/xesam-support/src/trackerd/tracker-dbus-search.c
   branches/xesam-support/src/trackerd/tracker-dbus-search.h
   branches/xesam-support/src/trackerd/tracker-dbus-xesam.c
   branches/xesam-support/src/trackerd/tracker-dbus-xesam.h
Modified:
   branches/xesam-support/ChangeLog
   branches/xesam-support/configure.ac
   branches/xesam-support/data/Makefile.am
   branches/xesam-support/po/POTFILES.in
   branches/xesam-support/src/libstemmer/   (props changed)
   branches/xesam-support/src/libtracker/   (props changed)
   branches/xesam-support/src/libtracker-common/Makefile.am
   branches/xesam-support/src/libtracker-common/tracker-hal.c
   branches/xesam-support/src/libtracker-common/tracker-hal.h
   branches/xesam-support/src/libtracker-db/   (props changed)
   branches/xesam-support/src/libtracker-db/Makefile.am
   branches/xesam-support/src/libtracker/Makefile.am
   branches/xesam-support/src/libtracker/tracker.c
   branches/xesam-support/src/tracker-indexer/   (props changed)
   branches/xesam-support/src/tracker-indexer/Makefile.am
   branches/xesam-support/src/tracker-indexer/modules/   (props changed)
   branches/xesam-support/src/tracker-indexer/modules/Makefile.am
   branches/xesam-support/src/tracker-indexer/tracker-dbus.c
   branches/xesam-support/src/tracker-indexer/tracker-dbus.h
   branches/xesam-support/src/tracker-indexer/tracker-main.c
   branches/xesam-support/src/trackerd/   (props changed)
   branches/xesam-support/src/trackerd/Makefile.am
   branches/xesam-support/src/trackerd/tracker-cache.c
   branches/xesam-support/src/trackerd/tracker-db-sqlite.c
   branches/xesam-support/src/trackerd/tracker-dbus.c
   branches/xesam-support/src/trackerd/tracker-dbus.h
   branches/xesam-support/src/trackerd/tracker-email-evolution.c
   branches/xesam-support/src/trackerd/tracker-email-modest.c
   branches/xesam-support/src/trackerd/tracker-email-utils.c
   branches/xesam-support/src/trackerd/tracker-indexer.c
   branches/xesam-support/src/trackerd/tracker-main.c
   branches/xesam-support/src/trackerd/tracker-process-files.c
   branches/xesam-support/src/trackerd/tracker-status.c
   branches/xesam-support/src/trackerd/tracker-utils.c
   branches/xesam-support/src/trackerd/tracker-xesam-live-search.c
   branches/xesam-support/src/trackerd/tracker-xesam-session.c
   branches/xesam-support/src/trackerd/tracker-xesam-session.h

Modified: branches/xesam-support/configure.ac
==============================================================================
--- branches/xesam-support/configure.ac	(original)
+++ branches/xesam-support/configure.ac	Fri May 30 09:25:54 2008
@@ -800,6 +800,7 @@
 	libtracker-gtk.pc
 	docs/Makefile
 	data/Makefile
+	data/dbus/Makefile
 	data/languages/Makefile
 	data/icons/Makefile
 	data/icons/16x16/Makefile

Modified: branches/xesam-support/data/Makefile.am
==============================================================================
--- branches/xesam-support/data/Makefile.am	(original)
+++ branches/xesam-support/data/Makefile.am	Fri May 30 09:25:54 2008
@@ -1,15 +1,8 @@
-SUBDIRS = languages icons services
+SUBDIRS = dbus languages icons services
 
 configdir = $(datadir)/tracker
 
 config_DATA =						\
-	tracker-dbus-daemon.xml				\
-	tracker-dbus-files.xml				\
-	tracker-dbus-keywords.xml			\
-	tracker-dbus-metadata.xml			\
-	tracker-dbus-search.xml				\
-	tracker-dbus-xesam.xml				\
-	tracker-indexer.xml				\
 	sqlite-tracker.sql 				\
 	sqlite-cache.sql 				\
 	sqlite-contents.sql				\
@@ -23,21 +16,4 @@
 	sqlite-metadata.sql 				\
 	sqlite-xesam.sql
 
-# Services
-org.freedesktop.Tracker_servicedir = $(DBUS_SERVICES_DIR)
-org.freedesktop.Tracker_service_DATA = org.freedesktop.Tracker.service
-
-org.freedesktop.Tracker.Indexer_servicedir = $(DBUS_SERVICES_DIR) 
-org.freedesktop.Tracker.Indexer_service_DATA = org.freedesktop.Tracker.Indexer.service
-
-%.service: %.service.in
-	@sed -e "s|\ bindir\@|$(bindir)|" $< > $@
-
-EXTRA_DIST = 						\
-	$(org.freedesktop.Tracker_service_DATA)		\
-	$(org.freedesktop.Tracker.Indexer_service_DATA)	\
-	$(config_DATA)
-
-CLEANFILES = 						\
-	$(org.freedesktop.Tracker_service_DATA)		\
-	$(org.freedesktop.Tracker.Indexer_service_DATA)
+EXTRA_DIST = $(config_DATA)

Modified: branches/xesam-support/po/POTFILES.in
==============================================================================
--- branches/xesam-support/po/POTFILES.in	(original)
+++ branches/xesam-support/po/POTFILES.in	Fri May 30 09:25:54 2008
@@ -15,8 +15,8 @@
 src/tracker-applet/tracker-applet.desktop.in.in
 src/tracker-applet/tracker-applet-prefs.glade
 src/trackerd/tracker-main.c
-src/tracker-indexer/main.c
 src/tracker-indexer/tracker-indexer.c
+src/tracker-indexer/tracker-main.c
 src/tracker-preferences/tracker-preferences.c
 src/tracker-preferences/tracker-preferences.desktop.in.in
 src/tracker-preferences/tracker-preferences.glade

Modified: branches/xesam-support/src/libtracker-common/Makefile.am
==============================================================================
--- branches/xesam-support/src/libtracker-common/Makefile.am	(original)
+++ branches/xesam-support/src/libtracker-common/Makefile.am	Fri May 30 09:25:54 2008
@@ -17,7 +17,7 @@
 
 if HAVE_HAL
 hal_sources = 					\
-	tracker-hal.c        			\
+	tracker-hal.c				\
 	tracker-hal.h
 endif
 
@@ -36,8 +36,6 @@
 	tracker-field-data.h			\
 	tracker-file-utils.c			\
 	tracker-file-utils.h			\
-	tracker-hal.c				\
-	tracker-hal.h				\
 	tracker-language.c			\
 	tracker-language.h			\
 	tracker-log.c	 			\

Modified: branches/xesam-support/src/libtracker-common/tracker-hal.c
==============================================================================
--- branches/xesam-support/src/libtracker-common/tracker-hal.c	(original)
+++ branches/xesam-support/src/libtracker-common/tracker-hal.c	Fri May 30 09:25:54 2008
@@ -19,7 +19,7 @@
  * Boston, MA  02110-1301, USA.
  */
 
-#include <config.h>
+#include "config.h"
 
 #ifdef HAVE_HAL
 
@@ -67,6 +67,7 @@
                                                  GParamSpec      *pspec);
 static gboolean hal_setup_devices               (TrackerHal      *hal);
 static gboolean hal_setup_batteries             (TrackerHal      *hal);
+
 static gboolean hal_device_add                  (TrackerHal      *hal,
                                                  LibHalVolume    *volume);
 static void     hal_device_added_cb             (LibHalContext   *context,

Modified: branches/xesam-support/src/libtracker-common/tracker-hal.h
==============================================================================
--- branches/xesam-support/src/libtracker-common/tracker-hal.h	(original)
+++ branches/xesam-support/src/libtracker-common/tracker-hal.h	Fri May 30 09:25:54 2008
@@ -19,10 +19,10 @@
  * Boston, MA  02110-1301, USA.
  */
 
-#ifdef HAVE_HAL
+#ifndef __LIBTRACKER_HAL_H__
+#define __LIBTRACKER_HAL_H__
 
-#ifndef __TRACKERD_HAL_H__
-#define __TRACKERD_HAL_H__
+#ifdef HAVE_HAL 
 
 #include <glib-object.h>
 
@@ -56,6 +56,6 @@
 
 G_END_DECLS
 
-#endif /* __TRACKERD_HAL_H__ */
-
 #endif /* HAVE_HAL */
+
+#endif /* __LIBTRACKER_HAL_H__ */

Modified: branches/xesam-support/src/libtracker-db/Makefile.am
==============================================================================
--- branches/xesam-support/src/libtracker-db/Makefile.am	(original)
+++ branches/xesam-support/src/libtracker-db/Makefile.am	Fri May 30 09:25:54 2008
@@ -26,6 +26,7 @@
 
 libtracker_db_la_LDFLAGS = -version-info 0:0:0
 libtracker_db_la_LIBADD = 						\
+	$(top_builddir)/src/libtracker-common/libtracker-common.la	\
 	$(SQLITE3_LIBS)							\
 	$(QDBM_LIBS)							\
 	$(DBUS_LIBS)							\

Modified: branches/xesam-support/src/libtracker/Makefile.am
==============================================================================
--- branches/xesam-support/src/libtracker/Makefile.am	(original)
+++ branches/xesam-support/src/libtracker/Makefile.am	Fri May 30 09:25:54 2008
@@ -54,13 +54,13 @@
 
 # Generate DBus files from XML data.
 dbus_sources = 					\
-	tracker-dbus-daemon-glue.h		\
-	tracker-dbus-files-glue.h		\
-	tracker-dbus-keywords-glue.h		\
-	tracker-dbus-metadata-glue.h		\
-	tracker-dbus-search-glue.h
+	tracker-daemon-glue.h		\
+	tracker-files-glue.h		\
+	tracker-keywords-glue.h		\
+	tracker-metadata-glue.h		\
+	tracker-search-glue.h
 
-%-glue.h: $(top_builddir)/data/%.xml
+%-glue.h: $(top_srcdir)/data/dbus/%.xml
 	$(DBUSBINDINGTOOL) --mode=glib-client --output=$@ --prefix=$(subst -,_,$*) $^
 
 BUILT_SOURCES = $(dbus_sources)

Modified: branches/xesam-support/src/libtracker/tracker.c
==============================================================================
--- branches/xesam-support/src/libtracker/tracker.c	(original)
+++ branches/xesam-support/src/libtracker/tracker.c	Fri May 30 09:25:54 2008
@@ -19,11 +19,11 @@
 
 #include <string.h>
 
-#include "tracker-dbus-daemon-glue.h"
-#include "tracker-dbus-files-glue.h"
-#include "tracker-dbus-keywords-glue.h"
-#include "tracker-dbus-metadata-glue.h"
-#include "tracker-dbus-search-glue.h"
+#include "tracker-daemon-glue.h"
+#include "tracker-files-glue.h"
+#include "tracker-keywords-glue.h"
+#include "tracker-metadata-glue.h"
+#include "tracker-search-glue.h"
 
 #include "tracker.h"
 

Modified: branches/xesam-support/src/tracker-indexer/Makefile.am
==============================================================================
--- branches/xesam-support/src/tracker-indexer/Makefile.am	(original)
+++ branches/xesam-support/src/tracker-indexer/Makefile.am	Fri May 30 09:25:54 2008
@@ -44,7 +44,7 @@
 dbus_sources = 								\
 	tracker-indexer-glue.h
 
-%-glue.h: $(top_builddir)/data/%.xml
+%-glue.h: $(top_srcdir)/data/dbus/%.xml
 	$(DBUSBINDINGTOOL) --mode=glib-server --output=$@ --prefix=$(subst -,_,$*) $^
 
 BUILT_SOURCES = $(dbus_sources)

Modified: branches/xesam-support/src/tracker-indexer/modules/Makefile.am
==============================================================================
--- branches/xesam-support/src/tracker-indexer/modules/Makefile.am	(original)
+++ branches/xesam-support/src/tracker-indexer/modules/Makefile.am	Fri May 30 09:25:54 2008
@@ -6,26 +6,34 @@
 	-DLIBDIR=\""$(libdir)"\"					\
 	-DLOCALEDIR=\""$(localedir)"\" 					\
 	-DINDEXER_MODULES_DIR=\"$(indexer_modulesdir)\"			\
-	$(GLIB2_CFLAGS)							\
+	-I$(top_srcdir)/src						\
 	$(GMODULE_CFLAGS)						\
-	-I$(top_srcdir)/src
+	$(GLIB2_CFLAGS)
 
 indexer_modules_LTLIBRARIES = 						\
 	libtracker-indexer-applications.la				\
 	libtracker-indexer-files.la					\
 	libtracker-indexer-gaim-conversations.la
 
+# Applications module
 libtracker_indexer_applications_la_SOURCES = applications.c
 libtracker_indexer_applications_la_LDFLAGS = $(module_flags)
-libtracker_indexer_applications_la_LIBADD = $(GLIB2_LIBS)
+libtracker_indexer_applications_la_LIBADD = 				\
+	$(GMODULE_LIBS)							\
+	$(GLIB2_LIBS)
 
+# Files module
 libtracker_indexer_files_la_SOURCES = files.c
 libtracker_indexer_files_la_LDFLAGS = $(module_flags)
 libtracker_indexer_files_la_LIBADD = 					\
-	$(GLIB2_LIBS)							\
 	$(top_builddir)/src/libtracker-db/libtracker-db.la		\
-	$(top_builddir)/src/xdgmime/libxdgmime.la
+	$(top_builddir)/src/xdgmime/libxdgmime.la			\
+	$(GMODULE_LIBS)							\
+	$(GLIB2_LIBS)
 
+# Instant messaging module
 libtracker_indexer_gaim_conversations_la_SOURCES = gaim-conversations.c
 libtracker_indexer_gaim_conversations_la_LDFLAGS = $(module_flags)
-libtracker_indexer_gaim_conversations_la_LIBADD = $(GLIB2_LIBS)
+libtracker_indexer_gaim_conversations_la_LIBADD = 			\
+	$(GMODULE_LIBS)							\
+	$(GLIB2_LIBS)

Modified: branches/xesam-support/src/tracker-indexer/tracker-dbus.c
==============================================================================
--- branches/xesam-support/src/tracker-indexer/tracker-dbus.c	(original)
+++ branches/xesam-support/src/tracker-indexer/tracker-dbus.c	Fri May 30 09:25:54 2008
@@ -29,7 +29,6 @@
 
 static DBusGConnection *connection;
 static DBusGProxy      *proxy;
-static GSList          *objects;
 
 static gboolean
 dbus_register_service (DBusGProxy  *proxy,
@@ -39,14 +38,14 @@
         guint   result;
 
         g_message ("Registering DBus service...\n"
-		   "  Name '%s'", 
+		   "  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",
+                g_critical ("Could not aquire name:'%s', %s",
 			    name,
 			    error ? error->message : "no error given");
                 g_error_free (error);
@@ -55,7 +54,7 @@
 		}
 
         if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) {
-                g_critical ("DBus service name '%s' is already taken, "
+                g_critical ("DBus service name:'%s' is already taken, "
 			    "perhaps the application is already running?",
 			    name);
                 return FALSE;
@@ -64,25 +63,21 @@
         return TRUE;
 }
 
-static gpointer
-dbus_register_object (DBusGConnection       *connection,
+static gboolean
+dbus_register_object (GObject               *object,
+		      DBusGConnection       *connection,
                       DBusGProxy            *proxy,
-                      GType                  object_type,
                       const DBusGObjectInfo *info,
                       const gchar           *path)
 {
-        GObject *object;
-
         g_message ("Registering DBus object...");
-        g_message ("  Path '%s'", path);
-        g_message ("  Type '%s'", g_type_name (object_type));
-
-        object = g_object_new (object_type, NULL);
+        g_message ("  Path:'%s'", path);
+        g_message ("  Object Type:'%s'", G_OBJECT_TYPE_NAME (object));
 
-        dbus_g_object_type_install_info (object_type, info);
+        dbus_g_object_type_install_info (G_OBJECT_TYPE (object), info);
         dbus_g_connection_register_g_object (connection, path, object);
 
-        return object;
+        return TRUE;
 }
 
 static gboolean 
@@ -129,7 +124,7 @@
 tracker_dbus_init (void)
 {
         /* Don't reinitialize */
-        if (objects) {
+        if (connection && proxy) {
                 return TRUE;
         }
 
@@ -144,12 +139,6 @@
 void
 tracker_dbus_shutdown (void)
 {
-        if (objects) {
-		g_slist_foreach (objects, (GFunc) g_object_unref, NULL);
-		g_slist_free (objects);
-		objects = NULL;
-	}
-
 	if (proxy) {
 		g_object_unref (proxy);
 		proxy = NULL;
@@ -159,42 +148,22 @@
 }
 
 gboolean
-tracker_dbus_register_objects (void)
+tracker_dbus_register_object (GObject *object)
 {
-        GObject *object;
-
 	if (!connection || !proxy) {
 		g_critical ("DBus support must be initialized before registering objects!");
 		return FALSE;
 	}
 
-        /* Add org.freedesktop.Tracker.Indexer */
-        if (!(object = dbus_register_object (connection, 
-                                             proxy,
-                                             TRACKER_TYPE_INDEXER,
-                                             &dbus_glib_tracker_indexer_object_info,
-                                             TRACKER_INDEXER_PATH))) {
-                return FALSE;
-        }
-
-        objects = g_slist_prepend (objects, object);
-
-         /* Reverse list since we added objects at the top each time */
-        objects = g_slist_reverse (objects);
-  
-        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;
-		}
+	if (TRACKER_IS_INDEXER (object)) {
+		return dbus_register_object (object,
+					     connection,
+					     proxy,
+					     &dbus_glib_tracker_indexer_object_info,
+					     TRACKER_INDEXER_PATH);
+	} else {
+		g_warning ("Object not handled by DBus");
 	}
 
-        return NULL;
+	return FALSE;
 }

Modified: branches/xesam-support/src/tracker-indexer/tracker-dbus.h
==============================================================================
--- branches/xesam-support/src/tracker-indexer/tracker-dbus.h	(original)
+++ branches/xesam-support/src/tracker-indexer/tracker-dbus.h	Fri May 30 09:25:54 2008
@@ -28,8 +28,7 @@
 
 gboolean tracker_dbus_init             (void);
 void     tracker_dbus_shutdown         (void);
-gboolean tracker_dbus_register_objects (void);
-GObject *tracker_dbus_get_object       (GType type);
+gboolean tracker_dbus_register_object  (GObject *object);
 
 G_END_DECLS
 

Modified: branches/xesam-support/src/tracker-indexer/tracker-main.c
==============================================================================
--- branches/xesam-support/src/tracker-indexer/tracker-main.c	(original)
+++ branches/xesam-support/src/tracker-indexer/tracker-main.c	Fri May 30 09:25:54 2008
@@ -149,8 +149,6 @@
 {
 	gchar *data_dir, *user_data_dir, *sys_tmp_dir, *filename;
 
-	g_message ("Initializing...\n");
-
 	tracker_ontology_init ();
 
 	data_dir = g_build_filename (g_get_user_cache_dir (), 
@@ -186,12 +184,12 @@
 main (gint argc, gchar *argv[])
 {
         TrackerConfig  *config;
-	GObject        *indexer;
+	TrackerIndexer *indexer;
 	GOptionContext *context;
 	GError	       *error = NULL;
 	gchar	       *summary = NULL;
 	gchar	       *example;
-        gchar          *log_filename;
+        gchar          *filename;
 
 	g_type_init ();
 	
@@ -248,14 +246,14 @@
 		tracker_config_set_verbosity (config, verbosity);
 	}
 
-	log_filename = g_build_filename (g_get_user_data_dir (), 
-					 "tracker", 
-					 "tracker-indexer.log", 
-					 NULL);
-
-        tracker_log_init (log_filename, tracker_config_get_verbosity (config));
-	g_message ("Starting log");
-        g_free (log_filename);
+	filename = g_build_filename (g_get_user_data_dir (), 
+                                     "tracker", 
+                                     "tracker-indexer.log", 
+                                     NULL);
+
+        tracker_log_init (filename, tracker_config_get_verbosity (config));
+	g_print ("Starting log:\n  File:'%s'\n", filename);
+        g_free (filename);
 
         /* Make sure we initialize DBus, this shows we are started
          * successfully when called upon from the daemon.
@@ -264,6 +262,8 @@
                 return EXIT_FAILURE;
         }
 
+	initialize_indexer ();
+
 #ifdef HAVE_IOPRIO
 	/* Set IO priority */
 	tracker_ioprio_init ();
@@ -282,20 +282,20 @@
                            str ? str : "no error given");
         }
 
+	indexer = tracker_indexer_new (reindex);
+
 	/* Make Tracker available for introspection */
-	if (!tracker_dbus_register_objects ()) {
+	if (!tracker_dbus_register_object (G_OBJECT (indexer))) {
 		return EXIT_FAILURE;
 	}
 
-	initialize_indexer ();
-
         /* Create the indexer and run the main loop */
-        indexer = tracker_dbus_get_object (TRACKER_TYPE_INDEXER);
 
-        g_object_set (G_OBJECT (indexer), "reindex", reindex, NULL);
 	g_signal_connect (indexer, "finished",
 			  G_CALLBACK (indexer_finished_cb), NULL);
 
+	g_message ("Starting...");
+
 	main_loop = g_main_loop_new (NULL, FALSE);
 	g_main_loop_run (main_loop);
 

Modified: branches/xesam-support/src/trackerd/Makefile.am
==============================================================================
--- branches/xesam-support/src/trackerd/Makefile.am	(original)
+++ branches/xesam-support/src/trackerd/Makefile.am	Fri May 30 09:25:54 2008
@@ -67,6 +67,8 @@
 	$(unix_sources)							\
 	tracker-cache.c							\
 	tracker-cache.h							\
+	tracker-daemon.c						\
+	tracker-daemon.h						\
 	tracker-db.c							\
 	tracker-db.h							\
 	tracker-db-email.c						\
@@ -75,22 +77,14 @@
 	tracker-db-sqlite.h						\
 	tracker-dbus.c							\
 	tracker-dbus.h							\
-	tracker-dbus-daemon.c						\
-	tracker-dbus-daemon.h						\
-	tracker-dbus-files.c						\
-	tracker-dbus-files.h						\
-	tracker-dbus-keywords.c						\
-	tracker-dbus-keywords.h						\
-	tracker-dbus-metadata.c						\
-	tracker-dbus-metadata.h						\
-	tracker-dbus-search.c						\
-	tracker-dbus-search.h						\
-	tracker-dbus-xesam.c						\
-	tracker-dbus-xesam.h						\
 	tracker-email.c							\
 	tracker-email.h							\
 	tracker-email-utils.c						\
 	tracker-email-utils.h						\
+	tracker-files.c							\
+	tracker-files.h							\
+	tracker-keywords.c						\
+	tracker-keywords.h						\
 	tracker-indexer.c						\
 	tracker-indexer.h						\
 	tracker-index-stage.c						\
@@ -98,21 +92,27 @@
 	tracker-main.c							\
 	tracker-main.h							\
 	tracker-marshal-main.c						\
+	tracker-metadata.c						\
+	tracker-metadata.h						\
 	tracker-process-files.c						\
 	tracker-process-files.h						\
 	tracker-query-tree.c						\
 	tracker-query-tree.h						\
 	tracker-rdf-query.c						\
 	tracker-rdf-query.h						\
+	tracker-search.c						\
+	tracker-search.h						\
+	tracker-status.c						\
+	tracker-status.h						\
 	tracker-utils.c							\
 	tracker-utils.h							\
 	tracker-watch.h							\
-	tracker-status.c						\
-	tracker-status.h						\
-	tracker-xesam.h							\
 	tracker-xesam.c							\
+	tracker-xesam.h							\
 	tracker-xesam-ontology.c					\
 	tracker-xesam-ontology.h					\
+	tracker-xesam-manager.c						\
+	tracker-xesam-manager.h						\
 	tracker-xesam-query.c						\
 	tracker-xesam-query.h						\
 	tracker-xesam-session.c						\
@@ -156,16 +156,20 @@
         tracker-marshal.c
 
 dbus_sources = 								\
-	tracker-dbus-daemon-glue.h					\
-	tracker-dbus-files-glue.h					\
-	tracker-dbus-keywords-glue.h					\
-	tracker-dbus-metadata-glue.h					\
-	tracker-dbus-search-glue.h					\
-	tracker-dbus-xesam-glue.h
+	tracker-daemon-glue.h						\
+	tracker-files-glue.h						\
+	tracker-keywords-glue.h						\
+	tracker-metadata-glue.h						\
+	tracker-search-glue.h						\
+	tracker-xesam-glue.h						\
+	tracker-indexer-client.h
 
-%-glue.h: $(top_builddir)/data/%.xml
+%-glue.h: $(top_srcdir)/data/dbus/%.xml
 	$(DBUSBINDINGTOOL) --mode=glib-server --output=$@ --prefix=$(subst -,_,$*) $^
 
+%-client.h: $(top_srcdir)/data/dbus/%.xml
+	$(DBUSBINDINGTOOL) --mode=glib-client --output=$@ --prefix=$(subst -,_,$*) $^
+
 BUILT_SOURCES = 							\
 	$(dbus_sources)							\
 	$(marshal_sources)

Modified: branches/xesam-support/src/trackerd/tracker-cache.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-cache.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-cache.c	Fri May 30 09:25:54 2008
@@ -30,7 +30,7 @@
 #include "tracker-utils.h"
 #include "tracker-db-sqlite.h"
 #include "tracker-dbus.h"
-#include "tracker-dbus-daemon.h"
+#include "tracker-daemon.h"
 #include "tracker-cache.h"
 #include "tracker-main.h"
 #include "tracker-status.h"
@@ -365,7 +365,7 @@
         GObject  *object;
 	gboolean stopped_trans = FALSE;
 	
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
 	
 	while (TRUE) {
 		gboolean sleep = FALSE;

Modified: branches/xesam-support/src/trackerd/tracker-db-sqlite.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-db-sqlite.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-db-sqlite.c	Fri May 30 09:25:54 2008
@@ -46,7 +46,7 @@
 #include "tracker-utils.h"
 #include "tracker-watch.h"
 #include "tracker-query-tree.h"
-#include "tracker-xesam.h"
+#include "tracker-xesam-manager.h"
 #include "tracker-xesam-ontology.h"
 
 #define MAX_INDEX_TEXT_LENGTH 1048576
@@ -3507,7 +3507,7 @@
 	if (result_set)
 		g_object_unref (result_set);
 
-	tracker_xesam_wakeup (id);
+	tracker_xesam_manager_wakeup (id);
 
 	g_free (eid);
 

Modified: branches/xesam-support/src/trackerd/tracker-dbus.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-dbus.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-dbus.c	Fri May 30 09:25:54 2008
@@ -27,23 +27,25 @@
 
 #include "tracker-db-sqlite.h"
 #include "tracker-dbus.h"
-#include "tracker-dbus-daemon.h"
-#include "tracker-dbus-daemon-glue.h"
-#include "tracker-dbus-files.h"
-#include "tracker-dbus-files-glue.h"
-#include "tracker-dbus-keywords.h"
-#include "tracker-dbus-keywords-glue.h"
-#include "tracker-dbus-metadata.h"
-#include "tracker-dbus-metadata-glue.h"
-#include "tracker-dbus-search.h"
-#include "tracker-dbus-search-glue.h"
-#include "tracker-dbus-xesam.h"
-#include "tracker-dbus-xesam-glue.h"
+#include "tracker-daemon.h"
+#include "tracker-daemon-glue.h"
+#include "tracker-files.h"
+#include "tracker-files-glue.h"
+#include "tracker-keywords.h"
+#include "tracker-keywords-glue.h"
+#include "tracker-metadata.h"
+#include "tracker-metadata-glue.h"
+#include "tracker-search.h"
+#include "tracker-search-glue.h"
+#include "tracker-xesam.h"
+#include "tracker-xesam-glue.h"
+#include "tracker-indexer-client.h"
 #include "tracker-utils.h"
 #include "tracker-watch.h"
 
 static DBusGConnection *connection;
 static DBusGProxy      *proxy;
+static DBusGProxy      *proxy_for_indexer;
 static GSList          *objects;
 
 static gboolean
@@ -54,14 +56,14 @@
         guint   result;
 
         g_message ("Registering DBus service...\n"
-		   "  Name '%s'", 
+		   "  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",
+                g_critical ("Could not aquire name:'%s', %s",
 			    name,
 			    error ? error->message : "no error given");
                 g_error_free (error);
@@ -70,7 +72,7 @@
 	}
 
         if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) {
-                g_critical ("DBus service name '%s' is already taken, "
+                g_critical ("DBus service name:'%s' is already taken, "
 			    "perhaps the daemon is already running?",
 			    name);
                 return FALSE;
@@ -89,8 +91,8 @@
         GObject *object;
 
         g_message ("Registering DBus object...");
-        g_message ("  Path '%s'", path);
-        g_message ("  Type '%s'", g_type_name (object_type));
+        g_message ("  Path:'%s'", path);
+        g_message ("  Type:'%s'", g_type_name (object_type));
 
         object = g_object_new (object_type, NULL);
 
@@ -140,13 +142,13 @@
                                            DBUS_INTERFACE_DBUS);
 
         /* Register the service name for org.freedesktop.Tracker */
-        if (!dbus_register_service (proxy, TRACKER_DBUS_DAEMON_SERVICE)) {
+        if (!dbus_register_service (proxy, TRACKER_DAEMON_SERVICE)) {
                 return FALSE;
         }
 
 	/* Register the service name for org.freedesktop.xesam if XESAM is enabled */
         if (tracker_config_get_enable_xesam (config)) {
-		if (!dbus_register_service (proxy, TRACKER_DBUS_XESAM_SERVICE)) {
+		if (!dbus_register_service (proxy, TRACKER_XESAM_SERVICE)) {
 			return FALSE;
 		}
         }
@@ -186,6 +188,11 @@
 		proxy = NULL;
 	}
 
+	if (proxy_for_indexer) {
+		g_object_unref (proxy_for_indexer);
+		proxy_for_indexer = NULL;
+	}
+
 	connection = NULL;
 }
 
@@ -205,9 +212,9 @@
         /* Add org.freedesktop.Tracker */
         if (!(object = dbus_register_object (connection, 
                                              proxy,
-                                             TRACKER_TYPE_DBUS_DAEMON,
-                                             &dbus_glib_tracker_dbus_daemon_object_info,
-                                             TRACKER_DBUS_DAEMON_PATH))) {
+                                             TRACKER_TYPE_DAEMON,
+                                             &dbus_glib_tracker_daemon_object_info,
+                                             TRACKER_DAEMON_PATH))) {
                 return FALSE;
         }
 
@@ -221,9 +228,9 @@
         /* Add org.freedesktop.Tracker.Files */
         if (!(object = dbus_register_object (connection, 
                                              proxy,
-                                             TRACKER_TYPE_DBUS_FILES,
-                                             &dbus_glib_tracker_dbus_files_object_info,
-                                             TRACKER_DBUS_FILES_PATH))) {
+                                             TRACKER_TYPE_FILES,
+                                             &dbus_glib_tracker_files_object_info,
+                                             TRACKER_FILES_PATH))) {
                 return FALSE;
         }
 
@@ -233,9 +240,9 @@
         /* Add org.freedesktop.Tracker.Keywords */
         if (!(object = dbus_register_object (connection, 
                                              proxy,
-                                             TRACKER_TYPE_DBUS_KEYWORDS,
-                                             &dbus_glib_tracker_dbus_keywords_object_info,
-                                             TRACKER_DBUS_KEYWORDS_PATH))) {
+                                             TRACKER_TYPE_KEYWORDS,
+                                             &dbus_glib_tracker_keywords_object_info,
+                                             TRACKER_KEYWORDS_PATH))) {
                 return FALSE;
         }
 
@@ -245,9 +252,9 @@
         /* Add org.freedesktop.Tracker.Metadata */
         if (!(object = dbus_register_object (connection, 
                                              proxy,
-                                             TRACKER_TYPE_DBUS_METADATA,
-                                             &dbus_glib_tracker_dbus_metadata_object_info,
-                                             TRACKER_DBUS_METADATA_PATH))) {
+                                             TRACKER_TYPE_METADATA,
+                                             &dbus_glib_tracker_metadata_object_info,
+                                             TRACKER_METADATA_PATH))) {
                 return FALSE;
         }
 
@@ -257,9 +264,9 @@
         /* Add org.freedesktop.Tracker.Search */
         if (!(object = dbus_register_object (connection, 
                                              proxy,
-                                             TRACKER_TYPE_DBUS_SEARCH,
-                                             &dbus_glib_tracker_dbus_search_object_info,
-                                             TRACKER_DBUS_SEARCH_PATH))) {
+                                             TRACKER_TYPE_SEARCH,
+                                             &dbus_glib_tracker_search_object_info,
+                                             TRACKER_SEARCH_PATH))) {
                 return FALSE;
         }
 
@@ -275,9 +282,9 @@
 		/* Add org.freedesktop.xesam.Search */
 		if (!(object = dbus_register_object (connection, 
 						     proxy,
-						     TRACKER_TYPE_DBUS_XESAM,
-						     &dbus_glib_tracker_dbus_xesam_object_info,
-						     TRACKER_DBUS_XESAM_PATH))) {
+						     TRACKER_TYPE_XESAM,
+						     &dbus_glib_tracker_xesam_object_info,
+						     TRACKER_XESAM_PATH))) {
 			return FALSE;
 		}
 		
@@ -289,7 +296,7 @@
 					 G_TYPE_STRING, G_TYPE_INVALID);
 		
 		dbus_g_proxy_connect_signal (proxy, "NameOwnerChanged", 
-					     G_CALLBACK (tracker_dbus_xesam_name_owner_changed), 
+					     G_CALLBACK (tracker_xesam_name_owner_changed), 
 					     g_object_ref (object),
 					     dbus_name_owner_changed);
 		
@@ -315,3 +322,36 @@
 
         return NULL;
 }
+
+void
+tracker_dbus_start_indexer (void)
+{
+	GError *error = NULL;
+
+	if (!connection) {
+		g_critical ("DBus support must be initialized before starting the indexer!");
+		return;
+	}
+
+	if (!proxy_for_indexer) {
+		/* Get proxy for Service / Path / Interface of the indexer */
+		proxy_for_indexer = dbus_g_proxy_new_for_name (connection,
+							       "org.freedesktop.Tracker.Indexer", 
+ 							       "/org/freedesktop/Tracker/Indexer",
+							       "org.freedesktop.Tracker.Indexer");
+		
+		if (!proxy_for_indexer) {
+			g_critical ("Couldn't create a DBusGProxy to the indexer service");
+			return;
+		}
+	}
+
+	org_freedesktop_Tracker_Indexer_set_running (proxy_for_indexer, 
+						     TRUE, 
+						     &error);
+
+	if (error) {
+		g_warning ("Couldn't start indexer, %s",
+			   error->message);
+	}
+}

Modified: branches/xesam-support/src/trackerd/tracker-dbus.h
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-dbus.h	(original)
+++ branches/xesam-support/src/trackerd/tracker-dbus.h	Fri May 30 09:25:54 2008
@@ -36,6 +36,7 @@
 void     tracker_dbus_shutdown         (void);
 gboolean tracker_dbus_register_objects (Tracker       *tracker);
 GObject *tracker_dbus_get_object       (GType          type);
+void     tracker_dbus_start_indexer    (void);
 
 G_END_DECLS
 

Modified: branches/xesam-support/src/trackerd/tracker-email-evolution.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-email-evolution.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-email-evolution.c	Fri May 30 09:25:54 2008
@@ -43,7 +43,7 @@
 #include "tracker-db-email.h"
 #include "tracker-cache.h"
 #include "tracker-dbus.h"
-#include "tracker-dbus-daemon.h"
+#include "tracker-daemon.h"
 #include "tracker-watch.h"
 #include "tracker-status.h"
 #include "tracker-utils.h"
@@ -1288,11 +1288,11 @@
                 return;
         }
 
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
 
 	if (open_summary_file (summary_file_path, &summary)) {
 		SummaryFileHeader *header;
-		gint32            mail_count, junk_count, delete_count;
+		gint32             mail_count, junk_count, delete_count;
 		gchar             *dir;
 
 		header = NULL;

Modified: branches/xesam-support/src/trackerd/tracker-email-modest.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-email-modest.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-email-modest.c	Fri May 30 09:25:54 2008
@@ -40,7 +40,7 @@
 #include "tracker-email-utils.h"
 #include "tracker-db-email.h"
 #include "tracker-dbus.h"
-#include "tracker-dbus-daemon.h"
+#include "tracker-daemon.h"
 #include "tracker-cache.h"
 #include "tracker-status.h"
 #include "tracker-watch.h"
@@ -713,7 +713,7 @@
 	if (!tracker->is_running)
 		return; 
 
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
 
 	if (open_summary_file (summary_file_path, &summary)) {
 		SummaryFileHeader *header;

Modified: branches/xesam-support/src/trackerd/tracker-email-utils.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-email-utils.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-email-utils.c	Fri May 30 09:25:54 2008
@@ -38,7 +38,7 @@
 #include "tracker-cache.h"
 #include "tracker-db-email.h"
 #include "tracker-dbus.h"
-#include "tracker-dbus-daemon.h"
+#include "tracker-daemon.h"
 #include "tracker-email-utils.h"
 #include "tracker-watch.h"
 
@@ -132,7 +132,7 @@
 	tracker->mbox_count++;
 
         /* Signal progress */
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
         g_signal_emit_by_name (object,
                                "index-progress", 
                                "Emails",                
@@ -196,7 +196,7 @@
 			}
 			
                         /* Signal progress */
-                        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+                        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
                         g_signal_emit_by_name (object, 
                                                "index-progress", 
                                                "Emails",                
@@ -213,7 +213,7 @@
 	tracker->mbox_processed++;
         
         /* Signal progress */
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
         g_signal_emit_by_name (object,
                                "index-progress", 
                                "Emails",                

Modified: branches/xesam-support/src/trackerd/tracker-indexer.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-indexer.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-indexer.c	Fri May 30 09:25:54 2008
@@ -17,23 +17,7 @@
  * Boston, MA  02110-1301, USA.
  */
 
-/* Needed before including math.h for lrintf() */
-#define _ISOC9X_SOURCE   1
-#define _ISOC99_SOURCE   1
-
-#define __USE_ISOC9X     1
-#define __USE_ISOC99     1
-
-/* Size of free block pool of inverted index */
-#define INDEXFBP            32     
-#define SCORE_MULTIPLIER    100000
-#define MAX_HIT_BUFFER      480000
-#define MAX_HITS_FOR_WORD   30000
-#define MAX_INDEX_FILE_SIZE 2000000000
-
-#define CREATE_INDEX                                                      \
-        "CREATE TABLE HitIndex (Word Text not null "                      \
-        "unique, HitCount Integer, HitArraySize Integer, HitArray Blob);"
+#include "config.h"
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -41,6 +25,14 @@
 #include <sys/stat.h>
 #include <unistd.h>
 #include <string.h>
+
+/* Needed before including math.h for lrintf() */
+#define _ISOC9X_SOURCE   1
+#define _ISOC99_SOURCE   1
+
+#define __USE_ISOC9X     1
+#define __USE_ISOC99     1
+
 #include <math.h>
 
 #include <depot.h>
@@ -60,12 +52,23 @@
 #include "tracker-indexer.h"
 #include "tracker-cache.h"
 #include "tracker-dbus.h"
-#include "tracker-dbus-daemon.h"
+#include "tracker-daemon.h"
 #include "tracker-process-files.h"
 #include "tracker-query-tree.h"
 #include "tracker-main.h"
 #include "tracker-status.h"
 
+/* Size of free block pool of inverted index */
+#define INDEXFBP            32     
+#define SCORE_MULTIPLIER    100000
+#define MAX_HIT_BUFFER      480000
+#define MAX_HITS_FOR_WORD   30000
+#define MAX_INDEX_FILE_SIZE 2000000000
+
+#define CREATE_INDEX                                                      \
+        "CREATE TABLE HitIndex (Word Text not null "                      \
+        "unique, HitCount Integer, HitArraySize Integer, HitArray Blob);"
+
 extern Tracker *tracker;
 
 struct Indexer_ {
@@ -408,7 +411,7 @@
 	if (tracker_hal_get_battery_exists (tracker->hal)) {
                 interval /= 2;
         }
-#endif
+#endif /* HAVE_HAL */
 
 	dpiterinit (src->word_index);
 	
@@ -417,7 +420,7 @@
 	tracker->merge_processed = 0;
 	
         /* Signal progress */
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
         g_signal_emit_by_name (object, 
                                "index-progress", 
                                "Merging",
@@ -477,7 +480,7 @@
 	tracker->merge_processed = 1;
 
         /* Signal progress */
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
         g_signal_emit_by_name (object, 
 			       "index-progress", 
                                "Merging",                     
@@ -611,7 +614,7 @@
         }
 
         data_dir = tracker_get_data_dir ();
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
 
 	if (type == INDEX_TYPE_FILES) {
 		g_return_if_fail (tracker->file_index);
@@ -772,7 +775,7 @@
                                                 if (tracker_hal_get_battery_exists (tracker->hal)) {
                                                         interval /=  2;
                                                 }
-#endif
+#endif /* HAVE_HAL */
 					}
 				}
 			
@@ -832,7 +835,7 @@
 				tracker->merge_processed++;
 
                                 /* Signal progress */
-                                object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+                                object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
                                 g_signal_emit_by_name (object, 
                                                        "index-progress", 
                                                        "Merging",

Modified: branches/xesam-support/src/trackerd/tracker-main.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-main.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-main.c	Fri May 30 09:25:54 2008
@@ -52,7 +52,7 @@
 #include "tracker-process-files.h"
 #include "tracker-status.h"
 #include "tracker-watch.h"
-#include "tracker-xesam.h"
+#include "tracker-xesam-manager.h"
 
 #ifdef OS_WIN32
 #include <windows.h>
@@ -705,11 +705,13 @@
 	g_mutex_unlock (tracker->metadata_check_mutex);
 	g_mutex_unlock (tracker->files_check_mutex);
 
+#if 0
 	/* We wait now for the thread to exit and join, then clean up
 	 * the mutexts and conds. 
 	 */
 	g_message ("Waiting for thread to finish");
 	g_thread_join (thread_to_join);
+#endif
 
 	/* Clean up */
 #if 0
@@ -929,7 +931,7 @@
 
 	/* Initialise other subsystems */
 	tracker_log_init (log_filename, tracker_config_get_verbosity (tracker->config));
-	g_message ("Starting log");
+	g_print ("Starting log:\n  File:'%s'\n", log_filename);
 	
 	if (!tracker_dbus_init (tracker->config)) {
 		return EXIT_FAILURE;
@@ -940,13 +942,13 @@
 	tracker_nfs_lock_init (tracker_config_get_nfs_locking (tracker->config));
 	tracker_db_init ();
 	tracker_db_manager_init (data_dir, user_data_dir, sys_tmp_dir);
-	tracker_xesam_init ();
+	tracker_xesam_manager_init ();
 	tracker_cache_init ();
 	tracker_ontology_init ();
 	tracker_email_init (tracker->config);
 
-#ifdef HAVE_HAL 
- 	tracker->hal = tracker_hal_new ();       
+#ifdef HAVE_HAL
+ 	tracker->hal = tracker_hal_new ();
 #endif /* HAVE_HAL */
 
 	initialise_directories (&need_index);
@@ -979,6 +981,28 @@
 			g_critical ("File monitoring failed to start");
 		} 
 		else if (tracker_config_get_enable_indexing (tracker->config)) {
+			gint initial_sleep;
+
+			initial_sleep = tracker_config_get_initial_sleep (tracker->config);
+			g_message ("Indexing enabled, sleeping for %d secs before starting...", 
+				   initial_sleep);
+			
+			while (initial_sleep > 0) {
+				g_usleep (G_USEC_PER_SEC);
+				
+				initial_sleep --;
+				
+				if (!tracker->is_running || tracker->shutdown) {
+					break;
+				}
+			}
+			
+			if (tracker->is_running && !tracker->shutdown) {
+				g_message ("Indexing enabled, starting...");
+				tracker_dbus_start_indexer ();
+			}
+
+#if 0
 			thread = g_thread_create_full ((GThreadFunc) tracker_process_files, 
 						       tracker,
 						       (gulong) tracker_config_get_thread_stack_size (tracker->config),
@@ -986,10 +1010,13 @@
 						       FALSE, 
 						       G_THREAD_PRIORITY_NORMAL, 
 						       NULL);
+#endif
 		} else {
-			g_message ("Indexing disabled, waiting for DBus requests...");
+			g_message ("Indexing disabled, not starting");
 		}
 	}
+
+	g_message ("Waiting for DBus requests...");
 	
 	if (tracker->is_running) {
 		main_loop = g_main_loop_new (NULL, FALSE);
@@ -1022,7 +1049,7 @@
 	tracker_dbus_shutdown ();
 	tracker_ontology_shutdown ();
 	tracker_cache_shutdown ();
-	tracker_xesam_shutdown ();
+	tracker_xesam_manager_shutdown ();
 	tracker_db_shutdown ();
 	tracker_db_manager_shutdown ();
 	tracker_nfs_lock_shutdown ();

Modified: branches/xesam-support/src/trackerd/tracker-process-files.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-process-files.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-process-files.c	Fri May 30 09:25:54 2008
@@ -43,7 +43,7 @@
 
 #include "tracker-db.h"
 #include "tracker-dbus.h"
-#include "tracker-dbus-daemon.h"
+#include "tracker-daemon.h"
 #include "tracker-cache.h"
 #include "tracker-email.h"
 #include "tracker-indexer.h"
@@ -811,7 +811,7 @@
 
         g_message ("Starting file indexing...");
         
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
 
         tracker_db_end_index_transaction (db_con);
 
@@ -1078,7 +1078,7 @@
         tracker_index_stage_set (TRACKER_INDEX_STAGE_EMAILS);
         
         /* Signal progress */
-        daemon = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        daemon = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
         g_signal_emit_by_name (daemon, "index-progress", 
                                "Emails",
                                "",
@@ -1120,7 +1120,7 @@
         GObject           *object;
         TrackerIndexStage  stage;
 
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
 
         /* Check dir_queue in case there are
          * directories waiting to be indexed.
@@ -1543,7 +1543,7 @@
 
         /* Get pointers we need */
         db_con = tracker_db_connect_all ();
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
 
 	dir_queue = g_async_queue_new ();
 	file_metadata_queue = g_async_queue_new ();
@@ -1614,7 +1614,7 @@
 
 	tracker_index_stage_set (TRACKER_INDEX_STAGE_CONFIG);
 
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
 
 	pushed_events = FALSE;
 	first_run = TRUE;
@@ -1753,7 +1753,7 @@
 				}
 
                                 /* Signal progress */
-                                object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+                                object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
                                 g_signal_emit_by_name (object, 
                                                        "index-progress", 
                                                        "Files",

Modified: branches/xesam-support/src/trackerd/tracker-status.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-status.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-status.c	Fri May 30 09:25:54 2008
@@ -23,7 +23,7 @@
 
 #include "tracker-status.h"
 #include "tracker-dbus.h"
-#include "tracker-dbus-daemon.h"
+#include "tracker-daemon.h"
 
 static TrackerStatus status = TRACKER_STATUS_INITIALIZING;
 
@@ -132,7 +132,7 @@
                 return;
         }
 
-        object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
+        object = tracker_dbus_get_object (TRACKER_TYPE_DAEMON);
 
         g_signal_emit_by_name (object, 
                                "index-state-change", 

Modified: branches/xesam-support/src/trackerd/tracker-utils.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-utils.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-utils.c	Fri May 30 09:25:54 2008
@@ -29,7 +29,7 @@
 #include "tracker-utils.h"
 #include "tracker-main.h"
 #include "tracker-process-files.h"
-#include "tracker-xesam.h"
+#include "tracker-xesam-manager.h"
 
 extern Tracker *tracker;
 
@@ -131,7 +131,7 @@
 void
 tracker_add_io_grace (const gchar *uri)
 {
-	if (tracker_xesam_is_uri_in_xesam_dir (uri)) {
+	if (tracker_xesam_manager_is_uri_in_xesam_dir (uri)) {
 		return;
 	}
 

Modified: branches/xesam-support/src/trackerd/tracker-xesam-live-search.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-xesam-live-search.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-xesam-live-search.c	Fri May 30 09:25:54 2008
@@ -24,18 +24,20 @@
 #include <dbus/dbus-glib-bindings.h>
 
 #include "tracker-xesam-live-search.h"
-#include "tracker-dbus-xesam.h"
-#include "tracker-dbus.h"
 #include "tracker-xesam.h"
+#include "tracker-xesam-manager.h"
 #include "tracker-xesam-query.h"
+#include "tracker-dbus.h"
 
 struct _TrackerXesamLiveSearchPriv {
-	gchar *search_id;
 	TrackerXesamSession *session;
-	gboolean active;
-	gboolean closed;
-	gchar *query;
-	gchar *from_sql, *join_sql, *where_sql;
+	gchar               *search_id;
+	gboolean             active;
+	gboolean             closed;
+	gchar               *query;
+	gchar               *from_sql;
+	gchar               *where_sql;
+	gchar               *join_sql;
 };
 
 enum {
@@ -66,23 +68,41 @@
 
 void
 tracker_xesam_live_search_set_session (TrackerXesamLiveSearch *self, 
-				       gpointer session)
+				       gpointer                session)
 {
 	TrackerXesamLiveSearchPriv *priv = self->priv;
 
-	if (priv->session)
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+	g_return_if_fail (session != NULL);
+
+	if (priv->session) {
 		g_object_unref (priv->session);
+	}
 
-	priv->session = g_object_ref (session);
+	if (session) {
+		priv->session = g_object_ref (session);
+	} else {
+		priv->session = NULL;
+	}
 }
 
 void
-tracker_xesam_live_search_set_xml_query (TrackerXesamLiveSearch *self, const gchar *query)
+tracker_xesam_live_search_set_xml_query (TrackerXesamLiveSearch *self, 
+					 const gchar            *query)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
+	TrackerXesamLiveSearchPriv *priv;
+
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+
+	priv = self->priv;
 
 	g_free (priv->query);
-	priv->query = g_strdup (query);
+
+	if (query) {
+		priv->query = g_strdup (query);
+	} else {
+		priv->query = NULL;
+	}
 }
 
 static void
@@ -94,7 +114,7 @@
 	switch (param_id) {
 	case PROP_XMLQUERY:
 		tracker_xesam_live_search_set_xml_query (TRACKER_XESAM_LIVE_SEARCH (object),
-						     g_value_get_pointer (value));
+							 g_value_get_pointer (value));
 		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
@@ -107,7 +127,10 @@
 tracker_xesam_live_search_class_init (TrackerXesamLiveSearchClass *klass) 
 {
 	GObjectClass *object_class;
+
 	object_class = G_OBJECT_CLASS (klass);
+
+	object_class->finalize = tracker_xesam_live_search_finalize;
 	object_class->set_property = xesam_search_set_property;
 
 	g_object_class_install_property (object_class,
@@ -117,8 +140,7 @@
 							       "XML Query",
 							       G_PARAM_WRITABLE));
 
-	object_class->finalize = tracker_xesam_live_search_finalize;
-	g_type_class_add_private( klass, sizeof(struct _TrackerXesamLiveSearchPriv) );
+	g_type_class_add_private (klass, sizeof (struct _TrackerXesamLiveSearchPriv));
 
 }
 
@@ -127,7 +149,7 @@
 {
 	TrackerXesamLiveSearchPriv *priv;
 
-	priv = self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,TRACKER_TYPE_XESAM_LIVE_SEARCH,struct _TrackerXesamLiveSearchPriv);
+	priv = self->priv = GET_PRIV (self);
 
 	priv->session = NULL;
 	priv->search_id = NULL;
@@ -153,9 +175,15 @@
 tracker_xesam_live_search_emit_hits_added (TrackerXesamLiveSearch *self, 
 					   guint                   count) 
 {
-	TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
-
-	g_signal_emit_by_name (proxy, "hits-added", tracker_xesam_live_search_get_id (self), count);
+	GObject *xesam;
+	
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+
+	xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
+
+	g_signal_emit_by_name (xesam, "hits-added", 
+			       tracker_xesam_live_search_get_id (self), 
+			       count);
 }
 
 /**
@@ -173,9 +201,16 @@
 tracker_xesam_live_search_emit_hits_removed (TrackerXesamLiveSearch *self, 
 					     GArray                 *hit_ids) 
 {
-	TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
+	GObject *xesam;
+
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+	g_return_if_fail (hit_ids != NULL);
+
+	xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
 
-	g_signal_emit_by_name (proxy, "hits-removed", tracker_xesam_live_search_get_id (self), hit_ids); 
+	g_signal_emit_by_name (xesam, "hits-removed", 
+			       tracker_xesam_live_search_get_id (self), 
+			       hit_ids); 
 }
 
 /**
@@ -193,9 +228,16 @@
 tracker_xesam_live_search_emit_hits_modified (TrackerXesamLiveSearch *self, 
 					      GArray                 *hit_ids) 
 {
-	TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
+	GObject *xesam;
+
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+	g_return_if_fail (hit_ids != NULL);
+
+	xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
 
-	g_signal_emit_by_name (proxy, "hits-modified", tracker_xesam_live_search_get_id (self), hit_ids); 
+	g_signal_emit_by_name (xesam, "hits-modified", 
+			       tracker_xesam_live_search_get_id (self), 
+			       hit_ids); 
 }
 
 /**
@@ -212,17 +254,25 @@
 void 
 tracker_xesam_live_search_emit_done (TrackerXesamLiveSearch *self) 
 {
-	TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
+	GObject *xesam;
 
-	g_signal_emit_by_name (proxy, "search-done", tracker_xesam_live_search_get_id (self)); 
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+
+	xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
+
+	g_signal_emit_by_name (xesam, "search-done", 
+			       tracker_xesam_live_search_get_id (self)); 
 }
 
+
+
 /* Created and Modified items */
 static void
 get_hits_added_modified (TrackerXesamLiveSearch *self, DBConnection *db_con, GArray **added, GArray **modified) 
 {
-	GArray *m_added = NULL, *m_modified = NULL;
-	gboolean ls_valid = TRUE;
+	gboolean            ls_valid = TRUE;
+	GArray             *m_added = NULL;
+	GArray             *m_modified = NULL;
 	TrackerDBResultSet *result_set;
 
 	result_set = tracker_db_get_live_search_new_ids (db_con, 
@@ -286,8 +336,8 @@
 static void
 get_all_hits (TrackerXesamLiveSearch *self, DBConnection *db_con, GArray **hits) 
 {
-	GArray *m_hits = NULL;
-	gboolean ls_valid = TRUE;
+	gboolean            ls_valid = TRUE;
+	GArray             *m_hits = NULL;
 	TrackerDBResultSet *result_set;
 
 	result_set = tracker_db_get_live_search_all_ids (db_con, 
@@ -318,6 +368,7 @@
 	*hits = m_hits;
 }
 
+
 /**
  * tracker_xesam_live_search_match_with_events:
  * @self: A #TrackerXesamLiveSearch
@@ -330,13 +381,14 @@
 void
 tracker_xesam_live_search_match_with_events (TrackerXesamLiveSearch *self, GArray **added, GArray **removed, GArray **modified)
 {
-	TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
 	DBConnection *db_con = NULL;
 	TrackerDBResultSet *result_set;
 	gboolean ls_valid = TRUE;
 	GArray *m_added = NULL, *m_removed = NULL, *m_modified = NULL;
 
-	g_object_get (proxy, "db-connection", &db_con, NULL);
+	GObject *xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
+
+	g_object_get (xesam, "db-connection", &db_con, NULL);
 
 	/* Deleted items */
 
@@ -386,19 +438,26 @@
 tracker_xesam_live_search_close (TrackerXesamLiveSearch  *self, 
 				 GError                 **error)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
+	TrackerXesamLiveSearchPriv *priv;
 
-	if (priv->closed)
-		g_set_error (error, TRACKER_XESAM_ERROR_DOMAIN, 
-				TRACKER_XESAM_ERROR_SEARCH_CLOSED,
-				"Search was already closed");
-	else {
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+
+	priv = self->priv;
+
+	if (priv->closed) {
+		g_set_error (error, 
+			     TRACKER_XESAM_ERROR_DOMAIN, 
+			     TRACKER_XESAM_ERROR_SEARCH_CLOSED,
+			     "Search was already closed");
+	} else {
 		DBConnection *db_con = NULL;
-		TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
+		GObject      *xesam;
+		
+		xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
 
-		g_object_get (proxy, "db-connection", &db_con, NULL);
+		g_object_get (xesam, "db-connection", &db_con, NULL);
 		tracker_db_stop_live_search (db_con, 
-			tracker_xesam_live_search_get_id (self));
+					     tracker_xesam_live_search_get_id (self));
 	}
 
 	priv->closed = TRUE;
@@ -421,31 +480,36 @@
 					 guint                   *count, 
 					 GError                 **error)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
+	TrackerXesamLiveSearchPriv *priv;
 
-	if (!priv->active)
-		g_set_error (error, TRACKER_XESAM_ERROR_DOMAIN, 
-				TRACKER_XESAM_ERROR_SEARCH_NOT_ACTIVE,
-				"Search is not active");
-	else {
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+	g_return_if_fail (count != NULL);
+
+	priv = self->priv;
+
+	if (!priv->active) {
+		g_set_error (error,
+			     TRACKER_XESAM_ERROR_DOMAIN, 
+			     TRACKER_XESAM_ERROR_SEARCH_NOT_ACTIVE,
+			     "Search is not active");
+	} else {
 		TrackerDBResultSet *result_set;
-		TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
-		GValue value = {0, };
-		DBConnection *db_con = NULL;
+		GValue              value = {0, };
+		DBConnection       *db_con = NULL;
+		GObject            *xesam;
 
-		g_object_get (proxy, "db-connection", &db_con, NULL);
+		xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
+		g_object_get (xesam, "db-connection", &db_con, NULL);
 
 		result_set = tracker_db_get_live_search_hit_count (db_con, 
-			tracker_xesam_live_search_get_id (self));
+								   tracker_xesam_live_search_get_id (self));
 		_tracker_db_result_set_get_value (result_set, 0, &value);
 		*count = g_value_get_int (&value);
 		g_value_unset (&value);
 		g_object_unref (result_set);
 	}
-
 }
 
-
 /**
  * Retrieving Hits
  * The return value of GetHits and GetHitData is a sorted array of hits. A hit 
@@ -470,25 +534,32 @@
  **/
 static void
 get_hit_data (TrackerXesamLiveSearch  *self, 
-	      TrackerDBResultSet *result_set,
-	      GPtrArray **hit_data)
+	      TrackerDBResultSet      *result_set,
+	      GPtrArray              **hit_data)
 {
-	gboolean valid = TRUE;
-	gint hitfields_columns = 0, column;
-	GPtrArray *result = g_ptr_array_new ();
+	GPtrArray *result;
+	gboolean   valid = TRUE;
+	gint       hitfields_columns = 0;
+	gint       column;
 
+	result = g_ptr_array_new ();
 
 	while (valid) {
-		GPtrArray *row = g_ptr_array_new ();
+		GPtrArray *row;
+
+		row = g_ptr_array_new ();
 
 		for (column = 0; column < hitfields_columns; column++) {
-			GValue *value = g_new0 (GValue, 1);
-			GValue value_in = {0, };
+			GValue *value;
+			GValue  value_in = {0, };
 
-			// Question for ottela: how will we do list-values like
-			// xesam:userKeywords? That's a column with comma's? or
-			// how is this done? An extra result_set to loop? An
-			// extra query? A union?
+			value = g_new0 (GValue, 1);
+
+			/* Question for ottela: how will we do list-values like
+			 * xesam:userKeywords? That's a column with comma's? or
+			 * how is this done? An extra result_set to loop? An
+			 * extra query? A union?
+			 */
 
 			_tracker_db_result_set_get_value (result_set, column, &value_in);
 
@@ -528,7 +599,12 @@
 				    GPtrArray              **hits,
 				    GError                 **error)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
+	TrackerXesamLiveSearchPriv *priv;
+
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+	g_return_if_fail (hits != NULL);
+
+	priv = self->priv;
 
 	if (!priv->active)
 		g_set_error (error, TRACKER_XESAM_ERROR_DOMAIN, 
@@ -536,17 +612,18 @@
 				"Search is not active");
 	else {
 		TrackerDBResultSet *result_set = NULL;
-		DBConnection *db_con = NULL;
-		TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
-
-		g_object_get (proxy, "db-connection", &db_con, NULL);
+		DBConnection       *db_con = NULL;
+		GObject            *xesam;
+		
+		xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
+		g_object_get (xesam, "db-connection", &db_con, NULL);
 
 		g_debug ("live_search_get_hits");
 
-		// For ottela: fetch results for get_hits
+		/* For ottela: fetch results for get_hits */
 
 		result_set = tracker_db_get_live_search_get_hit_data (db_con,
-			tracker_xesam_live_search_get_id (self));
+								      tracker_xesam_live_search_get_id (self));
 
 		if (result_set) {
 			get_hit_data (self, result_set, hits);
@@ -555,29 +632,37 @@
 	}
 }
 
-void tracker_xesam_live_search_get_range_hits (TrackerXesamLiveSearch  *self,
-					       guint                    a,
-					       guint                    b,
-					       GPtrArray              **hits,
-					       GError                 **error)
+void
+tracker_xesam_live_search_get_range_hits (TrackerXesamLiveSearch  *self,
+					  guint                    a,
+					  guint                    b,
+					  GPtrArray              **hits,
+					  GError                 **error)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
+	TrackerXesamLiveSearchPriv *priv;
 
-	if (!priv->active)
-		g_set_error (error, TRACKER_XESAM_ERROR_DOMAIN, 
-				TRACKER_XESAM_ERROR_SEARCH_NOT_ACTIVE,
-				"Search is not active");
-	else {
-		TrackerDBResultSet *result_set = NULL;
-		DBConnection *db_con = NULL;
-		TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+	g_return_if_fail (hits != NULL);
 
-		g_object_get (proxy, "db-connection", &db_con, NULL);
+	priv = self->priv;
+
+	if (!priv->active) {
+		g_set_error (error, 
+			     TRACKER_XESAM_ERROR_DOMAIN, 
+			     TRACKER_XESAM_ERROR_SEARCH_NOT_ACTIVE,
+			     "Search is not active");
+	} else {
+		TrackerDBResultSet *result_set = NULL;
+		DBConnection       *db_con = NULL;
+		GObject            *xesam;
+		
+		xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
+		g_object_get (xesam, "db-connection", &db_con, NULL);
 
-		// For ottela: fetch results for get_hits
+		/* For ottela: fetch results for get_hits */
 
 		result_set = tracker_db_get_live_search_get_hit_data (db_con,
-			tracker_xesam_live_search_get_id (self));
+								      tracker_xesam_live_search_get_id (self));
 
 		if (result_set) {
 			get_hit_data (self, result_set, hits);
@@ -586,7 +671,6 @@
 	}
 }
 
-
 /**
  * tracker_xesam_live_search_get_hit_data:
  * @self: a #TrackerXesamLiveSearch
@@ -621,23 +705,31 @@
 					GPtrArray              **hit_data, 
 					GError                 **error)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
+	TrackerXesamLiveSearchPriv *priv;
 
-	if (!priv->active)
-		g_set_error (error, TRACKER_XESAM_ERROR_DOMAIN, 
-				TRACKER_XESAM_ERROR_SEARCH_NOT_ACTIVE,
-				"Search is not active yet");
-	else {
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+	g_return_if_fail (hit_ids != NULL);
+	g_return_if_fail (hit_data != NULL);
+
+	priv = self->priv;
+
+	if (!priv->active) {
+		g_set_error (error, 
+			     TRACKER_XESAM_ERROR_DOMAIN, 
+			     TRACKER_XESAM_ERROR_SEARCH_NOT_ACTIVE,
+			     "Search is not active yet");
+	} else {
 		TrackerDBResultSet *result_set = NULL;
-		DBConnection *db_con = NULL;
-		TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
-
-		g_object_get (proxy, "db-connection", &db_con, NULL);
+		DBConnection       *db_con = NULL;
+		GObject            *xesam;
+		
+		xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
+		g_object_get (xesam, "db-connection", &db_con, NULL);
 
-		// For ottela: fetch results for get_hits
+		/* For ottela: fetch results for get_hits */
 
 		result_set = tracker_db_get_live_search_get_hit_data (db_con,
-			tracker_xesam_live_search_get_id (self));
+								      tracker_xesam_live_search_get_id (self));
 
 		if (result_set) {
 			get_hit_data (self, result_set, hit_data);
@@ -646,7 +738,6 @@
 	}
 }
 
-
 void
 tracker_xesam_live_search_get_range_hit_data (TrackerXesamLiveSearch  *self,
 					      guint                    a,
@@ -655,23 +746,31 @@
 					      GPtrArray              **hit_data,
 					      GError                 **error)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
+	TrackerXesamLiveSearchPriv *priv;
 
-	if (!priv->active)
-		g_set_error (error, TRACKER_XESAM_ERROR_DOMAIN, 
-				TRACKER_XESAM_ERROR_SEARCH_NOT_ACTIVE,
-				"Search is not active yet");
-	else {
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+	g_return_if_fail (fields != NULL);
+	g_return_if_fail (hit_data != NULL);
+
+	priv = self->priv;
+
+	if (!priv->active) { 
+		g_set_error (error,
+			     TRACKER_XESAM_ERROR_DOMAIN, 
+			     TRACKER_XESAM_ERROR_SEARCH_NOT_ACTIVE,
+			     "Search is not active yet");
+	} else {
 		TrackerDBResultSet *result_set = NULL;
-		DBConnection *db_con = NULL;
-		TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
+		DBConnection       *db_con = NULL;
+		GObject            *xesam;
 
-		g_object_get (proxy, "db-connection", &db_con, NULL);
+		xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
+		g_object_get (xesam, "db-connection", &db_con, NULL);
 
-		// For ottela: fetch results for get_hits
+		/* For ottela: fetch results for get_hits */
 
 		result_set = tracker_db_get_live_search_get_hit_data (db_con,
-			tracker_xesam_live_search_get_id (self));
+								      tracker_xesam_live_search_get_id (self));
 
 		if (result_set) {
 			get_hit_data (self, result_set, hit_data);
@@ -691,7 +790,11 @@
 gboolean 
 tracker_xesam_live_search_is_active (TrackerXesamLiveSearch *self)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
+	TrackerXesamLiveSearchPriv *priv;
+
+	g_return_val_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self), FALSE);
+
+	priv = self->priv;
 
 	return priv->active;
 }
@@ -716,10 +819,10 @@
 				"Search is closed");
 	else {
 		DBConnection *db_con = NULL;
-		TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
-		GArray *hits = NULL;
+		GObject      *xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
+		GArray       *hits = NULL;
 		
-		g_object_get (proxy, "db-connection", &db_con, NULL);
+		g_object_get (xesam, "db-connection", &db_con, NULL);
 
 		tracker_db_start_live_search (db_con, 
 			tracker_xesam_live_search_get_from_query (self),
@@ -752,11 +855,16 @@
  *
  * @returns: a read-only string with the query
  **/
-const gchar* 
+const gchar * 
 tracker_xesam_live_search_get_xml_query (TrackerXesamLiveSearch *self)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
-	return (const gchar *) priv->query;
+	TrackerXesamLiveSearchPriv *priv;
+
+	g_return_val_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self), NULL);
+
+	priv = self->priv;
+
+	return priv->query;
 }
 
 /**
@@ -770,11 +878,19 @@
 tracker_xesam_live_search_set_id (TrackerXesamLiveSearch *self, 
 				  const gchar            *search_id)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
+	TrackerXesamLiveSearchPriv *priv;
 
-	if (priv->search_id)
-		g_free (priv->search_id);
-	priv->search_id = g_strdup (search_id);
+	g_return_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self));
+
+	priv = self->priv;
+
+	g_free (priv->search_id);
+
+	if (search_id) {
+		priv->search_id = g_strdup (search_id);
+	} else {
+		priv->search_id = NULL;
+	}
 }
 
 /**
@@ -788,9 +904,13 @@
 const gchar* 
 tracker_xesam_live_search_get_id (TrackerXesamLiveSearch *self)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
+	TrackerXesamLiveSearchPriv *priv;
+
+	g_return_val_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self), NULL);
 
-	return (const gchar*) priv->search_id;
+	priv = self->priv;
+
+	return priv->search_id;
 }
 
 
@@ -806,13 +926,18 @@
 tracker_xesam_live_search_parse_query (TrackerXesamLiveSearch  *self,
 				       GError                 **error)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
-	TrackerDBusXesam           *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
+	TrackerXesamLiveSearchPriv *priv;
+	GObject                    *xesam;
 	DBConnection               *db_con = NULL;
 	GError                     *parse_error = NULL;
 	gchar                      *orig_from, *orig_join, *orig_where;
 
-	g_object_get (proxy, "db-connection", &db_con, NULL);
+	g_return_val_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self), FALSE);
+
+	priv = self->priv;
+
+	xesam = tracker_dbus_get_object (TRACKER_TYPE_XESAM);
+	g_object_get (xesam, "db-connection", &db_con, NULL);
 
 	orig_from = priv->from_sql;
 	orig_join = priv->join_sql;
@@ -831,7 +956,8 @@
 	if (parse_error) {
 		gchar *str = g_strdup_printf ("Parse error: %s", 
 			parse_error->message);
-		g_set_error (error, TRACKER_XESAM_ERROR_DOMAIN, 
+		g_set_error (error, 
+			     TRACKER_XESAM_ERROR_DOMAIN, 
 			     TRACKER_XESAM_ERROR_PARSING_FAILED,
 			     str);
 		g_free (str);
@@ -852,6 +978,9 @@
 		g_free (orig_where);
 	}
 
+	g_message ("Parsed to '%s' and '%s'", 
+		   priv->from_sql, priv->where_sql);
+
 	return TRUE;
 }
 
@@ -866,8 +995,13 @@
 const gchar* 
 tracker_xesam_live_search_get_from_query (TrackerXesamLiveSearch *self)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
-	return (const gchar *) priv->from_sql;
+	TrackerXesamLiveSearchPriv *priv;
+
+	g_return_val_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self), NULL);
+
+	priv = self->priv;
+
+	return priv->from_sql;
 }
 
 /**
@@ -896,8 +1030,13 @@
 const gchar* 
 tracker_xesam_live_search_get_where_query (TrackerXesamLiveSearch *self)
 {
-	TrackerXesamLiveSearchPriv *priv = self->priv;
-	return (const gchar *) priv->where_sql;
+	TrackerXesamLiveSearchPriv *priv;
+
+	g_return_val_if_fail (TRACKER_IS_XESAM_LIVE_SEARCH (self), NULL);
+
+	priv = self->priv;
+
+	return priv->where_sql;
 }
 
 /**
@@ -911,7 +1050,8 @@
 tracker_xesam_live_search_new (const gchar *query_xml) 
 {
 	return g_object_new (TRACKER_TYPE_XESAM_LIVE_SEARCH, 
-		"xml-query", query_xml, NULL);
+			     "xml-query", query_xml, 
+			     NULL);
 }
 
 

Modified: branches/xesam-support/src/trackerd/tracker-xesam-session.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-xesam-session.c	(original)
+++ branches/xesam-support/src/trackerd/tracker-xesam-session.c	Fri May 30 09:25:54 2008
@@ -21,19 +21,18 @@
 
 #include <string.h>
 
-#include "tracker-xesam.h"
+#include "tracker-xesam-manager.h"
+
+#define GET_PRIV(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TRACKER_TYPE_XESAM_SESSION, struct _TrackerXesamSessionPriv))
 
 struct _TrackerXesamSessionPriv {
 	GHashTable *searches;
-	gchar *session_id;
 	GHashTable *props;
+	gchar      *session_id;
 };
 
 G_DEFINE_TYPE (TrackerXesamSession, tracker_xesam_session, G_TYPE_OBJECT)
 
-#define GET_PRIV(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TRACKER_TYPE_XESAM_SESSION, struct _TrackerXesamSessionPriv))
-
-
 static void
 tracker_xesam_session_g_value_free (GValue *value)
 {
@@ -386,7 +385,8 @@
 	search = tracker_xesam_live_search_new (query_xml);
 
 	tracker_xesam_live_search_set_session (search, self);
-	tracker_xesam_live_search_set_id (search, tracker_xesam_generate_unique_key ());
+	tracker_xesam_live_search_set_id (search, 
+					  tracker_xesam_manager_generate_unique_key ());
 
 	if (tracker_xesam_live_search_parse_query (search, error)) {
 

Modified: branches/xesam-support/src/trackerd/tracker-xesam-session.h
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-xesam-session.h	(original)
+++ branches/xesam-support/src/trackerd/tracker-xesam-session.h	Fri May 30 09:25:54 2008
@@ -22,12 +22,11 @@
 #ifndef __TRACKERD_XESAM_SESSION_H__
 #define __TRACKERD_XESAM_SESSION_H__
 
-#include <glib.h>
 #include <glib-object.h>
 
-#include "tracker-xesam.h"
+#include "tracker-xesam-manager.h"
 #include "tracker-xesam-live-search.h"
-#include "tracker-dbus-xesam.h"
+#include "tracker-xesam.h"
 
 G_BEGIN_DECLS
 



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