summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeif Lotfy <seif@lotfy.com>2013-01-27 02:14:24 +0100
committerSeif Lotfy <seif@lotfy.com>2013-01-27 02:14:24 +0100
commit98dc5383a100a9284d1549533a196a3c4c55e6d9 (patch)
tree1961af4cb3d68e7b58fb3ef1b2c4201d33db8587
parent934710dc6a4acc47dd9bb48e5350ed63a9de9b9f (diff)
downloadzeitgeist-98dc5383a100a9284d1549533a196a3c4c55e6d9.tar.gz
Move stuff around and rename
-rw-r--r--configure.ac2
-rw-r--r--examples/c/Makefile.am3
-rw-r--r--examples/vala/Makefile.am6
-rw-r--r--extensions/Makefile.am6
-rw-r--r--libzeitgeist/Makefile.am8
-rw-r--r--libzeitgeist/utils/Makefile.am63
-rw-r--r--libzeitgeist/utils/Makefile.am~ (renamed from libzeitgeist/internal/Makefile.am)0
-rw-r--r--libzeitgeist/utils/errors.vala (renamed from libzeitgeist/internal/errors.vala)0
-rw-r--r--libzeitgeist/utils/sql-schema.vala (renamed from libzeitgeist/internal/sql-schema.vala)0
-rw-r--r--libzeitgeist/utils/sql.vala (renamed from libzeitgeist/internal/sql.vala)0
-rw-r--r--libzeitgeist/utils/table-lookup.vala (renamed from libzeitgeist/internal/table-lookup.vala)0
-rw-r--r--libzeitgeist/utils/timestamp.vala (renamed from libzeitgeist/internal/timestamp.vala)0
-rw-r--r--libzeitgeist/utils/utils.vala216
-rw-r--r--libzeitgeist/utils/utils.vala~ (renamed from libzeitgeist/internal/utils.vala)0
-rw-r--r--libzeitgeist/utils/where-clause.vala (renamed from libzeitgeist/internal/where-clause.vala)0
-rw-r--r--src/Makefile.am6
-rw-r--r--test/c/Makefile.am6
17 files changed, 299 insertions, 17 deletions
diff --git a/configure.ac b/configure.ac
index d2a7150b..6b6e23ff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -45,7 +45,7 @@ AC_SUBST(ZEITGEIST_LIBS)
AC_CONFIG_FILES([
Makefile
src/Makefile
- libzeitgeist/internal/Makefile
+ libzeitgeist/utils/Makefile
libzeitgeist/Makefile
libzeitgeist/zeitgeist-2.0.pc
extensions/Makefile
diff --git a/examples/c/Makefile.am b/examples/c/Makefile.am
index 0c1d9d7b..b24bb05a 100644
--- a/examples/c/Makefile.am
+++ b/examples/c/Makefile.am
@@ -2,6 +2,7 @@ include $(top_srcdir)/libzeitgeist/Makefile.decl
INCLUDES = \
-I$(top_srcdir)/libzeitgeist -I$(top_builddir)/libzeitgeist \
+ -I$(top_srcdir)/libzeitgeist/utils -I$(top_builddir)/libzeitgeist/utils \
$(GIO_UNIX_CFLAGS) \
$(ZEITGEIST_CFLAGS)
@@ -13,12 +14,14 @@ AM_CFLAGS = \
zeitgeist_libs = \
$(top_builddir)/libzeitgeist/libzeitgeist-2.0.la \
+ $(top_builddir)/libzeitgeist/utils/libzeitgeist-utils.la \
$(ZEITGEIST_LIBS)
EXTRA_DIST += \
test.desktop
helper_sources = \
+ $(top_srcdir)/libzeitgeist/utils/zeitgeist-utils.h \
$(top_srcdir)/libzeitgeist/zeitgeist.h \
test.desktop
diff --git a/examples/vala/Makefile.am b/examples/vala/Makefile.am
index 7c5148b6..cc6866d7 100644
--- a/examples/vala/Makefile.am
+++ b/examples/vala/Makefile.am
@@ -3,7 +3,7 @@ NULL =
AM_CPPFLAGS = \
$(ZEITGEIST_CFLAGS) \
-include $(CONFIG_HEADER) \
- -I $(top_srcdir)/libzeitgeist/internal/ \
+ -I $(top_srcdir)/libzeitgeist/utils/ \
-I $(top_srcdir)/libzeitgeist/ \
-w \
$(NULL)
@@ -12,13 +12,13 @@ AM_VALAFLAGS = \
--target-glib=2.26 \
--pkg gio-2.0 \
--pkg sqlite3 \
- $(top_srcdir)/libzeitgeist/internal/zeitgeist-internal.vapi \
+ $(top_srcdir)/libzeitgeist/utils/zeitgeist-utils.vapi \
$(top_srcdir)/libzeitgeist/zeitgeist-2.0.vapi \
$(top_srcdir)/config.vapi \
$(NULL)
zeitgeist_libs = \
- $(top_builddir)/libzeitgeist/internal/libzeitgeist-internal.la \
+ $(top_builddir)/libzeitgeist/utils/libzeitgeist-utils.la \
$(top_builddir)/libzeitgeist/libzeitgeist-2.0.la \
$(ZEITGEIST_LIBS)
diff --git a/extensions/Makefile.am b/extensions/Makefile.am
index 38b371b8..63d84081 100644
--- a/extensions/Makefile.am
+++ b/extensions/Makefile.am
@@ -5,7 +5,7 @@ endif
NULL =
zeitgeist_libs = \
- $(top_builddir)/libzeitgeist/internal/libzeitgeist-internal.la \
+ $(top_builddir)/libzeitgeist/utils/libzeitgeist-utils.la \
$(top_builddir)/libzeitgeist/libzeitgeist-2.0.la \
$(ZEITGEIST_LIBS)
@@ -15,7 +15,7 @@ noinst_LTLIBRARIES = ds-registry.la blacklist.la storage-monitor.la fts.la bench
AM_CPPFLAGS = \
$(ZEITGEIST_CFLAGS) \
-include $(CONFIG_HEADER) \
- -I $(top_srcdir)/libzeitgeist/internal \
+ -I $(top_srcdir)/libzeitgeist/utils \
-I $(top_srcdir)/libzeitgeist \
-I $(top_srcdir)/src \
-w \
@@ -26,7 +26,7 @@ VALAFLAGS = \
--pkg gio-2.0 \
--pkg sqlite3 \
--pkg gmodule-2.0 \
- $(top_srcdir)/libzeitgeist/internal/zeitgeist-internal.vapi \
+ $(top_srcdir)/libzeitgeist/utils/zeitgeist-utils.vapi \
$(top_srcdir)/libzeitgeist/zeitgeist-2.0.vapi \
$(top_srcdir)/src/zeitgeist-engine.vapi \
$(NULL)
diff --git a/libzeitgeist/Makefile.am b/libzeitgeist/Makefile.am
index 401747e5..3a409f46 100644
--- a/libzeitgeist/Makefile.am
+++ b/libzeitgeist/Makefile.am
@@ -7,13 +7,13 @@ ONTOLOGY = \
$(NULL)
SUBDIRS = \
- internal \
+ utils \
$(NULL)
AM_CPPFLAGS = \
$(ZEITGEIST_CFLAGS) \
-include $(CONFIG_HEADER) \
- -I $(top_srcdir)/libzeitgeist/internal \
+ -I $(top_srcdir)/libzeitgeist/utils \
-w \
$(NULL)
@@ -22,7 +22,7 @@ AM_VALAFLAGS = \
--pkg gio-2.0 \
--pkg gio-unix-2.0 \
--pkg sqlite3 \
- $(top_srcdir)/libzeitgeist/internal/zeitgeist-internal.vapi \
+ $(top_srcdir)/libzeitgeist/utils/zeitgeist-utils.vapi \
$(top_srcdir)/config.vapi \
--vapi zeitgeist-2.0.vapi \
-H zeitgeist.h \
@@ -52,7 +52,7 @@ libzeitgeist_2_0_la_SOURCES = \
$(NULL)
libzeitgeist_2_0_la_LIBADD = \
- $(top_builddir)/libzeitgeist/internal/libzeitgeist-internal.la \
+ $(top_builddir)/libzeitgeist/utils/libzeitgeist-utils.la \
$(ZEITGEIST_LIBS) \
$(NULL)$
libzeitgeist_2_0_la_LDFLAGS = -version-info $(LIBZEITGEIST_LT_VERSION)
diff --git a/libzeitgeist/utils/Makefile.am b/libzeitgeist/utils/Makefile.am
new file mode 100644
index 00000000..1f33d3d9
--- /dev/null
+++ b/libzeitgeist/utils/Makefile.am
@@ -0,0 +1,63 @@
+NULL =
+
+lib_LTLIBRARIES = libzeitgeist-utils.la
+
+ONTOLOGY = \
+ $(wildcard $(top_srcdir)/data/ontology/*.trig) \
+ $(NULL)
+
+AM_CPPFLAGS = \
+ $(ZEITGEIST_CFLAGS) \
+ -include $(CONFIG_HEADER) \
+ -w \
+ $(NULL)
+
+AM_VALAFLAGS = \
+ --target-glib=2.26 \
+ --pkg gio-2.0 \
+ --pkg gio-unix-2.0 \
+ --pkg sqlite3 \
+ $(top_srcdir)/config.vapi \
+ --vapi zeitgeist-utils.vapi \
+ -H zeitgeist-utils.h \
+ -h zeitgeist-utils-private.h \
+ --library=zeitgeist-utils \
+ $(NULL)
+
+libzeitgeist_utils_la_SOURCES = \
+ errors.vala \
+ sql-schema.vala \
+ sql.vala \
+ table-lookup.vala \
+ timestamp.vala \
+ utils.vala \
+ where-clause.vala \
+ $(NULL)
+
+libzeitgeist_utils_la_LIBADD = $(ZEITGEIST_LIBS)
+libzeitgeist_utils_la_LDFLAGS = -version-info $(LIBZEITGEIST_LT_VERSION)
+
+libzeitgeist_utils_includedir=$(includedir)/zeitgeist-utils/
+libzeitgeist_utils_include_HEADERS = \
+ zeitgeist-utils.h \
+ $(NULL)
+
+libzeitgeist_utils_vapidir = $(datadir)/vala/vapi/
+libzeitgeist_utils_vapi_DATA = \
+ zeitgeist-utils.vapi
+ $(NULL)
+
+EXTRA_DIST = \
+ ontology.vala.in \
+ ontology-uris.vala.in \
+ $(NULL)
+
+DISTCLEANFILES = \
+ ontology.vala \
+ ontology-uris.vala \
+ zeitgeist-utils.vapi
+ $(NULL)
+
+CLEANFILES =
+MAINTAINERCLEANFILES =
+
diff --git a/libzeitgeist/internal/Makefile.am b/libzeitgeist/utils/Makefile.am~
index 3562b83c..3562b83c 100644
--- a/libzeitgeist/internal/Makefile.am
+++ b/libzeitgeist/utils/Makefile.am~
diff --git a/libzeitgeist/internal/errors.vala b/libzeitgeist/utils/errors.vala
index 538264b6..538264b6 100644
--- a/libzeitgeist/internal/errors.vala
+++ b/libzeitgeist/utils/errors.vala
diff --git a/libzeitgeist/internal/sql-schema.vala b/libzeitgeist/utils/sql-schema.vala
index fa513b50..fa513b50 100644
--- a/libzeitgeist/internal/sql-schema.vala
+++ b/libzeitgeist/utils/sql-schema.vala
diff --git a/libzeitgeist/internal/sql.vala b/libzeitgeist/utils/sql.vala
index 908212ed..908212ed 100644
--- a/libzeitgeist/internal/sql.vala
+++ b/libzeitgeist/utils/sql.vala
diff --git a/libzeitgeist/internal/table-lookup.vala b/libzeitgeist/utils/table-lookup.vala
index b582b143..b582b143 100644
--- a/libzeitgeist/internal/table-lookup.vala
+++ b/libzeitgeist/utils/table-lookup.vala
diff --git a/libzeitgeist/internal/timestamp.vala b/libzeitgeist/utils/timestamp.vala
index 039ac45d..039ac45d 100644
--- a/libzeitgeist/internal/timestamp.vala
+++ b/libzeitgeist/utils/timestamp.vala
diff --git a/libzeitgeist/utils/utils.vala b/libzeitgeist/utils/utils.vala
new file mode 100644
index 00000000..7a1bb609
--- /dev/null
+++ b/libzeitgeist/utils/utils.vala
@@ -0,0 +1,216 @@
+/* utils.vala
+ *
+ * Copyright © 2011 Collabora Ltd.
+ * By Seif Lotfy <seif@lotfy.com>
+ * By Siegfried-Angel Gevatter Pujals <siegfried@gevatter.com>
+ * Copyright © 2011 Michal Hruby <michal.mhr@gmail.com>
+ * Copyright © 2011 Manish Sinha <manishsinha@ubuntu.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Utility functions. FOR INTERNAL USE ONLY
+ */
+
+namespace Zeitgeist
+{
+ namespace Utils
+ {
+ // Paths
+ private static string DATA_PATH;
+ private static string DATABASE_FILE_PATH;
+ private static string DATABASE_FILE_BACKUP_PATH;
+ private static string LOCAL_EXTENSIONS_PATH;
+
+ private const string DATA_FOLDER = "zeitgeist";
+ private const string DATABASE_BASENAME = "activity.sqlite";
+ private const string USER_EXTENSION_PATH = "";
+
+ // D-Bus
+ public const string ENGINE_DBUS_NAME = "org.gnome.zeitgeist.Engine";
+ public const string ENGINE_DBUS_PATH = "/org/gnome/zeitgeist/log/activity";
+ public const string SIG_EVENT = "asaasay";
+ public const size_t MAX_DBUS_RESULT_SIZE = 4 * 1024 * 1024; // 4MiB
+
+ // configure runtime cache for events
+ // default size is 2000
+ public const uint CACHE_SIZE = 0;
+
+ public unowned string get_data_path ()
+ {
+ if (DATA_PATH != null) return DATA_PATH;
+
+ DATA_PATH = Environment.get_variable ("ZEITGEIST_DATA_PATH") ??
+ get_default_data_path ();
+
+ if (!FileUtils.test (DATA_PATH, FileTest.IS_DIR))
+ {
+ DirUtils.create_with_parents (DATA_PATH, 0755);
+ }
+
+ debug ("DATA_PATH = %s", DATA_PATH);
+
+ return DATA_PATH;
+ }
+
+ public string get_default_data_path ()
+ {
+ return Path.build_filename (Environment.get_user_data_dir (),
+ DATA_FOLDER);
+ }
+
+ public unowned string get_database_file_path ()
+ {
+ if (DATABASE_FILE_PATH != null) return DATABASE_FILE_PATH;
+
+ DATABASE_FILE_PATH =
+ Environment.get_variable ("ZEITGEIST_DATABASE_PATH") ??
+ Path.build_filename (get_data_path (), DATABASE_BASENAME);
+
+ debug ("DATABASE_FILE_PATH = %s", DATABASE_FILE_PATH);
+
+ return DATABASE_FILE_PATH;
+ }
+
+ public unowned string get_database_file_backup_path ()
+ {
+ if (DATABASE_FILE_BACKUP_PATH != null)
+ return DATABASE_FILE_BACKUP_PATH;
+
+ DATABASE_FILE_BACKUP_PATH =
+ Environment.get_variable ("ZEITGEIST_DATABASE_BACKUP_PATH") ??
+ Path.build_filename (get_data_path (),
+ DATABASE_BASENAME + ".bck");
+
+ debug ("DATABASE_FILE_BACKUP_PATH = %s", DATABASE_FILE_BACKUP_PATH);
+
+ return DATABASE_FILE_BACKUP_PATH;
+ }
+
+ public string get_database_file_retire_name ()
+ {
+ return DATABASE_BASENAME + ".%s.bck".printf (
+ new DateTime.now_local ().format ("%Y%m%d-%H%M%S"));
+ }
+
+ public unowned string get_local_extensions_path ()
+ {
+ if (LOCAL_EXTENSIONS_PATH != null) return LOCAL_EXTENSIONS_PATH;
+
+ LOCAL_EXTENSIONS_PATH = Path.build_filename (get_data_path (),
+ "extensions");
+
+ debug ("LOCAL_EXTENSIONS_PATH = %s", LOCAL_EXTENSIONS_PATH);
+
+ return LOCAL_EXTENSIONS_PATH;
+ }
+
+ /**
+ * @return Whether a in-memory SQLite database is in use (vs.
+ * a file-based one).
+ */
+ public bool using_in_memory_database ()
+ {
+ return get_database_file_path () == ":memory:";
+ }
+
+ public void backup_database () throws Error
+ {
+ File original;
+ File destination;
+ original = File.new_for_path (get_database_file_path ());
+ destination = File.new_for_path (get_database_file_backup_path ());
+
+ message ("Backing up database to \"%s\" for schema upgrade...",
+ get_database_file_backup_path ());
+ original.copy (destination, FileCopyFlags.OVERWRITE, null, null);
+ }
+
+ /**
+ * Check if the value starts with the negation operator. If it does,
+ * remove the operator from the value and return true. Otherwise,
+ * return false.
+ *
+ * @param val value to check
+ */
+ public bool parse_negation (ref string val)
+ {
+ if (!val.has_prefix ("!"))
+ return false;
+ val = val.substring (1);
+ return true;
+ }
+
+ /**
+ * Check if the value starts with the noexpand operator. If it does,
+ * remove the operator from the value and return true. Otherwise,
+ * return false.
+ *
+ * Check for the negation operator before calling this function.
+ *
+ * @param val value to check
+ */
+ public bool parse_noexpand (ref string val)
+ {
+ if (!val.has_prefix ("+"))
+ return false;
+ val = val.substring (1);
+ return true;
+ }
+
+
+ /**
+ * Check if the value ends with the wildcard character. If it does,
+ * remove the wildcard character from the value and return true.
+ * Otherwise, return false.
+ *
+ * @param val value to check
+ */
+ public bool parse_wildcard (ref string val)
+ {
+ if (!val.has_suffix ("*"))
+ return false;
+ unowned uint8[] val_data = val.data;
+ val_data[val_data.length-1] = '\0';
+ return true;
+ }
+
+ /**
+ * Return true if a string is empty (null or containing just a null
+ * byte).
+ *
+ * @param s string to check
+ */
+ public bool is_empty_string (string? s)
+ {
+ return s == null || s == "";
+ }
+
+ public void assert_sig (bool condition, string error_message)
+ //throws DataModelError
+ {
+ //if (unlikely (!condition))
+ // throw new DataModelError.INVALID_SIGNATURE (error_message);
+ }
+
+ public void set_database_file_path(string path) {
+ DATABASE_FILE_PATH = path;
+ }
+
+ }
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/internal/utils.vala b/libzeitgeist/utils/utils.vala~
index 8faa97bf..8faa97bf 100644
--- a/libzeitgeist/internal/utils.vala
+++ b/libzeitgeist/utils/utils.vala~
diff --git a/libzeitgeist/internal/where-clause.vala b/libzeitgeist/utils/where-clause.vala
index a8305995..a8305995 100644
--- a/libzeitgeist/internal/where-clause.vala
+++ b/libzeitgeist/utils/where-clause.vala
diff --git a/src/Makefile.am b/src/Makefile.am
index 89433225..adf475b1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -5,7 +5,7 @@ bin_PROGRAMS = zeitgeist-daemon
AM_CPPFLAGS = \
$(ZEITGEIST_CFLAGS) \
-include $(CONFIG_HEADER) \
- -I $(top_srcdir)/libzeitgeist/internal \
+ -I $(top_srcdir)/libzeitgeist/utils \
-I $(top_srcdir)/libzeitgeist \
-w \
$(NULL)
@@ -17,7 +17,7 @@ AM_VALAFLAGS = \
--pkg sqlite3 \
--pkg posix \
--pkg gmodule-2.0 \
- $(top_srcdir)/libzeitgeist/internal/zeitgeist-internal.vapi \
+ $(top_srcdir)/libzeitgeist/utils/zeitgeist-utils.vapi \
$(top_srcdir)/libzeitgeist/zeitgeist-2.0.vapi \
$(top_srcdir)/config.vapi \
$(NULL)
@@ -55,7 +55,7 @@ zeitgeist_daemon_SOURCES = \
$(NULL)
zeitgeist_daemon_LDADD = \
- $(top_builddir)/libzeitgeist/internal/libzeitgeist-internal.la \
+ $(top_builddir)/libzeitgeist/utils/libzeitgeist-utils.la \
$(top_builddir)/libzeitgeist/libzeitgeist-2.0.la \
$(ZEITGEIST_LIBS) \
$(NULL)
diff --git a/test/c/Makefile.am b/test/c/Makefile.am
index 6c51361d..603c3d02 100644
--- a/test/c/Makefile.am
+++ b/test/c/Makefile.am
@@ -2,7 +2,7 @@ include $(top_srcdir)/libzeitgeist/Makefile.decl
INCLUDES = \
-I$(top_srcdir)/libzeitgeist -I$(top_builddir)/libzeitgeist \
- -I$(top_srcdir)/libzeitgeist/internal -I$(top_builddir)/libzeitgeist/internal \
+ -I$(top_srcdir)/libzeitgeist/utils -I$(top_builddir)/libzeitgeist/utils \
$(GIO_UNIX_CFLAGS) \
$(ZEITGEIST_CFLAGS)
@@ -14,14 +14,14 @@ AM_CFLAGS = \
zeitgeist_libs = \
$(top_builddir)/libzeitgeist/libzeitgeist-2.0.la \
- $(top_builddir)/libzeitgeist/internal/libzeitgeist-internal.la \
+ $(top_builddir)/libzeitgeist/utils/libzeitgeist-utils.la \
$(ZEITGEIST_LIBS)
EXTRA_DIST += \
test.desktop
helper_sources = \
- $(top_srcdir)/libzeitgeist/internal/zeitgeist-internal.h \
+ $(top_srcdir)/libzeitgeist/utils/zeitgeist-utils.h \
$(top_srcdir)/libzeitgeist/zeitgeist.h \
test.desktop