diff options
author | Seif Lotfy <seif@lotfy.com> | 2013-01-31 18:59:52 +0100 |
---|---|---|
committer | Seif Lotfy <seif@lotfy.com> | 2013-01-31 18:59:52 +0100 |
commit | c6eace7d4f9643e41bd3d1d7fe3d37542473d38f (patch) | |
tree | 32cfa1000710c370dedb851176bcf35f7bbb3c20 | |
parent | ebeaabe6b62ffe457c9291ae27ece04aff059a28 (diff) | |
download | zeitgeist-c6eace7d4f9643e41bd3d1d7fe3d37542473d38f.tar.gz |
fix reading
-rw-r--r-- | libzeitgeist/log.vala | 63 | ||||
-rw-r--r-- | test/dbus/remote-test.py | 3 |
2 files changed, 33 insertions, 33 deletions
diff --git a/libzeitgeist/log.vala b/libzeitgeist/log.vala index 1a270dc7..2af5c400 100644 --- a/libzeitgeist/log.vala +++ b/libzeitgeist/log.vala @@ -68,6 +68,7 @@ public class Log : QueuedProxyWrapper public Log () { + MainLoop mainloop = new MainLoop(); monitors = new HashTable<Monitor, int>(direct_hash, direct_equal); Bus.get_proxy<RemoteLog> (BusType.SESSION, Utils.ENGINE_DBUS_NAME, Utils.ENGINE_DBUS_PATH, 0, null, (obj, res) => @@ -76,7 +77,14 @@ public class Log : QueuedProxyWrapper { proxy = Bus.get_proxy.end (res); proxy_acquired (proxy); - dbreader = get_dbreader(); + + string datapath = proxy.datapath; + if (datapath != null && datapath != ":memory:" && + FileUtils.test(datapath, GLib.FileTest.EXISTS)) + { + set_database_file_path(datapath); + dbreader = new DbReader(); + } } catch (IOError err) { @@ -84,23 +92,9 @@ public class Log : QueuedProxyWrapper err.message); proxy_unavailable (err); } + mainloop.quit(); }); - } - - private DbReader get_dbreader () { - if (dbreader == null) { - string datapath = proxy.datapath; - if (datapath == null || datapath == ":memory:") - return null; - if (FileUtils.test(datapath, GLib.FileTest.EXISTS)) - { - set_database_file_path(datapath); - dbreader = new DbReader(); - return dbreader; - } - return null; - } - return dbreader; + mainloop.run(); } /** @@ -239,8 +233,6 @@ public class Log : QueuedProxyWrapper ResultType result_type, Cancellable? cancellable=null) throws Error { - if (dbreader == null) - get_dbreader(); if (dbreader == null) { var event_templates_cp = new GenericArray<Event>(); for (int i = 0; i < event_templates.length; i++) @@ -251,10 +243,8 @@ public class Log : QueuedProxyWrapper num_events, result_type, cancellable); return new SimpleResultSet (Events.from_variant (result)); } - else { - return new SimpleResultSet (dbreader.find_events(time_range, - event_templates, storage_state, num_events, result_type)); - } + return new SimpleResultSet (dbreader.find_events(time_range, + event_templates, storage_state, num_events, result_type)); } @@ -287,13 +277,17 @@ public class Log : QueuedProxyWrapper ResultType result_type, Cancellable? cancellable=null) throws Error { - var event_templates_cp = new GenericArray<Event>(); - for (int i = 0; i < event_templates.length; i++) - event_templates_cp.add(event_templates.get(i)); - yield wait_for_proxy (); - return yield proxy.find_event_ids (time_range.to_variant (), - Events.to_variant (event_templates_cp), storage_state, - num_events, result_type, cancellable); + if (dbreader == null) { + var event_templates_cp = new GenericArray<Event>(); + for (int i = 0; i < event_templates.length; i++) + event_templates_cp.add(event_templates.get(i)); + yield wait_for_proxy (); + return yield proxy.find_event_ids (time_range.to_variant (), + Events.to_variant (event_templates_cp), storage_state, + num_events, result_type, cancellable); + } + return dbreader.find_event_ids(time_range, + event_templates, storage_state, num_events, result_type); } /** @@ -319,9 +313,12 @@ public class Log : QueuedProxyWrapper uint32[] simple_event_ids = new uint32[event_ids.length]; for (int i = 0; i < event_ids.length; i++) simple_event_ids[i] = event_ids.index (i); - yield wait_for_proxy (); - var result = yield proxy.get_events (simple_event_ids, cancellable); - return new SimpleResultSet(Events.from_variant (result)); + if (dbreader == null) { + yield wait_for_proxy (); + var result = yield proxy.get_events (simple_event_ids, cancellable); + return new SimpleResultSet(Events.from_variant (result)); + } + return new SimpleResultSet (dbreader.get_events(simple_event_ids)); } /** diff --git a/test/dbus/remote-test.py b/test/dbus/remote-test.py index 72f80a06..a3702d89 100644 --- a/test/dbus/remote-test.py +++ b/test/dbus/remote-test.py @@ -80,12 +80,15 @@ class ZeitgeistRemoteAPITest(testutils.RemoteTestCase): # Try deleting a non-existant event events = parse_events("test/data/single_event.js") + print "========================= 1" time_range = self.deleteEventsAndWait([int(ids[0]) + 1000]) self.assertEquals(time_range[0], time_range[1]) self.assertEquals(time_range[0], -1) + print "========================= 2" # Make sure the inserted event is still there retrieved_events = self.getEventsAndWait(ids) + print "========================= 3" self.assertEquals(1, len(retrieved_events)) self.assertEventsEqual(retrieved_events[0], events[0]) |