tracker r1402 - in branches/xesam-support: . data src/trackerd
- From: pvanhoof svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r1402 - in branches/xesam-support: . data src/trackerd
- Date: Tue, 13 May 2008 12:57:02 +0100 (BST)
Author: pvanhoof
Date: Tue May 13 11:57:02 2008
New Revision: 1402
URL: http://svn.gnome.org/viewvc/tracker?rev=1402&view=rev
Log:
2008-05-13 Philip Van Hoof <pvanhoof gnome org>
* src/trackerd/*xesam*: Various infrastructure for Xesam added
Modified:
branches/xesam-support/ChangeLog
branches/xesam-support/data/sqlite-stored-procs.sql
branches/xesam-support/src/trackerd/tracker-db-sqlite.c
branches/xesam-support/src/trackerd/tracker-db-sqlite.h
branches/xesam-support/src/trackerd/tracker-xesam-live-search.c
branches/xesam-support/src/trackerd/tracker-xesam-query.c
Modified: branches/xesam-support/data/sqlite-stored-procs.sql
==============================================================================
--- branches/xesam-support/data/sqlite-stored-procs.sql (original)
+++ branches/xesam-support/data/sqlite-stored-procs.sql Tue May 13 11:57:02 2008
@@ -31,6 +31,7 @@
GetLiveSearchDeletedIDs SELECT E.ServiceID FROM Events as E, LiveSearches as X WHERE E.ServiceID = X.ServiceID AND X.SearchID = ? AND E.EventType IS 'Delete';
GetLiveSearchHitCount SELECT count(*) FROM LiveSearches WHERE SearchID = ?;
+LiveSearchStopSearch DELETE FROM LiveSearches as X WHERE E.SearchID = ?
GetNewEventID SELECT OptionValue FROM Options WHERE OptionKey = 'EventSequence';
UpdateNewEventID UPDATE Options set OptionValue = ? WHERE OptionKey = 'EventSequence';
Modified: branches/xesam-support/src/trackerd/tracker-db-sqlite.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-db-sqlite.c (original)
+++ branches/xesam-support/src/trackerd/tracker-db-sqlite.c Tue May 13 11:57:02 2008
@@ -3164,8 +3164,6 @@
}
-GStaticRecMutex events_table_lock = G_STATIC_REC_MUTEX_INIT;
-
TrackerDBResultSet*
tracker_db_get_live_search_hit_count (DBConnection *db_con, const gchar *search_id)
{
@@ -3181,28 +3179,32 @@
{
TrackerDBResultSet *result;
- /* This happens in the GMainLoop */
- g_static_rec_mutex_lock (&events_table_lock);
-
- /* Uses the Events table */
tracker_debug ("GetLiveSearchDeletedIDs");
-
result = tracker_exec_proc (db_con->cache, "GetLiveSearchDeletedIDs", search_id, NULL);
- g_static_rec_mutex_unlock (&events_table_lock);
-
return result;
}
+void
+tracker_db_stop_live_search (DBConnection *db_con, const gchar *search_id)
+{
+ tracker_debug ("LiveSearchStopSearch");
+ tracker_exec_proc_no_reply (db_con->cache, "LiveSearchStopSearch", search_id, NULL);
+}
+
+
+void
+tracker_db_start_live_search (DBConnection *db_con, const gchar *from_query, const gchar *where_query, const gchar *search_id)
+{
+ tracker_debug ("LiveSearchStartSearch");
+ // TODO
+}
TrackerDBResultSet*
tracker_db_get_live_search_new_ids (DBConnection *db_con, const gchar *search_id, const gchar *columns, const gchar *from_query, const gchar *where_query)
{
TrackerDBResultSet *result;
- /* This happens in the GMainLoop */
- g_static_rec_mutex_lock (&events_table_lock);
-
// todo: this is a query for ottela to review
// Contract, in @result:
@@ -3228,8 +3230,6 @@
result = tracker_db_interface_execute_query (db_con->common->db, NULL, m_query);
- g_static_rec_mutex_unlock (&events_table_lock);
-
g_free (m_query);
return result;
@@ -3240,14 +3240,10 @@
{
TrackerDBResultSet *result;
- /* This happens in the GMainLoop */
- g_static_rec_mutex_lock (&events_table_lock);
- /* Uses the Events table */
tracker_debug ("SetEventsBeingHandled");
tracker_exec_proc_no_reply (db_con->cache, "SetEventsBeingHandled", NULL);
tracker_debug ("GetEvents");
result = tracker_exec_proc (db_con->cache, "GetEvents", NULL);
- g_static_rec_mutex_unlock (&events_table_lock);
return result;
}
@@ -3257,9 +3253,6 @@
{
TrackerDBResultSet *result_set;
- /* This happens in the GMainLoop */
- g_static_rec_mutex_lock (&events_table_lock);
-
/* Uses the Events table */
tracker_debug ("DeleteHandledEvents");
@@ -3267,8 +3260,6 @@
if (result_set)
g_object_unref (result_set);
- g_static_rec_mutex_unlock (&events_table_lock);
-
}
static guint32
@@ -3279,14 +3270,10 @@
int i;
guint32 id = 0;
- /* This happens in the indexer's thread */
- g_static_rec_mutex_lock (&events_table_lock);
-
result_set = tracker_exec_proc (db_con->common, "GetNewEventID", NULL);
if (!result_set) {
tracker_error ("ERROR: could not create event - GetNewEventID failed");
- g_static_rec_mutex_unlock (&events_table_lock);
return 0;
}
@@ -3312,8 +3299,6 @@
g_free (eid);
- g_static_rec_mutex_unlock (&events_table_lock);
-
return id;
}
@@ -3330,11 +3315,8 @@
int service_type_id;
char *str_service_type_id, *path, *name;
- g_static_rec_mutex_lock (&events_table_lock);
-
if (!info || !info->uri || !info->uri[0] || !service || !db_con) {
tracker_error ("ERROR: cannot create service");
- g_static_rec_mutex_unlock (&events_table_lock);
return 0;
}
@@ -3354,7 +3336,6 @@
if (!result_set) {
tracker_error ("ERROR: could not create service - GetNewID failed");
- g_static_rec_mutex_unlock (&events_table_lock);
return 0;
}
@@ -3459,8 +3440,6 @@
g_free (str_mtime);
g_free (str_offset);
- g_static_rec_mutex_unlock (&events_table_lock);
-
return id;
}
Modified: branches/xesam-support/src/trackerd/tracker-db-sqlite.h
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-db-sqlite.h (original)
+++ branches/xesam-support/src/trackerd/tracker-db-sqlite.h Tue May 13 11:57:02 2008
@@ -361,11 +361,13 @@
void tracker_free_metadata_field (FieldData *field_data);
-TrackerDBResultSet *tracker_get_xesam_metadata_names (DBConnection *db_con, const char *name);
-TrackerDBResultSet *tracker_get_xesam_service_names (DBConnection *db_con, const char *name);
+TrackerDBResultSet *tracker_get_xesam_metadata_names (DBConnection *db_con, const char *name);
+TrackerDBResultSet *tracker_get_xesam_service_names (DBConnection *db_con, const char *name);
-gboolean tracker_db_load_xesam_service_file (DBConnection *db_con, const char *filename);
+gboolean tracker_db_load_xesam_service_file (DBConnection *db_con, const char *filename);
gboolean tracker_db_create_xesam_lookup (DBConnection *db_con);
+void tracker_db_stop_live_search (DBConnection *db_con, const gchar *search_id);
+void tracker_db_start_live_search (DBConnection *db_con, const gchar *from_query, const gchar *where_query, const gchar *search_id);
G_END_DECLS
Modified: branches/xesam-support/src/trackerd/tracker-xesam-live-search.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-xesam-live-search.c (original)
+++ branches/xesam-support/src/trackerd/tracker-xesam-live-search.c Tue May 13 11:57:02 2008
@@ -349,10 +349,20 @@
GError **error)
{
TrackerXesamLiveSearchPriv *priv = self->priv;
+
if (priv->closed)
g_set_error (error, TRACKER_XESAM_ERROR,
TRACKER_XESAM_ERROR_SEARCH_CLOSED,
"Search was already closed");
+ else {
+ DBConnection *db_con = NULL;
+ TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
+
+ g_object_get (proxy, "db-connection", &db_con, NULL);
+ tracker_db_stop_live_search (db_con,
+ tracker_xesam_live_search_get_id (self));
+ }
+
priv->closed = TRUE;
priv->active = FALSE;
}
@@ -623,6 +633,16 @@
g_set_error (error, TRACKER_XESAM_ERROR,
TRACKER_XESAM_ERROR_SEARCH_CLOSED,
"Search is closed");
+ else {
+ DBConnection *db_con = NULL;
+ TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
+
+ g_object_get (proxy, "db-connection", &db_con, NULL);
+ tracker_db_start_live_search (db_con,
+ tracker_xesam_live_search_get_id (self),
+ tracker_xesam_live_search_get_from_query (self),
+ tracker_xesam_live_search_get_where_query (self));
+ }
priv->active = TRUE;
}
Modified: branches/xesam-support/src/trackerd/tracker-xesam-query.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-xesam-query.c (original)
+++ branches/xesam-support/src/trackerd/tracker-xesam-query.c Tue May 13 11:57:02 2008
@@ -1176,7 +1176,7 @@
char *result;
char *table_name;
- g_return_val_if_fail (query != NULL, NULL);
+ g_return_if_fail (query != NULL);
if (!inited) {
error_quark = g_quark_from_static_string ("XESAM-parser-error-quark");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]