diff options
author | Seif Lotfy <seif@lotfy.com> | 2013-01-27 02:14:24 +0100 |
---|---|---|
committer | Seif Lotfy <seif@lotfy.com> | 2013-01-27 02:14:24 +0100 |
commit | 98dc5383a100a9284d1549533a196a3c4c55e6d9 (patch) | |
tree | 1961af4cb3d68e7b58fb3ef1b2c4201d33db8587 | |
parent | 934710dc6a4acc47dd9bb48e5350ed63a9de9b9f (diff) | |
download | zeitgeist-98dc5383a100a9284d1549533a196a3c4c55e6d9.tar.gz |
Move stuff around and rename
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | examples/c/Makefile.am | 3 | ||||
-rw-r--r-- | examples/vala/Makefile.am | 6 | ||||
-rw-r--r-- | extensions/Makefile.am | 6 | ||||
-rw-r--r-- | libzeitgeist/Makefile.am | 8 | ||||
-rw-r--r-- | libzeitgeist/utils/Makefile.am | 63 | ||||
-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.vala | 216 | ||||
-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.am | 6 | ||||
-rw-r--r-- | test/c/Makefile.am | 6 |
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 |