summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeif Lotfy <seif@lotfy.com>2013-01-31 18:59:52 +0100
committerSeif Lotfy <seif@lotfy.com>2013-01-31 18:59:52 +0100
commitc6eace7d4f9643e41bd3d1d7fe3d37542473d38f (patch)
tree32cfa1000710c370dedb851176bcf35f7bbb3c20
parentebeaabe6b62ffe457c9291ae27ece04aff059a28 (diff)
downloadzeitgeist-c6eace7d4f9643e41bd3d1d7fe3d37542473d38f.tar.gz
fix reading
-rw-r--r--libzeitgeist/log.vala63
-rw-r--r--test/dbus/remote-test.py3
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])