[tracker/libtracker-miner] Added default handlers for miner and crawler



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]