[tracker/libtracker-miner] Added default handlers for miner and crawler
- From: Martyn James Russell <mr src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/libtracker-miner] Added default handlers for miner and crawler
- Date: Wed, 19 Aug 2009 14:27:13 +0000 (UTC)
commit aeaed463c1a9e3272c179de4f92d27cb4fab7e4c
Author: Martyn Russell <martyn imendio com>
Date: Wed Aug 19 15:25:03 2009 +0100
Added default handlers for miner and crawler
This avoids us ignoring all files if we have no callbacks set up
src/libtracker-miner/tracker-crawler.c | 37 ++++++++++++++++----------
src/libtracker-miner/tracker-crawler.h | 15 +++++++++-
src/libtracker-miner/tracker-miner-process.c | 10 +++----
3 files changed, 40 insertions(+), 22 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-crawler.c b/src/libtracker-miner/tracker-crawler.c
index 2e7ba5e..a7d7c67 100644
--- a/src/libtracker-miner/tracker-crawler.c
+++ b/src/libtracker-miner/tracker-crawler.c
@@ -20,8 +20,6 @@
#include "config.h"
-#include <gio/gio.h>
-
#include "tracker-crawler.h"
#include "tracker-marshal.h"
@@ -81,11 +79,13 @@ typedef struct {
GHashTable *children;
} EnumeratorData;
-static void tracker_crawler_finalize (GObject *object);
-static void file_enumerate_next (GFileEnumerator *enumerator,
- EnumeratorData *ed);
-static void file_enumerate_children (TrackerCrawler *crawler,
- GFile *file);
+static void crawler_finalize (GObject *object);
+static gboolean process_defaults (TrackerCrawler *crawler,
+ GFile *file);
+static void file_enumerate_next (GFileEnumerator *enumerator,
+ EnumeratorData *ed);
+static void file_enumerate_children (TrackerCrawler *crawler,
+ GFile *file);
static guint signals[LAST_SIGNAL] = { 0, };
@@ -94,17 +94,19 @@ G_DEFINE_TYPE (TrackerCrawler, tracker_crawler, G_TYPE_OBJECT)
static void
tracker_crawler_class_init (TrackerCrawlerClass *klass)
{
- GObjectClass *object_class;
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ TrackerCrawlerClass *crawler_class = TRACKER_CRAWLER_CLASS (klass);
- object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = crawler_finalize;
- object_class->finalize = tracker_crawler_finalize;
+ crawler_class->process_directory = process_defaults;
+ crawler_class->process_file = process_defaults;
signals[PROCESS_DIRECTORY] =
g_signal_new ("process-directory",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
- 0,
+ G_STRUCT_OFFSET (TrackerCrawlerClass, process_directory),
NULL, NULL,
tracker_marshal_BOOLEAN__OBJECT,
G_TYPE_BOOLEAN,
@@ -114,7 +116,7 @@ tracker_crawler_class_init (TrackerCrawlerClass *klass)
g_signal_new ("process-file",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
- 0,
+ G_STRUCT_OFFSET (TrackerCrawlerClass, process_file),
NULL, NULL,
tracker_marshal_BOOLEAN__OBJECT,
G_TYPE_BOOLEAN,
@@ -124,7 +126,7 @@ tracker_crawler_class_init (TrackerCrawlerClass *klass)
g_signal_new ("finished",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
- 0,
+ G_STRUCT_OFFSET (TrackerCrawlerClass, finished),
NULL, NULL,
tracker_marshal_VOID__UINT_UINT_UINT_UINT,
G_TYPE_NONE,
@@ -151,7 +153,7 @@ tracker_crawler_init (TrackerCrawler *object)
}
static void
-tracker_crawler_finalize (GObject *object)
+crawler_finalize (GObject *object)
{
TrackerCrawlerPrivate *priv;
@@ -174,6 +176,13 @@ tracker_crawler_finalize (GObject *object)
G_OBJECT_CLASS (tracker_crawler_parent_class)->finalize (object);
}
+static gboolean
+process_defaults (TrackerCrawler *crawler,
+ GFile *file)
+{
+ return TRUE;
+}
+
TrackerCrawler *
tracker_crawler_new (void)
{
diff --git a/src/libtracker-miner/tracker-crawler.h b/src/libtracker-miner/tracker-crawler.h
index 6872c1c..62091ac 100644
--- a/src/libtracker-miner/tracker-crawler.h
+++ b/src/libtracker-miner/tracker-crawler.h
@@ -22,6 +22,7 @@
#define __TRACKERD_CRAWLER_H__
#include <glib-object.h>
+#include <gio/gio.h>
G_BEGIN_DECLS
@@ -37,12 +38,22 @@ typedef struct TrackerCrawlerClass TrackerCrawlerClass;
typedef struct TrackerCrawlerPrivate TrackerCrawlerPrivate;
struct TrackerCrawler {
- GObject parent;
+ GObject parent;
TrackerCrawlerPrivate *private;
};
struct TrackerCrawlerClass {
- GObjectClass parent;
+ GObjectClass parent;
+
+ gboolean (* process_directory) (TrackerCrawler *crawler,
+ GFile *file);
+ gboolean (* process_file) (TrackerCrawler *crawler,
+ GFile *file);
+ void (* finished) (TrackerCrawler *crawler,
+ guint directories_found,
+ guint directories_ignored,
+ guint files_found,
+ guint files_ignored);
};
GType tracker_crawler_get_type (void);
diff --git a/src/libtracker-miner/tracker-miner-process.c b/src/libtracker-miner/tracker-miner-process.c
index b7c6837..87bd89a 100644
--- a/src/libtracker-miner/tracker-miner-process.c
+++ b/src/libtracker-miner/tracker-miner-process.c
@@ -146,14 +146,12 @@ tracker_miner_process_class_init (TrackerMinerProcessClass *klass)
object_class->finalize = process_finalize;
- if (0) {
- process_class->check_file = process_defaults;
- process_class->check_directory = process_defaults;
- process_class->monitor_directory = process_defaults;
- }
-
miner_class->started = miner_started;
+ process_class->check_file = process_defaults;
+ process_class->check_directory = process_defaults;
+ process_class->monitor_directory = process_defaults;
+
/*
miner_class->stopped = miner_crawler_stopped;
miner_class->paused = miner_crawler_paused;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]