tracker r1645 - in branches/xesam-support: . data/dbus src/libtracker-db src/tracker-indexer src/trackerd
- From: pvanhoof svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r1645 - in branches/xesam-support: . data/dbus src/libtracker-db src/tracker-indexer src/trackerd
- Date: Wed, 11 Jun 2008 16:16:40 +0000 (UTC)
Author: pvanhoof
Date: Wed Jun 11 16:16:40 2008
New Revision: 1645
URL: http://svn.gnome.org/viewvc/tracker?rev=1645&view=rev
Log:
2008-06-11 Philip Van Hoof <pvanhoof gnome org>
* svn merge -r 1625:1644 ../indexer-split
Added:
branches/xesam-support/src/trackerd/tracker-crawler.c
- copied unchanged from r1644, /branches/indexer-split/src/trackerd/tracker-crawler.c
branches/xesam-support/src/trackerd/tracker-crawler.h
- copied unchanged from r1644, /branches/indexer-split/src/trackerd/tracker-crawler.h
branches/xesam-support/src/trackerd/tracker-monitor.c
- copied unchanged from r1644, /branches/indexer-split/src/trackerd/tracker-monitor.c
branches/xesam-support/src/trackerd/tracker-monitor.h
- copied unchanged from r1644, /branches/indexer-split/src/trackerd/tracker-monitor.h
Removed:
branches/xesam-support/src/trackerd/tracker-watcher-fam.c
branches/xesam-support/src/trackerd/tracker-watcher-inotify.c
branches/xesam-support/src/trackerd/tracker-watcher-poll.c
branches/xesam-support/src/trackerd/tracker-watcher-win.c
branches/xesam-support/src/trackerd/tracker-watcher.h
Modified:
branches/xesam-support/ChangeLog
branches/xesam-support/configure.ac
branches/xesam-support/data/dbus/tracker-indexer.xml
branches/xesam-support/src/libtracker-db/tracker-db-manager.c
branches/xesam-support/src/tracker-indexer/tracker-indexer.c
branches/xesam-support/src/tracker-indexer/tracker-indexer.h
branches/xesam-support/src/tracker-indexer/tracker-main.c
branches/xesam-support/src/trackerd/Makefile.am
branches/xesam-support/src/trackerd/tracker-daemon.c
branches/xesam-support/src/trackerd/tracker-db.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-kmail.c
branches/xesam-support/src/trackerd/tracker-email-modest.c
branches/xesam-support/src/trackerd/tracker-email-thunderbird.c
branches/xesam-support/src/trackerd/tracker-main.c
branches/xesam-support/src/trackerd/tracker-main.h
branches/xesam-support/src/trackerd/tracker-process-files.c
Modified: branches/xesam-support/configure.ac
==============================================================================
--- branches/xesam-support/configure.ac (original)
+++ branches/xesam-support/configure.ac Wed Jun 11 16:16:40 2008
@@ -25,7 +25,7 @@
AC_CHECK_HEADER([zlib.h], [], [AC_MSG_ERROR([You must have zlib.h and zlib installed])])
-dnl can posix_fadvise be used
+# Can posix_fadvise be used
AC_CHECK_DECLS(posix_fadvise, [], [], [
#define _XOPEN_SOURCE 600
#include <fcntl.h>])
@@ -34,9 +34,9 @@
AC_CHECK_FUNCS([posix_fadvise])
AC_CHECK_FUNCS([getline])
-dnl Library Checks
+# Library Checks
DBUS_REQUIRED=0.60
-GLIB_REQUIRED=2.14.0
+GLIB_REQUIRED=2.16.0
PANGO_REQUIRED=1.0.0
GMIME_REQUIRED=2.1.0
@@ -59,7 +59,11 @@
AC_SUBST(GMODULE_CFLAGS)
AC_SUBST(GMODULE_LIBS)
-#Check for pango
+PKG_CHECK_MODULES(GIO, [ gio-2.0 >= $GLIB_REQUIRED ])
+AC_SUBST(GIO_CFLAGS)
+AC_SUBST(GIO_LIBS)
+
+# Check for pango
PKG_CHECK_MODULES(PANGO, [ pango >= $PANGO_REQUIRED ])
AC_SUBST(PANGO_CFLAGS)
AC_SUBST(PANGO_LIBS)
@@ -166,7 +170,7 @@
AS_HELP_STRING([--disable-warnings], [disable GCC warnings]),,
[enable_warnings=yes])
-dnl Only use -Wall if we have gcc
+# Only use -Wall if we have gcc
if test "x$GCC" = "xyes"; then
if test "x$enable_warnings" = "xyes"; then
CFLAGS="\
@@ -230,7 +234,7 @@
##################################################################
-# check for libxml2
+# Check for libxml2
##################################################################
LIBXML2_REQUIRED=0.6
@@ -253,7 +257,7 @@
AM_CONDITIONAL(HAVE_LIBXML2, test "x$have_libxml2" = "xyes")
##################################################################
-# check for HAL
+# Check for HAL
##################################################################
AC_ARG_ENABLE(hal, AS_HELP_STRING([--disable-hal],[Disable HAL support for ac power detection]),,[enable_hal=yes])
@@ -374,131 +378,6 @@
AC_SUBST(SQLITE3_CFLAGS)
AC_SUBST(SQLITE3_LIBS)
-###############################################################################
-# Check for file monitor backends
-###############################################################################
-
-FAM_LIBS=
-inotify_support=no
-inotify_linux=no
-inotify_header=none
-fam_support=no
-fam_type=none
-
-AM_CONDITIONAL(HAVE_INOTIFY, false)
-AM_CONDITIONAL(HAVE_INOTIFY_LINUX, false)
-AM_CONDITIONAL(HAVE_FAM, false)
-
-AC_ARG_ENABLE(file-monitoring,
- AS_HELP_STRING(
- [--enable-file-monitoring=ARG],
- [enables one of the (inotify, fam, polling, auto) file monitoring backends]),,
- enable_file_monitoring=auto)
-
-
-AC_CHECK_HEADERS([sys/inotify.h],
- [
- inotify_support=yes
- inotify_linux=no
- ])
-
-AC_CHECK_HEADERS([linux/inotify.h],
- [
- inotify_linux=yes
- inotify_support=yes
- ])
-
-AC_CHECK_LIB(fam, FAMOpen,
- [AC_CHECK_HEADERS(fam.h,
- [
- fam_support=yes
- fam_type=fam
- ],[fam_support=no])],
- [fam_support=no])
-
-PKG_CHECK_MODULES(GAMIN,
- gamin,
- [
- fam_support=yes
- fam_type=gamin
- ],
- [
- fam_support=no
- ])
-
-if test "x$enable_file_monitoring" = "xauto"; then
- if test "$inotify_support" = "yes"; then
- primary_backend="inotify"
- if test "$inotify_linux" = "yes"; then
- inotify_header="linux/inotify.h"
- else
- inotify_header="sys/inotify.h"
- fi
-
- elif test "$fam_support" = "yes"; then
- if test "$fam_type" = "gamin"; then
- primary_backend="gamin"
- else
- primary_backend="fam"
- fi
- else
- if test "$native_win32" = "yes"; then
- primary_backend="win32"
- else
- primary_backend="polling only"
- fi
- fi
-elif test "x$enable_file_monitoring" = "xinotify"; then
- if test "$inotify_support" = "no"; then
- AC_MSG_ERROR([***inotify requested but not found - exiting!])
- else
- primary_backend="inotify"
- if test "$inotify_linux" = "yes"; then
- inotify_header="linux/inotify.h"
- else
- inotify_header="sys/inotify.h"
- fi
- fi
-elif test "x$enable_file_monitoring" = "xfam"; then
- if test "$fam_support" = "no"; then
- AC_MSG_ERROR([***fam requested but not found - exiting!])
- else
- if test "$fam_type" = "gamin"; then
- primary_backend="gamin"
- else
- primary_backend="fam"
- fi
- fi
-else
- if test "$native_win32" = "yes"; then
- primary_backend="win32"
- else
- primary_backend="polling only"
- fi
-fi
-
-if test "$primary_backend" = "inotify"; then
- AC_DEFINE(HAVE_INOTIFY, [], [Define if we have inotify])
- AM_CONDITIONAL(HAVE_INOTIFY, true)
- if test "$inotify_linux" = "yes"; then
- AC_DEFINE(HAVE_INOTIFY_LINUX, [],
- [
- Define if we have inotify and header is linux/inotify.h
- ])
- AM_CONDITIONAL(HAVE_INOTIFY_LINUX, true)
- fi
-elif test "$primary_backend" = "gamin"; then
- AC_DEFINE(HAVE_FAM, [], [Define if we have FAM])
- AM_CONDITIONAL(HAVE_FAM, true)
- FAM_LIBS="-lgamin-1"
- AC_SUBST(FAM_LIBS)
-elif test "$primary_backend" = "fam"; then
- AC_DEFINE(HAVE_FAM, [], [Define if we have FAM])
- AM_CONDITIONAL(HAVE_FAM, true)
- FAM_LIBS="-lfam"
- AC_SUBST(FAM_LIBS)
-fi
-
##################################################################
# Enable building libtracker-gtk?
@@ -527,10 +406,10 @@
AM_CONDITIONAL(ENABLE_LIBTRACKERGTK, test "$enable_libtrackergtk" = "yes")
-
##################################################################
# Enable building tracker-applet notification icon?
##################################################################
+
LIBNOTIFY_GTK2_REQUIRED=2.10
LIBNOTIFY_GLIB_REQUIRED=2.10
LIBNOTIFY_REQUIRED=0.4.3
@@ -557,12 +436,10 @@
AM_CONDITIONAL(ENABLE_TRACKERAPPLET, test "$enable_trackerapplet" = "yes")
-
##################################################################
# Enable UNAC support?
##################################################################
-
AC_ARG_ENABLE([unac], AS_HELP_STRING([--disable-unac], [Disable unac accent stripper support]),,[enable_unac=yes])
if test "x$enable_unac" != "xno" ; then
@@ -581,11 +458,8 @@
fi
AM_CONDITIONAL(ENABLE_UNAC, test "$enable_unac" = "yes")
-
-
-
##################################################################
-# check for GNOME/GTK dependencies to build tracker search tool (Gnome client)
+# Check for GNOME/GTK dependencies to build tracker search tool (Gnome client)
##################################################################
GTK_REQUIRED=2.8.0
@@ -672,7 +546,7 @@
AM_CONDITIONAL(ENABLE_PREFERENCES, test "$enable_preferences" = "yes")
##################################################################
-# check for poppler's glib bingings
+# Check for poppler's glib bingings
##################################################################
POPPLER_GLIB_REQUIRED=0.4.5
@@ -695,7 +569,7 @@
test "$have_poppler" = "yes" && AC_DEFINE(HAVE_POPPLER, [], [Define if we have poppler])
##################################################################
-# check for libexif
+# Check for libexif
##################################################################
LIBEXIF_REQUIRED=0.6
@@ -714,7 +588,7 @@
test "$have_libexif" = "yes" && AC_DEFINE(HAVE_LIBEXIF, [], [Define if we have libexif])
##################################################################
-# check for libgsf
+# Check for libgsf
##################################################################
LIBGSF_REQUIRED=1.13
@@ -753,10 +627,8 @@
[ AC_DEFINE(HAVE_IOPRIO,[],[Define ioprio support]) have_ioprio=yes ])
AC_MSG_RESULT([$have_ioprio])
-#####################################################
-
##################################################################
-# check for exempi
+# Check for exempi
##################################################################
EXEMPI_REQUIRED=1.99.2
@@ -841,7 +713,7 @@
enable unac accent stripper: $enable_unac
- support for file monitoring: $primary_backend
+ support for file monitoring: gio
support for ioprio: $have_ioprio
support for HAL: $have_hal
Modified: branches/xesam-support/data/dbus/tracker-indexer.xml
==============================================================================
--- branches/xesam-support/data/dbus/tracker-indexer.xml (original)
+++ branches/xesam-support/data/dbus/tracker-indexer.xml Wed Jun 11 16:16:40 2008
@@ -10,9 +10,15 @@
<node name="/">
<interface name="org.freedesktop.Tracker.Indexer">
- <method name="GetRunning"/>
+ <method name="GetRunning">
+ <arg type="b" name="is_running" direction="out" />
+ </method>
<method name="SetRunning">
- <arg type="b" name="running" direction="in" />
+ <arg type="b" name="should_be_running" direction="in" />
+ </method>
+
+ <method name="ProcessFiles">
+ <arg type="as" name="files" direction="in" />
</method>
<!-- The old signal in the daemon used to send the time taken, we
Modified: branches/xesam-support/src/libtracker-db/tracker-db-manager.c
==============================================================================
--- branches/xesam-support/src/libtracker-db/tracker-db-manager.c (original)
+++ branches/xesam-support/src/libtracker-db/tracker-db-manager.c Wed Jun 11 16:16:40 2008
@@ -1725,6 +1725,8 @@
dbs[type].add_functions);
}
+ db_exec_no_reply (iface, "ANALYZE");
+
if (attach_all) {
g_message (" Attaching to current DB connection");
db_exec_no_reply (iface,
@@ -1764,8 +1766,6 @@
load_metadata_file (iface, "email.metadata");
load_metadata_file (iface, "image.metadata");
load_metadata_file (iface, "video.metadata");
-
- db_exec_no_reply (iface, "ANALYZE");
}
/* Load static data into tracker ontology */
@@ -1786,8 +1786,6 @@
if (create) {
load_sql_file (iface, "sqlite-cache.sql", NULL);
-
- db_exec_no_reply (iface, "ANALYZE");
}
return iface;
@@ -1806,8 +1804,6 @@
if (create) {
load_sql_file (iface, "sqlite-service.sql", NULL);
load_sql_file (iface, "sqlite-service-triggers.sql", "!");
-
- db_exec_no_reply (iface, "ANALYZE");
}
return iface;
@@ -1825,8 +1821,6 @@
if (create) {
load_sql_file (iface, "sqlite-contents.sql", NULL);
-
- db_exec_no_reply (iface, "ANALYZE");
}
tracker_db_interface_sqlite_create_function (iface,
@@ -1854,8 +1848,6 @@
load_sql_file (iface, "sqlite-service.sql", NULL);
load_sql_file (iface, "sqlite-email.sql", NULL);
load_sql_file (iface, "sqlite-service-triggers.sql", "!");
-
- db_exec_no_reply (iface, "ANALYZE");
}
return iface;
@@ -1873,8 +1865,6 @@
if (create) {
load_sql_file (iface, "sqlite-contents.sql", NULL);
-
- db_exec_no_reply (iface, "ANALYZE");
}
tracker_db_interface_sqlite_create_function (iface,
@@ -2096,8 +2086,6 @@
load_service_file_xesam (iface, "xesam-metadata.mmapping");
db_xesam_create_lookup (iface);
-
- db_exec_no_reply (iface, "ANALYZE");
}
db_exec_no_reply (iface,
Modified: branches/xesam-support/src/tracker-indexer/tracker-indexer.c
==============================================================================
--- branches/xesam-support/src/tracker-indexer/tracker-indexer.c (original)
+++ branches/xesam-support/src/tracker-indexer/tracker-indexer.c Wed Jun 11 16:16:40 2008
@@ -48,6 +48,7 @@
#include <glib/gstdio.h>
#include <libtracker-common/tracker-config.h>
+#include <libtracker-common/tracker-dbus.h>
#include <libtracker-common/tracker-file-utils.h>
#include <libtracker-common/tracker-language.h>
#include <libtracker-common/tracker-parser.h>
@@ -182,7 +183,9 @@
switch (prop_id) {
case PROP_RUNNING:
- tracker_indexer_set_running (indexer, g_value_get_boolean (value));
+ tracker_indexer_set_running (indexer,
+ g_value_get_boolean (value),
+ NULL);
break;
case PROP_REINDEX:
priv->reindex = g_value_get_boolean (value);
@@ -281,7 +284,7 @@
priv->metadata = tracker_db_manager_get_db_interface (TRACKER_DB_FILE_METADATA);
priv->contents = tracker_db_manager_get_db_interface (TRACKER_DB_FILE_CONTENTS);
- tracker_indexer_set_running (indexer, TRUE);
+ tracker_indexer_set_running (indexer, TRUE, NULL);
g_free (index_file);
@@ -600,21 +603,29 @@
NULL);
}
-void
-tracker_indexer_set_running (TrackerIndexer *indexer,
- gboolean running)
+gboolean
+tracker_indexer_set_running (TrackerIndexer *indexer,
+ gboolean should_be_running,
+ GError **error)
{
TrackerIndexerPrivate *priv;
- gboolean changed = FALSE;
+ guint request_id;
+ gboolean changed = FALSE;
+
+ request_id = tracker_dbus_get_next_request_id ();
- g_return_if_fail (TRACKER_IS_INDEXER (indexer));
+ tracker_dbus_return_val_if_fail (TRACKER_IS_INDEXER (indexer), FALSE, error);
priv = TRACKER_INDEXER_GET_PRIVATE (indexer);
- if (running && priv->idle_id == 0) {
+ tracker_dbus_request_new (request_id,
+ "DBus request to %s indexer",
+ should_be_running ? "start" : "stop");
+
+ if (should_be_running && priv->idle_id == 0) {
priv->idle_id = g_idle_add ((GSourceFunc) indexing_func, indexer);
changed = TRUE;
- } else if (!running && priv->idle_id != 0) {
+ } else if (!should_be_running && priv->idle_id != 0) {
g_source_remove (priv->idle_id);
priv->idle_id = 0;
changed = TRUE;
@@ -623,16 +634,57 @@
if (changed) {
g_object_notify (G_OBJECT (indexer), "running");
}
+
+ tracker_dbus_request_success (request_id);
+
+ return TRUE;
}
gboolean
-tracker_indexer_get_running (TrackerIndexer *indexer)
+tracker_indexer_get_running (TrackerIndexer *indexer,
+ gboolean *is_running,
+ GError **error)
{
TrackerIndexerPrivate *priv;
+ guint request_id;
- g_return_val_if_fail (TRACKER_IS_INDEXER (indexer), FALSE);
+ request_id = tracker_dbus_get_next_request_id ();
+
+ tracker_dbus_return_val_if_fail (TRACKER_IS_INDEXER (indexer), FALSE, error);
+ tracker_dbus_return_val_if_fail (is_running != NULL, FALSE, error);
priv = TRACKER_INDEXER_GET_PRIVATE (indexer);
- return (priv->idle_id != 0);
+ tracker_dbus_request_new (request_id,
+ "DBus request to get running status");
+
+ *is_running = priv->idle_id != 0;
+
+ tracker_dbus_request_success (request_id);
+
+ return TRUE;
+}
+
+gboolean
+tracker_indexer_process_files (TrackerIndexer *indexer,
+ GStrv files,
+ GError **error)
+{
+ /* TrackerIndexerPrivate *priv; */
+ guint request_id;
+
+ request_id = tracker_dbus_get_next_request_id ();
+
+ tracker_dbus_return_val_if_fail (TRACKER_IS_INDEXER (indexer), FALSE, error);
+ tracker_dbus_return_val_if_fail (files != NULL, FALSE, error);
+
+ tracker_dbus_request_new (request_id,
+ "DBus request to process %d files",
+ g_strv_length (files));
+
+ /* Do work */
+
+ tracker_dbus_request_success (request_id);
+
+ return TRUE;
}
Modified: branches/xesam-support/src/tracker-indexer/tracker-indexer.h
==============================================================================
--- branches/xesam-support/src/tracker-indexer/tracker-indexer.h (original)
+++ branches/xesam-support/src/tracker-indexer/tracker-indexer.h Wed Jun 11 16:16:40 2008
@@ -22,14 +22,14 @@
#ifndef __TRACKER_INDEXER_H__
#define __TRACKER_INDEXER_H__
+#include <glib-object.h>
+
#define TRACKER_INDEXER_SERVICE "org.freedesktop.Tracker.Indexer"
#define TRACKER_INDEXER_PATH "/org/freedesktop/Tracker/Indexer"
#define TRACKER_INDEXER_INTERFACE "org.freedesktop.Tracker.Indexer"
G_BEGIN_DECLS
-#include <glib-object.h>
-
#define TRACKER_TYPE_INDEXER (tracker_indexer_get_type())
#define TRACKER_INDEXER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TRACKER_TYPE_INDEXER, TrackerIndexer))
#define TRACKER_INDEXER_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), TRACKER_TYPE_INDEXER, TrackerIndexerClass))
@@ -47,15 +47,21 @@
struct TrackerIndexerClass {
GObjectClass parent_class;
- void (*finished) (TrackerIndexer *indexer);
+ void (*finished) (TrackerIndexer *indexer);
void (*index_updated) (TrackerIndexer *indexer);
};
-GType tracker_indexer_get_type (void) G_GNUC_CONST;
-TrackerIndexer *tracker_indexer_new (gboolean reindex);
-void tracker_indexer_set_running (TrackerIndexer *indexer,
- gboolean running);
-gboolean tracker_indexer_get_running (TrackerIndexer *indexer);
+GType tracker_indexer_get_type (void) G_GNUC_CONST;
+TrackerIndexer *tracker_indexer_new (gboolean reindex);
+gboolean tracker_indexer_set_running (TrackerIndexer *indexer,
+ gboolean should_be_running,
+ GError **error);
+gboolean tracker_indexer_get_running (TrackerIndexer *indexer,
+ gboolean *is_running,
+ GError **error);
+gboolean tracker_indexer_process_files (TrackerIndexer *indexer,
+ GStrv files,
+ GError **error);
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 Wed Jun 11 16:16:40 2008
@@ -86,6 +86,7 @@
case SIGSEGV:
/* we are screwed if we get this so exit immediately! */
exit (EXIT_FAILURE);
+
case SIGBUS:
case SIGILL:
case SIGFPE:
@@ -96,15 +97,6 @@
in_loop = TRUE;
g_main_loop_quit (main_loop);
- /*
- tracker->is_running = FALSE;
- tracker_end_watching ();
-
- g_timeout_add_full (G_PRIORITY_LOW,
- 1,
- (GSourceFunc) tracker_do_cleanup,
- g_strdup (g_strsignal (signo)), NULL);
- */
default:
if (g_strsignal (signo)) {
g_warning ("Received signal: %s", g_strsignal (signo));
Modified: branches/xesam-support/src/trackerd/Makefile.am
==============================================================================
--- branches/xesam-support/src/trackerd/Makefile.am (original)
+++ branches/xesam-support/src/trackerd/Makefile.am Wed Jun 11 16:16:40 2008
@@ -12,6 +12,7 @@
$(QDBM_CFLAGS) \
$(DBUS_CFLAGS) \
$(PANGO_CFLAGS) \
+ $(GIO_CFLAGS) \
$(GMODULE_CFLAGS) \
$(GTHREAD_CFLAGS) \
$(GLIB2_CFLAGS)
@@ -47,30 +48,13 @@
#
-# Use either inotify, fam, win32 or poll API to know about file
-# changes and in that order.
-#
-if HAVE_INOTIFY
-watcher_sources = tracker-watcher-inotify.c linux-inotify-syscalls.h
-else # HAVE_INOTIFY
-if HAVE_FAM
-watcher_sources = tracker-watcher-fam.c
-else # HAVE_FAM
-if OS_WIN32
-watcher_sources = tracker-watcher-win.c
-else # OS_WIN32
-watcher_sources = tracker-watcher-poll.c
-endif # OS_WIN32
-endif # HAVE_FAM
-endif # HAVE_INOTIFY
-
-#
# Daemon sources
#
bin_PROGRAMS = trackerd
trackerd_SOURCES = \
- $(watcher_sources) \
+ tracker-crawler.c \
+ tracker-crawler.h \
tracker-daemon.c \
tracker-daemon.h \
tracker-db.c \
@@ -97,6 +81,8 @@
tracker-marshal-main.c \
tracker-metadata.c \
tracker-metadata.h \
+ tracker-monitor.c \
+ tracker-monitor.h \
tracker-query-tree.c \
tracker-query-tree.h \
tracker-rdf-query.c \
@@ -107,7 +93,6 @@
tracker-status.h \
tracker-utils.c \
tracker-utils.h \
- tracker-watcher.h \
tracker-xesam.c \
tracker-xesam.h \
tracker-xesam-manager.c \
@@ -134,6 +119,7 @@
$(QDBM_LIBS) \
$(DBUS_LIBS) \
$(PANGO_LIBS) \
+ $(GIO_LIBS) \
$(GMODULE_LIBS) \
$(GTHREAD_LIBS) \
$(GLIB2_LIBS) \
Modified: branches/xesam-support/src/trackerd/tracker-daemon.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-daemon.c (original)
+++ branches/xesam-support/src/trackerd/tracker-daemon.c Wed Jun 11 16:16:40 2008
@@ -508,7 +508,7 @@
priv = GET_PRIV (object);
- g_message ("Tracker daemon attempting to restart");
+ g_message ("Tracker daemon attempting to shutdown");
priv->tracker->reindex = reindex;
Modified: branches/xesam-support/src/trackerd/tracker-db.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-db.c (original)
+++ branches/xesam-support/src/trackerd/tracker-db.c Wed Jun 11 16:16:40 2008
@@ -40,7 +40,7 @@
#include "tracker-db.h"
#include "tracker-process-files.h"
#include "tracker-query-tree.h"
-#include "tracker-watcher.h"
+#include "tracker-monitor.h"
#include "tracker-xesam-manager.h"
#define ZLIBBUFSIZ 8192
@@ -556,12 +556,12 @@
const gchar *moved_to_uri)
{
/* Stop watching old dir, start watching new dir */
- tracker_watcher_remove_dir (moved_from_uri, TRUE, iface);
+ tracker_monitor_remove (moved_from_uri, TRUE, iface);
tracker_db_file_move (iface, moved_from_uri, moved_to_uri);
directory_move_files (iface, moved_from_uri, moved_to_uri);
- tracker_watcher_add_dir (moved_to_uri, iface);
+ tracker_monitor_add (moved_to_uri, iface);
}
static gint
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 Wed Jun 11 16:16:40 2008
@@ -41,7 +41,6 @@
#include "tracker-xesam-glue.h"
#include "tracker-indexer-client.h"
#include "tracker-utils.h"
-#include "tracker-watcher.h"
static DBusGConnection *connection;
static DBusGProxy *proxy;
@@ -312,14 +311,14 @@
return NULL;
}
-DBusGProxy *
-tracker_dbus_start_indexer (void)
+void
+tracker_dbus_indexer_start (void)
{
GError *error = NULL;
if (!connection) {
g_critical ("DBus support must be initialized before starting the indexer!");
- return NULL;
+ return;
}
if (!proxy_for_indexer) {
@@ -331,7 +330,7 @@
if (!proxy_for_indexer) {
g_critical ("Couldn't create a DBusGProxy to the indexer service");
- return NULL;
+ return;
}
}
@@ -343,6 +342,35 @@
g_warning ("Couldn't start indexer, %s",
error->message);
}
+}
+
+DBusGProxy *
+tracker_dbus_indexer_get_proxy (void)
+{
+ GError *error = NULL;
+
+ if (!connection) {
+ g_critical ("DBus support must be initialized before starting the indexer!");
+ return NULL;
+ }
+
+ 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 NULL;
+ }
+ }
+
+ if (error) {
+ g_warning ("Couldn't start indexer, %s",
+ error->message);
+ }
return proxy_for_indexer;
}
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 Wed Jun 11 16:16:40 2008
@@ -33,11 +33,12 @@
G_BEGIN_DECLS
-gboolean tracker_dbus_init (TrackerConfig *config);
-void tracker_dbus_shutdown (void);
-gboolean tracker_dbus_register_objects (Tracker *tracker);
-GObject *tracker_dbus_get_object (GType type);
-DBusGProxy *tracker_dbus_start_indexer (void);
+gboolean tracker_dbus_init (TrackerConfig *config);
+void tracker_dbus_shutdown (void);
+gboolean tracker_dbus_register_objects (Tracker *tracker);
+GObject *tracker_dbus_get_object (GType type);
+void tracker_dbus_indexer_start (void);
+DBusGProxy *tracker_dbus_indexer_get_proxy (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 Wed Jun 11 16:16:40 2008
@@ -43,7 +43,6 @@
#include "tracker-email-plugin.h"
#include "tracker-dbus.h"
#include "tracker-daemon.h"
-#include "tracker-watcher.h"
#include "tracker-status.h"
#include "tracker-utils.h"
#include "tracker-main.h"
Modified: branches/xesam-support/src/trackerd/tracker-email-kmail.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-email-kmail.c (original)
+++ branches/xesam-support/src/trackerd/tracker-email-kmail.c Wed Jun 11 16:16:40 2008
@@ -34,8 +34,8 @@
#include "tracker-email-utils.h"
#include "tracker-db-email.h"
#include "tracker-main.h"
+#include "tracker-monitor.h"
#include "tracker-process-files.h"
-#include "tracker-watcher.h"
typedef struct {
gchar *imap_path;
@@ -663,7 +663,7 @@
(( in_imap_dir && dir_name[0] == '.' && g_str_has_suffix (dir_name, ".directory")) ||
!in_imap_dir )
) {
- if (!tracker_watcher_is_dir_watched (dir_path, iface)) {
+ if (!tracker_monitor_is_watched (dir_path, iface)) {
/* if we are in a maildir directory, we will only index emails in directory "cur" */
gchar *dir_cur = g_build_filename (dir_path, "cur", 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 Wed Jun 11 16:16:40 2008
@@ -40,8 +40,6 @@
#include "tracker-dbus.h"
#include "tracker-daemon.h"
#include "tracker-status.h"
-#include "tracker-watcher.h"
-
#define MODEST_HOME ".modest"
#define MODEST_HOME_CACHE_MAIL MODEST_HOME G_DIR_SEPARATOR_S "cache" G_DIR_SEPARATOR_S "mail"
Modified: branches/xesam-support/src/trackerd/tracker-email-thunderbird.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-email-thunderbird.c (original)
+++ branches/xesam-support/src/trackerd/tracker-email-thunderbird.c Wed Jun 11 16:16:40 2008
@@ -27,7 +27,6 @@
#include "tracker-email-plugin.h"
#include "tracker-db-email.h"
-#include "tracker-watcher.h"
#include "tracker-main.h"
typedef enum
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 Wed Jun 11 16:16:40 2008
@@ -46,11 +46,12 @@
#include <libtracker-db/tracker-db-manager.h>
#include "tracker-email.h"
+#include "tracker-crawler.h"
#include "tracker-dbus.h"
#include "tracker-indexer.h"
+#include "tracker-monitor.h"
#include "tracker-process-files.h"
#include "tracker-status.h"
-#include "tracker-watcher.h"
#include "tracker-xesam-manager.h"
#ifdef OS_WIN32
@@ -138,7 +139,6 @@
static gboolean low_memory;
static gint throttle = -1;
static gint verbosity = -1;
-static gint initial_sleep = -1;
static GOptionEntry entries[] = {
{ "exclude-dir", 'e', 0,
@@ -158,8 +158,8 @@
N_("Disable any indexing or watching taking place"), NULL },
{ "verbosity", 'v', 0,
G_OPTION_ARG_INT, &verbosity,
- N_("Value that controls the level of logging. "
- "Valid values are 0 (displays/logs only errors), "
+ N_("Value that controls the level of logging."
+ "Valid values are: 0 (displays/logs only errors), "
"1 (minimal), 2 (detailed), and 3 (debug)"),
N_("VALUE") },
{ "throttle", 't', 0,
@@ -172,10 +172,6 @@
G_OPTION_ARG_NONE, &low_memory,
N_("Minimizes the use of memory but may slow indexing down"),
NULL },
- { "initial-sleep", 's', 0,
- G_OPTION_ARG_INT, &initial_sleep,
- N_("Initial sleep time, just before indexing, in seconds"),
- NULL },
{ "language", 'l', 0,
G_OPTION_ARG_STRING, &language,
N_("Language to use for stemmer and stop words list "
@@ -408,7 +404,7 @@
case SIGTERM:
case SIGINT:
in_loop = TRUE;
- tracker->is_running = FALSE;
+ tracker_shutdown ();
default:
if (g_strsignal (signo)) {
@@ -790,10 +786,6 @@
tracker_config_set_verbosity (tracker->config, verbosity);
}
- if (initial_sleep > -1) {
- tracker_config_set_initial_sleep (tracker->config, initial_sleep);
- }
-
/* Initialise other subsystems */
tracker_log_init (log_filename, tracker_config_get_verbosity (tracker->config));
g_print ("Starting log:\n File:'%s'\n", log_filename);
@@ -804,7 +796,7 @@
sanity_check_option_values ();
- if (!tracker_watcher_init ()) {
+ if (!tracker_monitor_init ()) {
return EXIT_FAILURE;
}
@@ -814,14 +806,18 @@
tracker_ontology_init ();
tracker_xesam_ontology_init ();
tracker_db_init ();
- tracker_db_manager_init (FALSE, data_dir, user_data_dir, sys_tmp_dir); /* Using TRUE=broken */
+ tracker_db_manager_init (TRUE, data_dir, user_data_dir, sys_tmp_dir); /* Using TRUE=broken */
tracker_xesam_manager_init ();
tracker_email_start_email_watching (tracker_config_get_email_client (tracker->config));
+ tracker->crawler = tracker_crawler_new ();
+
#ifdef HAVE_HAL
tracker->hal = tracker_hal_new ();
+ tracker_crawler_set_hal (tracker->crawler, tracker->hal);
#endif /* HAVE_HAL */
-
+
+ tracker_crawler_set_config (tracker->crawler, tracker->config);
umask (077);
@@ -839,49 +835,25 @@
return EXIT_FAILURE;
}
- if (!tracker->readonly) {
- tracker_process_files_init (tracker);
+ g_message ("Waiting for DBus requests...");
+ if (!tracker->readonly) {
if (tracker_config_get_enable_indexing (tracker->config)) {
- gint initial_sleep;
+ /* Get files first */
+ tracker_crawler_start (tracker->crawler);
- 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) {
- break;
- }
- }
-
if (tracker->is_running) {
DBusGProxy *proxy;
- g_message ("Indexing enabled, starting...");
- proxy = tracker_dbus_start_indexer ();
+
+ proxy = tracker_dbus_indexer_get_proxy ();
tracker_xesam_subscribe_index_updated (proxy);
}
-#if 0
- thread = g_thread_create_full ((GThreadFunc) tracker_process_files,
- tracker,
- (gulong) tracker_config_get_thread_stack_size (tracker->config),
- TRUE,
- FALSE,
- G_THREAD_PRIORITY_NORMAL,
- NULL);
-#endif
} else {
g_message ("Indexing disabled, not starting");
}
}
- g_message ("Waiting for DBus requests...");
-
if (tracker->is_running) {
main_loop = g_main_loop_new (NULL, FALSE);
g_main_loop_run (main_loop);
@@ -889,6 +861,10 @@
g_message ("Shutting down...\n");
+ if (tracker->crawler) {
+ g_object_unref (tracker->crawler);
+ }
+
/*
* Shutdown the daemon
*/
@@ -907,14 +883,13 @@
shutdown_directories ();
/* Shutdown major subsystems */
- tracker_process_files_shutdown ();
tracker_email_end_email_watching ();
tracker_dbus_shutdown ();
tracker_xesam_manager_shutdown ();
tracker_db_shutdown ();
tracker_db_manager_shutdown ();
tracker_ontology_shutdown ();
- tracker_watcher_shutdown ();
+ tracker_monitor_shutdown ();
tracker_nfs_lock_shutdown ();
tracker_log_shutdown ();
@@ -940,6 +915,11 @@
void
tracker_shutdown (void)
{
+ tracker->is_running = FALSE;
+
+ /* Stop any tight loop operations */
+ tracker_crawler_stop (tracker->crawler);
+
g_main_loop_quit (main_loop);
}
Modified: branches/xesam-support/src/trackerd/tracker-main.h
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-main.h (original)
+++ branches/xesam-support/src/trackerd/tracker-main.h Wed Jun 11 16:16:40 2008
@@ -36,6 +36,7 @@
#include <libtracker-db/tracker-db-action.h>
+#include "tracker-crawler.h"
#include "tracker-indexer.h"
G_BEGIN_DECLS
@@ -48,6 +49,8 @@
TrackerConfig *config;
TrackerLanguage *language;
+ TrackerCrawler *crawler;
+
gboolean is_running;
gboolean readonly;
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 Wed Jun 11 16:16:40 2008
@@ -48,7 +48,7 @@
#include "tracker-daemon.h"
#include "tracker-email.h"
#include "tracker-indexer.h"
-#include "tracker-watcher.h"
+#include "tracker-monitor.h"
#include "tracker-status.h"
#include "tracker-process-files.h"
@@ -251,7 +251,7 @@
continue;
}
- if (!tracker_watcher_add_dir (dir, iface)) {
+ if (!tracker_monitor_add (dir, iface)) {
g_warning ("Watch failed for:'%s'", dir);
}
}
@@ -400,7 +400,7 @@
tracker_db_directory_delete (iface, info->file_id, info->uri);
- tracker_watcher_remove_dir (info->uri, TRUE, iface);
+ tracker_monitor_remove (info->uri, TRUE, iface);
g_message ("Deleting directory:'%s' and subdirs", info->uri);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]