diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libtracker-data/libtracker-data.vapi | 11 | ||||
-rw-r--r-- | src/libtracker-data/tracker-data-update.c | 7 | ||||
-rw-r--r-- | src/libtracker-data/tracker-data-update.h | 12 | ||||
-rw-r--r-- | src/tracker-store/tracker-resources.vala | 32 | ||||
-rw-r--r-- | src/tracker-store/tracker-store.vala | 27 |
5 files changed, 13 insertions, 76 deletions
diff --git a/src/libtracker-data/libtracker-data.vapi b/src/libtracker-data/libtracker-data.vapi index 9876d6a7a..2daae8061 100644 --- a/src/libtracker-data/libtracker-data.vapi +++ b/src/libtracker-data/libtracker-data.vapi @@ -180,17 +180,10 @@ namespace Tracker { } public delegate void StatementCallback (int graph_id, string? graph, int subject_id, string subject, int predicate_id, int object_id, string object, GLib.PtrArray rdf_types); - public delegate void CommitCallback (Data.Update.CommitType commit_type); + public delegate void CommitCallback (); [CCode (lower_case_cprefix="tracker_data_", cname = "TrackerData", cheader_filename = "libtracker-data/tracker-data-query.h,libtracker-data/tracker-data-update.h")] public class Data.Update : GLib.Object { - [CCode (cprefix = "TRACKER_DATA_COMMIT_")] - public enum CommitType { - REGULAR, - BATCH, - BATCH_LAST - } - public void begin_db_transaction (); public void commit_db_transaction (); public void begin_transaction () throws DBInterfaceError; @@ -199,7 +192,7 @@ namespace Tracker { public void update_sparql (string update) throws Sparql.Error; public GLib.Variant update_sparql_blank (string update) throws Sparql.Error; public void load_turtle_file (GLib.File file) throws Sparql.Error; - public void notify_transaction (CommitType commit_type); + public void notify_transaction (); public void delete_statement (string? graph, string subject, string predicate, string object) throws Sparql.Error, DateError; public void update_statement (string? graph, string subject, string predicate, string? object) throws Sparql.Error, DateError; public void insert_statement (string? graph, string subject, string predicate, string object) throws Sparql.Error, DateError; diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c index eb58caafd..e552b10ce 100644 --- a/src/libtracker-data/tracker-data-update.c +++ b/src/libtracker-data/tracker-data-update.c @@ -3628,15 +3628,14 @@ tracker_data_commit_transaction (TrackerData *data, } void -tracker_data_notify_transaction (TrackerData *data, - TrackerDataCommitType commit_type) +tracker_data_notify_transaction (TrackerData *data) { if (data->commit_callbacks) { guint n; for (n = 0; n < data->commit_callbacks->len; n++) { TrackerCommitDelegate *delegate; delegate = g_ptr_array_index (data->commit_callbacks, n); - delegate->callback (commit_type, delegate->user_data); + delegate->callback (delegate->user_data); } } } @@ -3679,7 +3678,7 @@ tracker_data_rollback_transaction (TrackerData *data) for (n = 0; n < data->rollback_callbacks->len; n++) { TrackerCommitDelegate *delegate; delegate = g_ptr_array_index (data->rollback_callbacks, n); - delegate->callback (TRUE, delegate->user_data); + delegate->callback (delegate->user_data); } } } diff --git a/src/libtracker-data/tracker-data-update.h b/src/libtracker-data/tracker-data-update.h index 75444875c..640df408a 100644 --- a/src/libtracker-data/tracker-data-update.h +++ b/src/libtracker-data/tracker-data-update.h @@ -47,12 +47,6 @@ typedef struct _TrackerDataClass TrackerDataClass; typedef struct _TrackerData TrackerData; typedef struct _TrackerDataClass TrackerDataClass; -typedef enum { - TRACKER_DATA_COMMIT_REGULAR, - TRACKER_DATA_COMMIT_BATCH, - TRACKER_DATA_COMMIT_BATCH_LAST -} TrackerDataCommitType; - typedef struct _TrackerData TrackerData; typedef struct _TrackerData TrackerDataUpdate; @@ -65,8 +59,7 @@ typedef void (*TrackerStatementCallback) (gint graph_id, const gchar *object, GPtrArray *rdf_types, gpointer user_data); -typedef void (*TrackerCommitCallback) (TrackerDataCommitType commit_type, - gpointer user_data); +typedef void (*TrackerCommitCallback) (gpointer user_data); GQuark tracker_data_error_quark (void); @@ -110,8 +103,7 @@ void tracker_data_begin_transaction_for_replay (TrackerData * GError **error); void tracker_data_commit_transaction (TrackerData *data, GError **error); -void tracker_data_notify_transaction (TrackerData *data, - TrackerDataCommitType commit_type); +void tracker_data_notify_transaction (TrackerData *data); void tracker_data_rollback_transaction (TrackerData *data); void tracker_data_update_sparql (TrackerData *data, const gchar *update, diff --git a/src/tracker-store/tracker-resources.vala b/src/tracker-store/tracker-resources.vala index ed34a5f56..fe805e196 100644 --- a/src/tracker-store/tracker-resources.vala +++ b/src/tracker-store/tracker-resources.vala @@ -51,7 +51,6 @@ public class Tracker.Resources : Object { DBusConnection connection; uint signal_timeout; - bool regular_commit_pending; Tracker.Config config; public signal void writeback ([DBus (signature = "a{iai}")] Variant subjects); @@ -268,49 +267,26 @@ public class Tracker.Resources : Object { Tracker.Writeback.reset_ready (); - regular_commit_pending = false; signal_timeout = 0; return false; } - void on_statements_committed (Tracker.Data.Update.CommitType commit_type) { + void on_statements_committed () { /* Class signal feature */ foreach (var cl in Tracker.Events.get_classes ()) { cl.transact_events (); } - if (!regular_commit_pending) { - // never cancel timeout for non-batch commits as we want - // to ensure that the signal corresponding to a certain - // update arrives within a fixed time limit - - // cancel it in all other cases - // in the BATCH_LAST case, the timeout will be reenabled - // further down but it's important to cancel it first - // to reset the timeout to 1 s starting now - if (signal_timeout != 0) { - Source.remove (signal_timeout); - signal_timeout = 0; - } - } - - if (commit_type == Tracker.Data.Update.CommitType.REGULAR) { - regular_commit_pending = true; - } - - if (regular_commit_pending || commit_type == Tracker.Data.Update.CommitType.BATCH_LAST) { - // timer wanted for non-batch commits and the last in a series of batch commits - if (signal_timeout == 0) { - signal_timeout = Timeout.add (config.graphupdated_delay, on_emit_signals); - } + if (signal_timeout == 0) { + signal_timeout = Timeout.add (config.graphupdated_delay, on_emit_signals); } /* Writeback feature */ Tracker.Writeback.transact (); } - void on_statements_rolled_back (Tracker.Data.Update.CommitType commit_type) { + void on_statements_rolled_back () { Tracker.Events.reset_pending (); Tracker.Writeback.reset_pending (); } diff --git a/src/tracker-store/tracker-store.vala b/src/tracker-store/tracker-store.vala index bcc776180..a555c67b0 100644 --- a/src/tracker-store/tracker-store.vala +++ b/src/tracker-store/tracker-store.vala @@ -138,29 +138,6 @@ public class Tracker.Store { } } - static Tracker.Data.Update.CommitType commit_type (Task task) { - switch (task.type) { - case TaskType.UPDATE: - case TaskType.UPDATE_BLANK: - if (((UpdateTask) task).priority == Priority.HIGH) { - return Tracker.Data.Update.CommitType.REGULAR; - } else if (update_queues[Priority.LOW].get_length () > 0) { - return Tracker.Data.Update.CommitType.BATCH; - } else { - return Tracker.Data.Update.CommitType.BATCH_LAST; - } - case TaskType.TURTLE: - if (update_queues[Priority.TURTLE].get_length () > 0) { - return Tracker.Data.Update.CommitType.BATCH; - } else { - return Tracker.Data.Update.CommitType.BATCH_LAST; - } - default: - warn_if_reached (); - return Tracker.Data.Update.CommitType.REGULAR; - } - } - static bool task_finish_cb (Task task) { var data = task.data_manager.get_data (); @@ -180,7 +157,7 @@ public class Tracker.Store { n_queries_running--; } else if (task.type == TaskType.UPDATE || task.type == TaskType.UPDATE_BLANK) { if (task.error == null) { - data.notify_transaction (commit_type (task)); + data.notify_transaction (); } task.callback (); @@ -189,7 +166,7 @@ public class Tracker.Store { update_running = false; } else if (task.type == TaskType.TURTLE) { if (task.error == null) { - data.notify_transaction (commit_type (task)); + data.notify_transaction (); } task.callback (); |