tracker r1463 - in branches/indexer-split: . src/trackerd



Author: mr
Date: Tue May 20 12:02:28 2008
New Revision: 1463
URL: http://svn.gnome.org/viewvc/tracker?rev=1463&view=rev

Log:
	* src/trackerd/tracker-db.[ch]: 
	* src/trackerd/tracker-inotify.c:
	* src/trackerd/tracker-main.c:
	* src/trackerd/tracker-main.h:
	* src/trackerd/tracker-process-files.[ch]:
	* src/trackerd/tracker-utils.c: Moved the
	tracker->file_process_queue and tracker->file_metadata_queue to
	tracker-process-files.c and wrapped the GAsyncQueue with an API
	for external modules to push TrackerDBFileInfo pointers into the
	queue.


Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/src/trackerd/tracker-db.c
   branches/indexer-split/src/trackerd/tracker-db.h
   branches/indexer-split/src/trackerd/tracker-inotify.c
   branches/indexer-split/src/trackerd/tracker-main.c
   branches/indexer-split/src/trackerd/tracker-main.h
   branches/indexer-split/src/trackerd/tracker-process-files.c
   branches/indexer-split/src/trackerd/tracker-process-files.h
   branches/indexer-split/src/trackerd/tracker-utils.c

Modified: branches/indexer-split/src/trackerd/tracker-db.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-db.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-db.c	Tue May 20 12:02:28 2008
@@ -435,7 +435,7 @@
 	/* If busy - check if async queue has new stuff as we do not
 	 * need to notify then.
 	 */
-	if (g_async_queue_length (tracker->file_metadata_queue) > 1) {
+	if (tracker_process_files_metadata_queue_length () > 1) {
 		return;
 	}
 
@@ -471,7 +471,16 @@
 }
 
 static void
-make_pending_file (DBConnection *db_con, guint32 file_id, const char *uri, const char *moved_to_uri, const char *mime, int counter, TrackerDBAction action, gboolean is_directory, gboolean is_new, int service_type_id)
+make_pending_file (DBConnection *db_con, 
+		   guint32 file_id, 
+		   const char *uri, 
+		   const char *moved_to_uri, 
+		   const char *mime, 
+		   int counter, 
+		   TrackerDBAction action, 
+		   gboolean is_directory, 
+		   gboolean is_new, 
+		   int service_type_id)
 {
 	char *str_file_id, *str_action, *str_counter;
 
@@ -485,7 +494,9 @@
 
 		gboolean move_file = (action == TRACKER_DB_ACTION_FILE_MOVED_FROM || action == TRACKER_DB_ACTION_DIRECTORY_MOVED_FROM);
 			
-		if (!move_file && ((counter > 0) || (g_async_queue_length (tracker->file_process_queue) > tracker->max_process_queue_size))) {
+		if (!move_file && 
+		    ((counter > 0) || 
+		     (tracker_process_files_process_queue_length () > tracker->max_process_queue_size))) {
 
 			/* g_message ("************ counter for pending file %s is %d ***********", uri, counter); */
 			if (!mime) {
@@ -509,14 +520,15 @@
 				info->mime = g_strdup (mime);
 			}
 
-			if (action == TRACKER_DB_ACTION_FILE_MOVED_FROM || action == TRACKER_DB_ACTION_DIRECTORY_MOVED_FROM) {
+			if (action == TRACKER_DB_ACTION_FILE_MOVED_FROM || 
+			    action == TRACKER_DB_ACTION_DIRECTORY_MOVED_FROM) {
 				info->moved_to_uri = g_strdup (moved_to_uri);
 			}
 
 			if (action != TRACKER_DB_ACTION_EXTRACT_METADATA) {
-				g_async_queue_push (tracker->file_process_queue, info);
+				tracker_process_files_process_queue_push (info);
 			} else {
-				g_async_queue_push (tracker->file_metadata_queue, info);
+				tracker_process_files_metadata_queue_push (info);
 			}
 		}
 
@@ -560,31 +572,6 @@
 	g_free (str_action);
 }
 
-
-void
-tracker_db_add_to_extract_queue (DBConnection *db_con, TrackerDBFileInfo *info)
-{
-	int i;
-
-	g_return_if_fail (info);
-	g_return_if_fail (tracker_check_uri (info->uri));
-
-	i = g_async_queue_length (tracker->file_metadata_queue);
-
-	if (i < tracker->max_extract_queue_size) {
-
-		/* inc ref count to prevent it being deleted */
-		info = tracker_db_file_info_ref (info);
-
-		g_async_queue_push (tracker->file_metadata_queue, info);
-
-	} else {
-		tracker_db_insert_pending_file (db_con, info->file_id, info->uri, NULL, info->mime, 0, TRACKER_DB_ACTION_EXTRACT_METADATA, info->is_directory, info->is_new, info->service_type_id);
-	}
-
-	notify_meta_data_available ();
-}
-
 static void
 refresh_file_change_queue (gpointer data, gpointer user_data)
 {
@@ -663,7 +650,7 @@
 
 	info->mime = g_strdup ("unknown");
 
-	g_async_queue_push (tracker->file_process_queue, info);
+	tracker_process_files_process_queue_push (info);
 	
 	tracker_notify_file_data_available ();
 

Modified: branches/indexer-split/src/trackerd/tracker-db.h
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-db.h	(original)
+++ branches/indexer-split/src/trackerd/tracker-db.h	Tue May 20 12:02:28 2008
@@ -70,8 +70,6 @@
 						    const gchar          *uri,
 						    gint                  counter,
 						    TrackerDBAction       action);
-void               tracker_db_add_to_extract_queue (DBConnection         *db_con,
-						    TrackerDBFileInfo    *info);
 gboolean           tracker_db_has_pending_files    (DBConnection         *db_con);
 gboolean           tracker_db_has_pending_metadata (DBConnection         *db_con);
 void               tracker_db_index_service        (DBConnection         *db_con,

Modified: branches/indexer-split/src/trackerd/tracker-inotify.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-inotify.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-inotify.c	Tue May 20 12:02:28 2008
@@ -119,7 +119,7 @@
 		parent = g_path_get_dirname (info->uri);
 
 		if (tracker_file_is_valid (parent)) {
-			g_async_queue_push (tracker->file_process_queue, info);
+                        tracker_process_files_process_queue_push (info);
 			tracker_notify_file_data_available ();
 		} else {
 			tracker_db_file_info_free (info);

Modified: branches/indexer-split/src/trackerd/tracker-main.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-main.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-main.c	Tue May 20 12:02:28 2008
@@ -648,12 +648,6 @@
 	db_con->word_index = tracker->file_index;
 
 	tracker_db_get_static_data (db_con);
-
-	tracker->file_metadata_queue = g_async_queue_new ();
-
-	if (!tracker->readonly) {
-		tracker->file_process_queue = g_async_queue_new ();
-	}
 }
 
 static gboolean 
@@ -1067,15 +1061,6 @@
 
 	shutdown_locations ();
 
-	/* Clean up other struct members */
-	if (tracker->file_process_queue) {
-		g_async_queue_unref (tracker->file_process_queue);
-	}
-
-	if (tracker->file_metadata_queue) {
-		g_async_queue_unref (tracker->file_metadata_queue);
-	}
-
 	return EXIT_SUCCESS;
 }
 

Modified: branches/indexer-split/src/trackerd/tracker-main.h
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-main.h	(original)
+++ branches/indexer-split/src/trackerd/tracker-main.h	Tue May 20 12:02:28 2008
@@ -115,9 +115,6 @@
 	gint              word_count;
 	gint              word_update_count; 
 
-	GAsyncQueue      *file_process_queue;
-	GAsyncQueue      *file_metadata_queue; 
-
 	GMutex           *files_check_mutex;
 	GMutex           *files_signal_mutex;
 	GCond            *files_signal_cond;

Modified: branches/indexer-split/src/trackerd/tracker-process-files.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-process-files.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-process-files.c	Tue May 20 12:02:28 2008
@@ -53,6 +53,8 @@
 #include "tracker-process-files.h"
 
 static GAsyncQueue  *dir_queue;
+static GAsyncQueue  *file_metadata_queue;
+static GAsyncQueue  *file_process_queue;
 
 static GSList       *ignore_pattern_list;
 static GSList       *temp_black_list;
@@ -638,7 +640,7 @@
         
         tracker = (Tracker*) user_data;
         info = tracker_db_file_info_new (uri, TRACKER_DB_ACTION_CHECK, 0, 0);
-	g_async_queue_push (tracker->file_process_queue, info);
+	g_async_queue_push (file_process_queue, info);
 }
 
 static void
@@ -1527,6 +1529,8 @@
         object = tracker_dbus_get_object (TRACKER_TYPE_DBUS_DAEMON);
 
 	dir_queue = g_async_queue_new ();
+	file_metadata_queue = g_async_queue_new ();
+	file_process_queue = g_async_queue_new ();
 
         tracker->pause_io = TRUE;
 
@@ -1630,7 +1634,7 @@
                                                tracker->pause_io,
                                                tracker_config_get_enable_indexing (tracker->config));
 
-		info = g_async_queue_try_pop (tracker->file_process_queue);
+		info = g_async_queue_try_pop (file_process_queue);
 
 		/* Check pending table if we haven't got anything */
 		if (!info) {
@@ -1680,7 +1684,7 @@
 								   -1);
 
 					info_tmp = tracker_db_file_info_new (uri, tmp_action, 0, TRACKER_DB_WATCH_OTHER);
-					g_async_queue_push (tracker->file_process_queue, info_tmp);
+					g_async_queue_push (file_process_queue, info_tmp);
 					pushed_events = TRUE;
 
 					valid = tracker_db_result_set_iter_next (result_set);
@@ -1762,6 +1766,14 @@
 	tracker_db_close_all (db_con);
 
         /* Clean up */
+	if (file_process_queue) {
+		g_async_queue_unref (file_process_queue);
+	}
+
+	if (file_metadata_queue) {
+		g_async_queue_unref (file_metadata_queue);
+	}
+
 	if (dir_queue) {
 		g_async_queue_unref (dir_queue);
 	}
@@ -2037,3 +2049,32 @@
                                
         return TRUE;
 }
+
+gint
+tracker_process_files_metadata_queue_length (void)
+{
+        return g_async_queue_length (file_metadata_queue);
+}
+
+void
+tracker_process_files_metadata_queue_push (TrackerDBFileInfo *info)
+{
+        g_return_if_fail (info != NULL);
+
+        g_async_queue_push (file_metadata_queue, info);
+}
+
+gint
+tracker_process_files_process_queue_length (void)
+{
+        return g_async_queue_length (file_process_queue);
+}
+
+void
+tracker_process_files_process_queue_push (TrackerDBFileInfo *info)
+{
+        g_return_if_fail (info != NULL);
+
+        g_async_queue_push (file_process_queue, info);
+}
+

Modified: branches/indexer-split/src/trackerd/tracker-process-files.h
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-process-files.h	(original)
+++ branches/indexer-split/src/trackerd/tracker-process-files.h	Tue May 20 12:02:28 2008
@@ -32,26 +32,34 @@
 G_BEGIN_DECLS
 
 /* Thread entry point */
-gpointer tracker_process_files                        (gpointer            data);
-gboolean tracker_process_files_should_be_watched      (TrackerConfig      *config,
-                                                       const gchar        *uri);
-gboolean tracker_process_files_should_be_crawled      (Tracker            *tracker,
-                                                       const gchar        *uri);
-gboolean tracker_process_files_should_be_ignored      (const char         *uri);
+gpointer tracker_process_files                         (gpointer            data);
+gboolean tracker_process_files_should_be_watched       (TrackerConfig      *config,
+							const gchar        *uri);
+gboolean tracker_process_files_should_be_crawled       (Tracker            *tracker,
+							const gchar        *uri);
+gboolean tracker_process_files_should_be_ignored       (const char         *uri);
 
 /* Black list API */
-GSList  *tracker_process_files_get_temp_black_list    (void);
-void     tracker_process_files_set_temp_black_list    (GSList             *black_list);
-void     tracker_process_files_append_temp_black_list (const gchar        *str);
+GSList  *tracker_process_files_get_temp_black_list     (void);
+void     tracker_process_files_set_temp_black_list     (GSList             *black_list);
+void     tracker_process_files_append_temp_black_list  (const gchar        *str);
 
 /* File/Directory API */
-void     tracker_process_files_get_all_dirs           (Tracker            *tracker,
-                                                       const char         *dir,
-                                                       GSList            **files);
-GSList * tracker_process_files_get_files_with_prefix  (Tracker            *tracker,
-                                                       const char         *dir,
-                                                       const char         *prefix);
-gboolean tracker_process_files_is_file_info_valid     (TrackerDBFileInfo  *info);
+void     tracker_process_files_get_all_dirs            (Tracker            *tracker,
+							const char         *dir,
+							GSList            **files);
+GSList * tracker_process_files_get_files_with_prefix   (Tracker            *tracker,
+							const char         *dir,
+							const char         *prefix);
+gboolean tracker_process_files_is_file_info_valid      (TrackerDBFileInfo  *info);
+
+/* Metadata Queue API */
+gint     tracker_process_files_metadata_queue_length   (void);
+void     tracker_process_files_metadata_queue_push     (TrackerDBFileInfo  *info);
+
+/* Files Queue API */
+gint     tracker_process_files_process_queue_length    (void);
+void     tracker_process_files_process_queue_push      (TrackerDBFileInfo *info);
 
 G_END_DECLS
 

Modified: branches/indexer-split/src/trackerd/tracker-utils.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-utils.c	(original)
+++ branches/indexer-split/src/trackerd/tracker-utils.c	Tue May 20 12:02:28 2008
@@ -28,6 +28,7 @@
 
 #include "tracker-utils.h"
 #include "tracker-main.h"
+#include "tracker-process-files.h"
 
 extern Tracker *tracker;
 
@@ -80,7 +81,7 @@
 	}
 
 	/* If busy - check if async queue has new stuff as we do not need to notify then */
-	if (g_async_queue_length (tracker->file_process_queue) > 1) {
+	if (tracker_process_files_process_queue_length () > 1) {
 		return;
 	}
 



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