[tracker/clientapi-2: 10/20] libtracker-client: Make tracker_client_new() use flags
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/clientapi-2: 10/20] libtracker-client: Make tracker_client_new() use flags
- Date: Thu, 14 Jan 2010 12:32:53 +0000 (UTC)
commit 25c6607d4ca54170f9f4f00c00b2c7310eca3a1b
Author: Martyn Russell <martyn lanedo com>
Date: Wed Jan 13 11:19:02 2010 +0000
libtracker-client: Make tracker_client_new() use flags
.../libtracker-client-sections.txt | 36 ++++++++++++++-----
.../libtracker-client/libtracker-client.types | 1 +
src/libtracker-client/tracker.c | 31 ++++++++---------
src/libtracker-client/tracker.h | 17 ++++++++-
src/libtracker-gtk/tracker-keyword-store.c | 2 +-
src/libtracker-gtk/tracker-metadata-tile.c | 2 +-
src/libtracker-gtk/tracker-tag-bar.c | 2 +-
src/libtracker-miner/tracker-miner.c | 2 +-
src/plugins/evolution/tracker-evolution-plugin.c | 8 +++--
src/plugins/nautilus/tracker-tags-extension.c | 2 +-
src/plugins/nautilus/tracker-tags-view.c | 2 +-
src/tracker-search-bar/tracker-results-window.c | 2 +-
src/tracker-utils/tracker-import.c | 2 +-
src/tracker-utils/tracker-info.c | 2 +-
src/tracker-utils/tracker-search.c | 2 +-
src/tracker-utils/tracker-sparql.c | 2 +-
src/tracker-utils/tracker-stats.c | 2 +-
src/tracker-utils/tracker-status.c | 2 +-
src/tracker-utils/tracker-tag.c | 2 +-
src/tracker-writeback/tracker-writeback-consumer.c | 2 +-
20 files changed, 77 insertions(+), 46 deletions(-)
---
diff --git a/docs/reference/libtracker-client/libtracker-client-sections.txt b/docs/reference/libtracker-client/libtracker-client-sections.txt
index cad9f83..ded5eea 100644
--- a/docs/reference/libtracker-client/libtracker-client-sections.txt
+++ b/docs/reference/libtracker-client/libtracker-client-sections.txt
@@ -1,9 +1,21 @@
<SECTION>
<FILE>tracker</FILE>
-<TITLE>Connecting</TITLE>
+TRACKER_DBUS_SERVICE
+TRACKER_DBUS_OBJECT
+TRACKER_DBUS_INTERFACE_RESOURCES
+TRACKER_DBUS_INTERFACE_STATISTICS
+<TITLE>TrackerClient</TITLE>
TrackerClient
-tracker_connect
-tracker_disconnect
+TrackerClientFlags
+tracker_client_new
+<SUBSECTION Standard>
+TRACKER_CLIENT
+TRACKER_IS_CLIENT
+TRACKER_TYPE_CLIENT
+tracker_client_get_type
+TRACKER_CLIENT_CLASS
+TRACKER_IS_CLIENT_CLASS
+TRACKER_CLIENT_GET_CLASS
</SECTION>
<SECTION>
@@ -22,6 +34,7 @@ tracker_sparql_escape
<SECTION>
<FILE>tracker_statistics</FILE>
<TITLE>Statistics</TITLE>
+TrackerReplyGPtrArray
tracker_statistics_get
tracker_statistics_get_async
</SECTION>
@@ -31,26 +44,29 @@ tracker_statistics_get_async
<TITLE>Resources</TITLE>
TrackerReplyGPtrArray
TrackerReplyVoid
-tracker_resources_load
tracker_resources_sparql_query
-tracker_resources_sparql_update
-tracker_resources_sparql_update_blank
-tracker_resources_batch_sparql_update
-tracker_resources_batch_commit
-tracker_resources_load_async
tracker_resources_sparql_query_async
+tracker_resources_sparql_update
tracker_resources_sparql_update_async
+tracker_resources_sparql_update_blank
tracker_resources_sparql_update_blank_async
+tracker_resources_batch_sparql_update
tracker_resources_batch_sparql_update_async
+tracker_resources_batch_commit
tracker_resources_batch_commit_async
+tracker_resources_load
+tracker_resources_load_async
</SECTION>
<SECTION>
<FILE>tracker_search</FILE>
-<TITLE>Search (Deprecated)</TITLE>
+<TITLE>Search</TITLE>
TrackerReplyArray
+tracker_connect
+tracker_disconnect
tracker_search_metadata_by_text_async
tracker_search_metadata_by_text_and_location_async
tracker_search_metadata_by_text_and_mime_async
tracker_search_metadata_by_text_and_mime_and_location_async
</SECTION>
+
diff --git a/docs/reference/libtracker-client/libtracker-client.types b/docs/reference/libtracker-client/libtracker-client.types
index e69de29..cac95ce 100644
--- a/docs/reference/libtracker-client/libtracker-client.types
+++ b/docs/reference/libtracker-client/libtracker-client.types
@@ -0,0 +1 @@
+tracker_client_get_type
diff --git a/src/libtracker-client/tracker.c b/src/libtracker-client/tracker.c
index 671fec2..9fd2e01 100644
--- a/src/libtracker-client/tracker.c
+++ b/src/libtracker-client/tracker.c
@@ -353,11 +353,13 @@ client_constructed (GObject *object)
return;
}
- if (!start_service (dbus_g_connection_get_connection (connection),
- TRACKER_DBUS_SERVICE)) {
- /* unable to start tracker-store */
- dbus_g_connection_unref (connection);
- return;
+ if (private->force_service) {
+ if (!start_service (dbus_g_connection_get_connection (connection),
+ TRACKER_DBUS_SERVICE)) {
+ /* unable to start tracker-store */
+ dbus_g_connection_unref (connection);
+ return;
+ }
}
private->pending_calls = g_hash_table_new_full (NULL, NULL, NULL,
@@ -510,9 +512,7 @@ tracker_sparql_escape (const gchar *str)
/**
* tracker_client_new:
- * @enable_warnings: a #gboolean to determine if warnings are issued in
- * cases where they are found.
- * @service_start: start the D-Bus service if not running.
+ * @flags: This can be one or more combinations of #TrackerClientFlags
* @timeout: a #gint used for D-Bus call timeouts.
*
* Creates a connection over D-Bus to the Tracker store for doing data
@@ -525,15 +525,14 @@ tracker_sparql_escape (const gchar *str)
* g_object_unref() when finished with.
**/
TrackerClient *
-tracker_client_new (gboolean enable_warnings,
- gboolean service_start,
- gint timeout)
+tracker_client_new (TrackerClientFlags flags,
+ gint timeout)
{
g_type_init ();
return g_object_new (TRACKER_TYPE_CLIENT,
- "enable-warnings", enable_warnings,
- "force-service", service_start,
+ "enable-warnings", (flags & TRACKER_CLIENT_ENABLE_WARNINGS),
+ "force-service", !(flags & TRACKER_CLIENT_DO_NOT_START_SERVICE),
"timeout", timeout,
NULL);
}
@@ -671,8 +670,8 @@ tracker_resources_load (TrackerClient *client,
* GError *error = NULL;
* const gchar *query;
*
- * /* Create D-Bus connection with no warnings and no timeout. */
- * client = tracker_client_new (FALSE, TRUE, 0);
+ * /* Create D-Bus connection with no warnings and maximum timeout. */
+ * client = tracker_client_new (0, G_MAXINT);
* query = "SELECT"
* " ?album"
* " ?title"
@@ -1134,7 +1133,7 @@ TrackerClient *
tracker_connect (gboolean enable_warnings,
gint timeout)
{
- return tracker_client_new (enable_warnings, TRUE, timeout);
+ return tracker_client_new (TRACKER_CLIENT_ENABLE_WARNINGS, timeout);
}
/**
diff --git a/src/libtracker-client/tracker.h b/src/libtracker-client/tracker.h
index 0d3b9ca..cf54cf0 100644
--- a/src/libtracker-client/tracker.h
+++ b/src/libtracker-client/tracker.h
@@ -46,6 +46,20 @@ typedef struct {
} TrackerClientClass;
/**
+ * TrackerClientFlags:
+ * @TRACKER_CLIENT_ENABLE_WARNINGS: If supplied warnings will be
+ * produced upon erronous situations. This is usually turned off for
+ * applications that want to provide their own error reporting.
+ * @TRACKER_CLIENT_DO_NOT_START_SERVICE: If supplied then creating a
+ * new #TrackerClient #GObject will not attempt start the D-Bus
+ * service for tracker-store pre-emptively.
+ */
+typedef enum {
+ TRACKER_CLIENT_ENABLE_WARNINGS = 1 << 1,
+ TRACKER_CLIENT_DO_NOT_START_SERVICE = 1 << 2,
+} TrackerClientFlags;
+
+/**
* TrackerReplyGPtrArray:
* @result: a #GPtrArray with the results of the query.
* @error: a #GError.
@@ -72,8 +86,7 @@ typedef void (*TrackerReplyVoid) (GError *error,
gpointer user_data);
GType tracker_client_get_type (void) G_GNUC_CONST;
-TrackerClient *tracker_client_new (gboolean enable_warnings,
- gboolean service_start,
+TrackerClient *tracker_client_new (TrackerClientFlags flags,
gint timeout);
gboolean tracker_cancel_call (TrackerClient *client,
diff --git a/src/libtracker-gtk/tracker-keyword-store.c b/src/libtracker-gtk/tracker-keyword-store.c
index ae0bf25..1c38bbe 100644
--- a/src/libtracker-gtk/tracker-keyword-store.c
+++ b/src/libtracker-gtk/tracker-keyword-store.c
@@ -61,7 +61,7 @@ tracker_keyword_store_init (TrackerKeywordStore *store)
//setup private members
store->keywords = g_hash_table_new (g_str_hash, g_str_equal);
- store->tracker_client = tracker_client_new (TRUE, TRUE, -1);
+ store->tracker_client = tracker_client_new (TRACKER_CLIENT_ENABLE_WARNINGS, -1);
/* TODO: Port to SPARQL */
#if 0
diff --git a/src/libtracker-gtk/tracker-metadata-tile.c b/src/libtracker-gtk/tracker-metadata-tile.c
index 6d2e4d1..73d4efc 100644
--- a/src/libtracker-gtk/tracker-metadata-tile.c
+++ b/src/libtracker-gtk/tracker-metadata-tile.c
@@ -1352,7 +1352,7 @@ tracker_metadata_tile_new (void)
tile = g_object_new (TRACKER_TYPE_METADATA_TILE, NULL);
priv = TRACKER_METADATA_TILE_GET_PRIVATE (tile);
- priv->client = tracker_client_new (TRUE, TRUE, -1);
+ priv->client = tracker_client_new (TRACKER_CLIENT_ENABLE_WARNINGS, -1);
return tile;
}
diff --git a/src/libtracker-gtk/tracker-tag-bar.c b/src/libtracker-gtk/tracker-tag-bar.c
index f67bd70..8a8ca3e 100644
--- a/src/libtracker-gtk/tracker-tag-bar.c
+++ b/src/libtracker-gtk/tracker-tag-bar.c
@@ -449,7 +449,7 @@ tracker_tag_bar_new (void)
NULL);
priv = TRACKER_TAG_BAR_GET_PRIVATE (tag_bar);
- priv->client = tracker_client_new (TRUE, TRUE, -1);
+ priv->client = tracker_client_new (TRACKER_CLIENT_ENABLE_WARNINGS, -1);
return tag_bar;
}
diff --git a/src/libtracker-miner/tracker-miner.c b/src/libtracker-miner/tracker-miner.c
index 208a5ea..be614e7 100644
--- a/src/libtracker-miner/tracker-miner.c
+++ b/src/libtracker-miner/tracker-miner.c
@@ -302,7 +302,7 @@ tracker_miner_init (TrackerMiner *miner)
miner->private = priv = TRACKER_MINER_GET_PRIVATE (miner);
/* Set the timeout to 0 so we don't have one */
- priv->client = tracker_client_new (TRUE, TRUE, 0);
+ priv->client = tracker_client_new (TRACKER_CLIENT_ENABLE_WARNINGS, 0);
priv->pauses = g_hash_table_new_full (g_direct_hash,
g_direct_equal,
diff --git a/src/plugins/evolution/tracker-evolution-plugin.c b/src/plugins/evolution/tracker-evolution-plugin.c
index 5f56765..7587215 100644
--- a/src/plugins/evolution/tracker-evolution-plugin.c
+++ b/src/plugins/evolution/tracker-evolution-plugin.c
@@ -2148,7 +2148,8 @@ name_owner_changed_cb (DBusGProxy *proxy,
if (tracker_is_empty_string (old_owner) && !tracker_is_empty_string (new_owner)) {
if (!priv->client) {
- priv->client = tracker_client_new (FALSE, FALSE, G_MAXINT);
+ priv->client = tracker_client_new (TRACKER_CLIENT_DO_NOT_START_SERVICE,
+ G_MAXINT);
}
register_client (user_data);
}
@@ -2341,7 +2342,8 @@ miner_started (TrackerMiner *miner)
g_static_rec_mutex_lock (priv->mutex);
if (!priv->client) {
- priv->client = tracker_client_new (FALSE, FALSE, G_MAXINT);
+ priv->client = tracker_client_new (TRACKER_CLIENT_DO_NOT_START_SERVICE,
+ G_MAXINT);
}
g_static_rec_mutex_unlock (priv->mutex);
@@ -2444,7 +2446,7 @@ miner_resumed (TrackerMiner *miner)
priv->of_total = 0;
if (!priv->client) {
- priv->client = tracker_client_new (FALSE, FALSE, G_MAXINT);
+ priv->client = tracker_client_new (TRACKER_CLIENT_DO_NOT_START_SERVICE, G_MAXINT);
}
g_static_rec_mutex_unlock (priv->mutex);
diff --git a/src/plugins/nautilus/tracker-tags-extension.c b/src/plugins/nautilus/tracker-tags-extension.c
index 782bb76..d545d04 100644
--- a/src/plugins/nautilus/tracker-tags-extension.c
+++ b/src/plugins/nautilus/tracker-tags-extension.c
@@ -272,7 +272,7 @@ static void
tracker_tags_extension_init (TrackerTagsExtension *self)
{
self->private = TRACKER_TAGS_EXTENSION_GET_PRIVATE (self);
- self->private->tracker_client = tracker_client_new (TRUE, TRUE, G_MAXINT);
+ self->private->tracker_client = tracker_client_new (TRACKER_CLIENT_ENABLE_WARNINGS, G_MAXINT);
}
static void
diff --git a/src/plugins/nautilus/tracker-tags-view.c b/src/plugins/nautilus/tracker-tags-view.c
index d925cba..1c5d820 100644
--- a/src/plugins/nautilus/tracker-tags-view.c
+++ b/src/plugins/nautilus/tracker-tags-view.c
@@ -94,7 +94,7 @@ tracker_tags_view_init (TrackerTagsView *tv)
{
tv->private = TRACKER_TAGS_VIEW_GET_PRIVATE (tv);
- tv->private->tracker_client = tracker_client_new (TRUE, TRUE, G_MAXINT);
+ tv->private->tracker_client = tracker_client_new (TRACKER_CLIENT_ENABLE_WARNINGS, G_MAXINT);
tv->private->files = NULL;
tv->private->store = gtk_list_store_new (N_COLUMNS,
G_TYPE_INT, /* Selection type */
diff --git a/src/tracker-search-bar/tracker-results-window.c b/src/tracker-search-bar/tracker-results-window.c
index def3c43..070066a 100644
--- a/src/tracker-search-bar/tracker-results-window.c
+++ b/src/tracker-search-bar/tracker-results-window.c
@@ -380,7 +380,7 @@ tracker_results_window_init (TrackerResultsWindow *window)
priv = TRACKER_RESULTS_WINDOW_GET_PRIVATE (window);
- priv->client = tracker_client_new (FALSE, TRUE, G_MAXINT);
+ priv->client = tracker_client_new (TRACKER_CLIENT_ENABLE_WARNINGS, G_MAXINT);
priv->frame = gtk_frame_new (NULL);
gtk_container_add (GTK_CONTAINER (window), priv->frame);
diff --git a/src/tracker-utils/tracker-import.c b/src/tracker-utils/tracker-import.c
index 391e035..ea883a3 100644
--- a/src/tracker-utils/tracker-import.c
+++ b/src/tracker-utils/tracker-import.c
@@ -102,7 +102,7 @@ main (int argc, char **argv)
g_option_context_free (context);
- client = tracker_client_new (FALSE, TRUE, G_MAXINT);
+ client = tracker_client_new (0, G_MAXINT);
if (!client) {
g_printerr ("%s\n",
diff --git a/src/tracker-utils/tracker-info.c b/src/tracker-utils/tracker-info.c
index e008693..8d64d5d 100644
--- a/src/tracker-utils/tracker-info.c
+++ b/src/tracker-utils/tracker-info.c
@@ -128,7 +128,7 @@ main (int argc, char **argv)
g_option_context_free (context);
- client = tracker_client_new (FALSE, TRUE, G_MAXINT);
+ client = tracker_client_new (0, G_MAXINT);
if (!client) {
g_printerr ("%s\n",
diff --git a/src/tracker-utils/tracker-search.c b/src/tracker-utils/tracker-search.c
index 0bd15b8..fa9ffcd 100644
--- a/src/tracker-utils/tracker-search.c
+++ b/src/tracker-utils/tracker-search.c
@@ -835,7 +835,7 @@ main (int argc, char **argv)
g_option_context_free (context);
- client = tracker_client_new (FALSE, TRUE, G_MAXINT);
+ client = tracker_client_new (0, G_MAXINT);
if (!client) {
g_printerr ("%s\n",
diff --git a/src/tracker-utils/tracker-sparql.c b/src/tracker-utils/tracker-sparql.c
index 573e153..7331192 100644
--- a/src/tracker-utils/tracker-sparql.c
+++ b/src/tracker-utils/tracker-sparql.c
@@ -199,7 +199,7 @@ main (int argc, char **argv)
g_option_context_free (context);
- client = tracker_client_new (FALSE, TRUE, G_MAXINT);
+ client = tracker_client_new (0, G_MAXINT);
if (!client) {
g_printerr ("%s\n",
diff --git a/src/tracker-utils/tracker-stats.c b/src/tracker-utils/tracker-stats.c
index 18e0d7b..c32ac8d 100644
--- a/src/tracker-utils/tracker-stats.c
+++ b/src/tracker-utils/tracker-stats.c
@@ -99,7 +99,7 @@ main (int argc, char **argv)
g_option_context_free (context);
- client = tracker_client_new (FALSE, TRUE, G_MAXINT);
+ client = tracker_client_new (0, G_MAXINT);
if (!client) {
g_printerr ("%s\n",
diff --git a/src/tracker-utils/tracker-status.c b/src/tracker-utils/tracker-status.c
index db47afc..61196ee 100644
--- a/src/tracker-utils/tracker-status.c
+++ b/src/tracker-utils/tracker-status.c
@@ -392,7 +392,7 @@ main (gint argc, gchar *argv[])
g_thread_init (NULL);
}
- client = tracker_client_new (FALSE, TRUE, G_MAXINT);
+ client = tracker_client_new (0, G_MAXINT);
if (!client) {
g_printerr ("%s\n",
diff --git a/src/tracker-utils/tracker-tag.c b/src/tracker-utils/tracker-tag.c
index af7a2bb..d7afe5a 100644
--- a/src/tracker-utils/tracker-tag.c
+++ b/src/tracker-utils/tracker-tag.c
@@ -685,7 +685,7 @@ main (int argc, char **argv)
g_option_context_free (context);
- client = tracker_client_new (FALSE, TRUE, G_MAXINT);
+ client = tracker_client_new (0, G_MAXINT);
if (!client) {
g_printerr ("%s\n",
diff --git a/src/tracker-writeback/tracker-writeback-consumer.c b/src/tracker-writeback/tracker-writeback-consumer.c
index fee665b..98c86ee 100644
--- a/src/tracker-writeback/tracker-writeback-consumer.c
+++ b/src/tracker-writeback/tracker-writeback-consumer.c
@@ -80,7 +80,7 @@ tracker_writeback_consumer_init (TrackerWritebackConsumer *consumer)
priv = TRACKER_WRITEBACK_CONSUMER_GET_PRIVATE (consumer);
- priv->client = tracker_client_new (TRUE, TRUE, 0);
+ priv->client = tracker_client_new (TRACKER_CLIENT_ENABLE_WARNINGS, 0);
priv->modules = g_hash_table_new_full (g_str_hash,
g_str_equal,
(GDestroyNotify) g_free,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]