Merge lp:~seif/zeitgeist/bb-extract-methods into lp:~zeitgeist/zeitgeist/bluebird

Proposed by Seif Lotfy
Status: Merged
Merged at revision: 323
Proposed branch: lp:~seif/zeitgeist/bb-extract-methods
Merge into: lp:~zeitgeist/zeitgeist/bluebird
Diff against target: 136 lines (+54/-41)
1 file modified
src/engine.vala (+54/-41)
To merge this branch: bzr merge lp:~seif/zeitgeist/bb-extract-methods
Reviewer Review Type Date Requested Status
Zeitgeist Framework Team Pending
Review via email: mp+80316@code.launchpad.net

Description of the change

Extracted extract event and subj generation out of get_events into get_event_from_row and get_subject_from_row

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/engine.vala'
2--- src/engine.vala 2011-10-20 11:20:36 +0000
3+++ src/engine.vala 2011-10-25 10:46:39 +0000
4@@ -67,6 +67,49 @@
5 return extension_collection.get_extension_names ();
6 }
7
8+ private Event get_event_from_row (Sqlite.Statement stmt, uint32 event_id)
9+ {
10+ Event? event = new Event ();
11+ event.id = event_id;
12+ event.timestamp = stmt.column_int64 (EventViewRows.TIMESTAMP);
13+ event.interpretation = interpretations_table.get_value (
14+ stmt.column_int (EventViewRows.INTERPRETATION));
15+ event.manifestation = manifestations_table.get_value (
16+ stmt.column_int (EventViewRows.MANIFESTATION));
17+ event.actor = actors_table.get_value (
18+ stmt.column_int (EventViewRows.ACTOR));
19+ event.origin = stmt.column_text (
20+ EventViewRows.EVENT_ORIGIN_URI);
21+ // Load payload
22+ unowned uint8[] data = (uint8[])
23+ stmt.column_blob(EventViewRows.PAYLOAD);
24+ data.length = stmt.column_bytes(EventViewRows.PAYLOAD);
25+ if (data != null)
26+ {
27+ event.payload = new ByteArray();
28+ event.payload.append(data);
29+ }
30+ return event;
31+ }
32+
33+ private Subject get_subject_from_row (Sqlite.Statement stmt)
34+ {
35+ Subject? subject = new Subject ();
36+ subject.uri = stmt.column_text (EventViewRows.SUBJECT_URI);
37+ subject.text = stmt.column_text (EventViewRows.SUBJECT_TEXT);
38+ subject.storage = stmt.column_text (EventViewRows.SUBJECT_STORAGE);
39+ subject.origin = stmt.column_text (EventViewRows.SUBJECT_ORIGIN_URI);
40+ subject.current_uri = stmt.column_text (
41+ EventViewRows.SUBJECT_CURRENT_URI);
42+ subject.interpretation = interpretations_table.get_value (
43+ stmt.column_int (EventViewRows.SUBJECT_INTERPRETATION));
44+ subject.manifestation = manifestations_table.get_value (
45+ stmt.column_int (EventViewRows.SUBJECT_MANIFESTATION));
46+ subject.mimetype = mimetypes_table.get_value (
47+ stmt.column_int (EventViewRows.SUBJECT_MIMETYPE));
48+ return subject;
49+ }
50+
51 public GenericArray<Event?> get_events(uint32[] event_ids,
52 BusName? sender=null) throws EngineError
53 {
54@@ -76,11 +119,15 @@
55 // to enhance the performance of SQLite now, and event processing
56 // will be faster now being C.
57
58- Sqlite.Statement stmt;
59- int rc;
60-
61 if (event_ids.length == 0)
62 return new GenericArray<Event?> ();
63+
64+ var events = new HashTable<uint32, Event?> (direct_hash, direct_equal);
65+
66+ // Set up SQL statement
67+ Sqlite.Statement stmt;
68+ int rc;
69+
70 var sql_event_ids = database.get_sql_string_from_event_ids (event_ids);
71 string sql = """
72 SELECT * FROM event_view
73@@ -90,52 +137,17 @@
74 rc = db.prepare_v2 (sql, -1, out stmt);
75 database.assert_query_success (rc, "SQL error");
76
77- var events = new HashTable<uint32, Event?> (direct_hash, direct_equal);
78-
79+ // Create Events and Subjects from rows
80 while ((rc = stmt.step ()) == Sqlite.ROW)
81 {
82 uint32 event_id = (uint32) stmt.column_int64 (EventViewRows.ID);
83 Event? event = events.lookup (event_id);
84 if (event == null)
85 {
86- event = new Event ();
87- event.id = event_id;
88- event.timestamp = stmt.column_int64 (EventViewRows.TIMESTAMP);
89- event.interpretation = interpretations_table.get_value (
90- stmt.column_int (EventViewRows.INTERPRETATION));
91- event.manifestation = manifestations_table.get_value (
92- stmt.column_int (EventViewRows.MANIFESTATION));
93- event.actor = actors_table.get_value (
94- stmt.column_int (EventViewRows.ACTOR));
95- event.origin = stmt.column_text (
96- EventViewRows.EVENT_ORIGIN_URI);
97-
98- // Load payload
99- unowned uint8[] data = (uint8[])
100- stmt.column_blob(EventViewRows.PAYLOAD);
101- data.length = stmt.column_bytes(EventViewRows.PAYLOAD);
102- if (data != null)
103- {
104- event.payload = new ByteArray();
105- event.payload.append(data);
106- }
107+ event = get_event_from_row(stmt, event_id);
108 events.insert (event_id, event);
109 }
110-
111- Subject subject = new Subject ();
112- subject.uri = stmt.column_text (EventViewRows.SUBJECT_URI);
113- subject.text = stmt.column_text (EventViewRows.SUBJECT_TEXT);
114- subject.storage = stmt.column_text (EventViewRows.SUBJECT_STORAGE);
115- subject.origin = stmt.column_text (EventViewRows.SUBJECT_ORIGIN_URI);
116- subject.current_uri = stmt.column_text (
117- EventViewRows.SUBJECT_CURRENT_URI);
118- subject.interpretation = interpretations_table.get_value (
119- stmt.column_int (EventViewRows.SUBJECT_INTERPRETATION));
120- subject.manifestation = manifestations_table.get_value (
121- stmt.column_int (EventViewRows.SUBJECT_MANIFESTATION));
122- subject.mimetype = mimetypes_table.get_value (
123- stmt.column_int (EventViewRows.SUBJECT_MIMETYPE));
124-
125+ Subject subject = get_subject_from_row(stmt);
126 event.add_subject(subject);
127 }
128 if (rc != Sqlite.DONE)
129@@ -144,6 +156,7 @@
130 rc, db.errmsg ());
131 }
132
133+ // Sort events according to the sequence of event_ids
134 var results = new GenericArray<Event?> ();
135 results.length = event_ids.length;
136 int i = 0;

Subscribers

People subscribed via source and target branches