tracker r1463 - in branches/indexer-split: . src/trackerd
- From: mr svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r1463 - in branches/indexer-split: . src/trackerd
- Date: Tue, 20 May 2008 12:02:28 +0000 (UTC)
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]