[tracker] tracker-extract: Make it possible to switch by cmdline use of LSA
- From: Martyn James Russell <mr src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] tracker-extract: Make it possible to switch by cmdline use of LSA
- Date: Mon, 26 Oct 2009 16:15:35 +0000 (UTC)
commit d458f27f8eb780ace341e0f1787fdacbb094b131
Author: Martyn Russell <martyn lanedo com>
Date: Mon Oct 26 16:12:09 2009 +0000
tracker-extract: Make it possible to switch by cmdline use of LSA
src/tracker-extract/tracker-dbus.c | 6 +++-
src/tracker-extract/tracker-dbus.h | 3 +-
src/tracker-extract/tracker-extract.c | 43 +++++++++++++++++++++-----------
src/tracker-extract/tracker-extract.h | 3 +-
src/tracker-extract/tracker-main.c | 15 ++++++++---
5 files changed, 47 insertions(+), 23 deletions(-)
---
diff --git a/src/tracker-extract/tracker-dbus.c b/src/tracker-extract/tracker-dbus.c
index 8bf640b..72f6ccf 100644
--- a/src/tracker-extract/tracker-dbus.c
+++ b/src/tracker-extract/tracker-dbus.c
@@ -153,7 +153,8 @@ tracker_dbus_shutdown (void)
}
gboolean
-tracker_dbus_register_objects (gboolean disable_shutdown)
+tracker_dbus_register_objects (gboolean disable_shutdown,
+ gboolean internal_extractors)
{
gpointer object;
@@ -163,7 +164,8 @@ tracker_dbus_register_objects (gboolean disable_shutdown)
}
/* Add org.freedesktop.Tracker1.Extract */
- object = tracker_extract_new (disable_shutdown);
+ object = tracker_extract_new (disable_shutdown,
+ internal_extractors);
if (!object) {
g_critical ("Could not create TrackerExtract object to register");
return FALSE;
diff --git a/src/tracker-extract/tracker-dbus.h b/src/tracker-extract/tracker-dbus.h
index 05025ae..4948938 100644
--- a/src/tracker-extract/tracker-dbus.h
+++ b/src/tracker-extract/tracker-dbus.h
@@ -30,7 +30,8 @@ G_BEGIN_DECLS
gboolean tracker_dbus_init (void);
void tracker_dbus_shutdown (void);
-gboolean tracker_dbus_register_objects (gboolean disable_shutdown);
+gboolean tracker_dbus_register_objects (gboolean disable_shutdown,
+ gboolean force_internal_extractors);
GObject *tracker_dbus_get_object (GType type);
G_END_DECLS
diff --git a/src/tracker-extract/tracker-extract.c b/src/tracker-extract/tracker-extract.c
index 82e8139..e756791 100644
--- a/src/tracker-extract/tracker-extract.c
+++ b/src/tracker-extract/tracker-extract.c
@@ -48,6 +48,7 @@ typedef struct {
GArray *specific_extractors;
GArray *generic_extractors;
gboolean disable_shutdown;
+ gboolean force_internal_extractors;
} TrackerExtractPrivate;
typedef struct {
@@ -116,7 +117,8 @@ tracker_extract_finalize (GObject *object)
}
TrackerExtract *
-tracker_extract_new (gboolean disable_shutdown)
+tracker_extract_new (gboolean disable_shutdown,
+ gboolean force_internal_extractors)
{
TrackerExtract *object;
TrackerExtractPrivate *priv;
@@ -141,9 +143,14 @@ tracker_extract_new (gboolean disable_shutdown)
}
#ifdef HAVE_LIBSTREAMANALYZER
- g_message ("Adding extractor for libstreamanalyzer");
- g_message (" Generic match for ALL (tried first before our module)");
- g_message (" Specific match for NONE (fallback to our modules)");
+ if (!force_internal_extractors) {
+ g_message ("Adding extractor for libstreamanalyzer");
+ g_message (" Generic match for ALL (tried first before our module)");
+ g_message (" Specific match for NONE (fallback to our modules)");
+ } else {
+ g_message ("Not using libstreamanalyzer");
+ g_message (" It is available but disabled by command line");
+ }
#endif /* HAVE_STREAMANALYZER */
specific_extractors = g_array_new (FALSE,
TRUE,
@@ -209,6 +216,7 @@ tracker_extract_new (gboolean disable_shutdown)
priv = TRACKER_EXTRACT_GET_PRIVATE (object);
priv->disable_shutdown = disable_shutdown;
+ priv->force_internal_extractors = force_internal_extractors;
priv->specific_extractors = specific_extractors;
priv->generic_extractors = generic_extractors;
@@ -222,24 +230,32 @@ get_file_metadata (TrackerExtract *extract,
const gchar *uri,
const gchar *mime)
{
+ TrackerExtractPrivate *priv;
TrackerSparqlBuilder *statements;
gchar *mime_used = NULL;
gchar *content_type = NULL;
+ priv = TRACKER_EXTRACT_GET_PRIVATE (extract);
+
/* Create hash table to send back */
statements = tracker_sparql_builder_new_update ();
tracker_sparql_builder_insert_open (statements);
#ifdef HAVE_LIBSTREAMANALYZER
- tracker_dbus_request_comment (request_id,
- " Extracting with libstreamanalyzer...");
-
- tracker_topanalyzer_extract (uri, statements, &content_type);
-
- if (tracker_sparql_builder_get_length (statements) > 0) {
- tracker_sparql_builder_insert_close (statements);
- return statements;
+ if (!priv->force_internal_extractors) {
+ tracker_dbus_request_comment (request_id,
+ " Extracting with libstreamanalyzer...");
+
+ tracker_topanalyzer_extract (uri, statements, &content_type);
+
+ if (tracker_sparql_builder_get_length (statements) > 0) {
+ tracker_sparql_builder_insert_close (statements);
+ return statements;
+ }
+ } else {
+ tracker_dbus_request_comment (request_id,
+ " Extracting with internal extractors ONLY...");
}
#endif /* HAVE_LIBSTREAMANALYZER */
@@ -298,11 +314,8 @@ get_file_metadata (TrackerExtract *extract,
* data we need from the extractors.
*/
if (mime_used) {
- TrackerExtractPrivate *priv;
guint i;
- priv = TRACKER_EXTRACT_GET_PRIVATE (extract);
-
for (i = 0; i < priv->specific_extractors->len; i++) {
const TrackerExtractData *edata;
ModuleData mdata;
diff --git a/src/tracker-extract/tracker-extract.h b/src/tracker-extract/tracker-extract.h
index ce321fc..92119eb 100644
--- a/src/tracker-extract/tracker-extract.h
+++ b/src/tracker-extract/tracker-extract.h
@@ -50,7 +50,8 @@ struct TrackerExtractClass {
};
GType tracker_extract_get_type (void);
-TrackerExtract *tracker_extract_new (gboolean disable_shutdown);
+TrackerExtract *tracker_extract_new (gboolean disable_shutdown,
+ gboolean force_internal_extractors);
void tracker_extract_get_pid (TrackerExtract *object,
DBusGMethodInvocation *context,
GError **error);
diff --git a/src/tracker-extract/tracker-main.c b/src/tracker-extract/tracker-main.c
index 90946c9..0332ccc 100644
--- a/src/tracker-extract/tracker-main.c
+++ b/src/tracker-extract/tracker-main.c
@@ -70,10 +70,12 @@ static GMainLoop *main_loop;
static guint quit_timeout_id = 0;
static gboolean version;
-static gboolean disable_shutdown;
static gint verbosity = -1;
static gchar *filename;
static gchar *mime_type;
+static gboolean disable_shutdown;
+static gboolean force_internal_extractors;
+
static TrackerFTSConfig *fts_config;
static GOptionEntry entries[] = {
@@ -100,7 +102,10 @@ static GOptionEntry entries[] = {
G_OPTION_ARG_NONE, &disable_shutdown,
N_("Disable shutting down after 30 seconds of inactivity"),
NULL },
-
+ { "force-internal-extractors", 'i', 0,
+ G_OPTION_ARG_NONE, &force_internal_extractors,
+ N_("Force internal extractors over 3rd parties like libstreamanalyzer"),
+ NULL },
{ NULL }
};
@@ -353,7 +358,8 @@ main (int argc, char *argv[])
GFile *file;
gchar *uri;
- extract = tracker_extract_new (disable_shutdown);
+ extract = tracker_extract_new (disable_shutdown,
+ force_internal_extractors);
if (!extract) {
return EXIT_FAILURE;
}
@@ -390,7 +396,8 @@ main (int argc, char *argv[])
g_free (log_filename);
/* Make Tracker available for introspection */
- if (!tracker_dbus_register_objects (disable_shutdown)) {
+ if (!tracker_dbus_register_objects (disable_shutdown,
+ force_internal_extractors)) {
g_object_unref (config);
return EXIT_FAILURE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]