summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeif Lotfy <seif@lotfy.com>2013-01-10 17:13:44 +0100
committerSeif Lotfy <seif@lotfy.com>2013-01-10 17:13:44 +0100
commit74cd26d9b89bdc78b600759a844ed42fc49cf2c9 (patch)
tree6ef650259314c58c83c95a89a7ffb6d5ec93c578
parentb85ffe30301a4ac0ee430330f12932757a018234 (diff)
add new libzeitgeistmoz
-rw-r--r--libzeitgeist/.gitignore2
-rw-r--r--libzeitgeist/Makefile.am92
-rw-r--r--libzeitgeist/Makefile.am~92
-rw-r--r--libzeitgeist/Makefile.decl60
-rw-r--r--libzeitgeist/TODO12
-rw-r--r--libzeitgeist/Zeitgeist-2.0.gir4611
-rw-r--r--libzeitgeist/Zeitgeist-2.0.typelibbin0 -> 51496 bytes
-rw-r--r--libzeitgeist/data-source-registry.vala159
-rw-r--r--libzeitgeist/data-source.vala146
-rw-r--r--libzeitgeist/enumerations.vala256
-rw-r--r--libzeitgeist/event.vala487
-rw-r--r--libzeitgeist/index.vala207
-rw-r--r--libzeitgeist/log.vala461
-rw-r--r--libzeitgeist/mimetype.vala360
-rw-r--r--libzeitgeist/monitor.vala146
-rw-r--r--libzeitgeist/ontology-uris.vala1245
-rw-r--r--libzeitgeist/ontology-uris.vala.in22
-rw-r--r--libzeitgeist/ontology.vala913
-rw-r--r--libzeitgeist/ontology.vala.in181
-rw-r--r--libzeitgeist/queued-proxy-wrapper.vala112
-rw-r--r--libzeitgeist/remote.vala159
-rw-r--r--libzeitgeist/result-set.vala113
-rw-r--r--libzeitgeist/simple-result-set.vala85
-rw-r--r--libzeitgeist/subject.vala189
-rw-r--r--libzeitgeist/timerange.vala150
-rw-r--r--libzeitgeist/timestamp.vala236
-rw-r--r--libzeitgeist/utils.vala212
-rw-r--r--libzeitgeist/zeitgeist-2.0.pc11
-rw-r--r--libzeitgeist/zeitgeist-2.0.pc.in11
-rw-r--r--libzeitgeist/zeitgeist-2.0.vapi579
-rw-r--r--libzeitgeist/zeitgeist-private.h951
-rw-r--r--libzeitgeist/zeitgeist.h851
32 files changed, 13111 insertions, 0 deletions
diff --git a/libzeitgeist/.gitignore b/libzeitgeist/.gitignore
new file mode 100644
index 00000000..c8b08435
--- /dev/null
+++ b/libzeitgeist/.gitignore
@@ -0,0 +1,2 @@
+.deps
+.libs
diff --git a/libzeitgeist/Makefile.am b/libzeitgeist/Makefile.am
new file mode 100644
index 00000000..bcddc7b5
--- /dev/null
+++ b/libzeitgeist/Makefile.am
@@ -0,0 +1,92 @@
+NULL =
+
+lib_LTLIBRARIES = libzeitgeist-2.0.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-2.0.vapi \
+ -H zeitgeist.h \
+ -h zeitgeist-private.h \
+ --library=zeitgeist \
+ $(NULL)
+
+libzeitgeist_2_0_la_SOURCES = \
+ data-source.vala \
+ data-source-registry.vala \
+ mimetype.vala \
+ enumerations.vala \
+ event.vala \
+ subject.vala \
+ timerange.vala \
+ index.vala \
+ log.vala \
+ timestamp.vala \
+ monitor.vala \
+ ontology-uris.vala \
+ ontology.vala \
+ queued-proxy-wrapper.vala \
+ remote.vala \
+ result-set.vala \
+ simple-result-set.vala \
+ utils.vala \
+ $(NULL)
+
+libzeitgeist_2_0_la_LIBADD = $(ZEITGEIST_LIBS)
+libzeitgeist_2_0_la_LDFLAGS = -version-info $(LIBZEITGEIST_LT_VERSION)
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = zeitgeist-2.0.pc
+
+libzeitgeist_includedir=$(includedir)/zeitgeist-2.0/
+libzeitgeist_include_HEADERS = \
+ zeitgeist.h \
+ $(NULL)
+
+libzeitgeist_vapidir = $(datadir)/vala/vapi/
+libzeitgeist_vapi_DATA = \
+ zeitgeist-2.0.vapi
+ $(NULL)
+
+EXTRA_DIST = \
+ ontology.vala.in \
+ ontology-uris.vala.in \
+ $(NULL)
+
+DISTCLEANFILES = \
+ ontology.vala \
+ ontology-uris.vala \
+ zeitgeist-2.0.vapi \
+ $(NULL)
+
+
+CLEANFILES =
+MAINTAINERCLEANFILES =
+
+MAINTAINERCLEANFILES += \
+ $(BUILT_SOURCES) \
+ $(NULL)
+
+
+ontology_vala.stamp: ontology.vala.in ontology-uris.vala.in \
+ $(ONTOLOGY) $(top_srcdir)/data/ontology2code
+ $(AM_V_GEN)$(top_srcdir)/data/ontology2code --vala
+ @touch "$@"
+
+ontology.vala ontology-uris.vala: ontology_vala.stamp
+
+distclean-local:
+ rm -f *.c *.o *.stamp *.~[0-9]~
diff --git a/libzeitgeist/Makefile.am~ b/libzeitgeist/Makefile.am~
new file mode 100644
index 00000000..bcddc7b5
--- /dev/null
+++ b/libzeitgeist/Makefile.am~
@@ -0,0 +1,92 @@
+NULL =
+
+lib_LTLIBRARIES = libzeitgeist-2.0.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-2.0.vapi \
+ -H zeitgeist.h \
+ -h zeitgeist-private.h \
+ --library=zeitgeist \
+ $(NULL)
+
+libzeitgeist_2_0_la_SOURCES = \
+ data-source.vala \
+ data-source-registry.vala \
+ mimetype.vala \
+ enumerations.vala \
+ event.vala \
+ subject.vala \
+ timerange.vala \
+ index.vala \
+ log.vala \
+ timestamp.vala \
+ monitor.vala \
+ ontology-uris.vala \
+ ontology.vala \
+ queued-proxy-wrapper.vala \
+ remote.vala \
+ result-set.vala \
+ simple-result-set.vala \
+ utils.vala \
+ $(NULL)
+
+libzeitgeist_2_0_la_LIBADD = $(ZEITGEIST_LIBS)
+libzeitgeist_2_0_la_LDFLAGS = -version-info $(LIBZEITGEIST_LT_VERSION)
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = zeitgeist-2.0.pc
+
+libzeitgeist_includedir=$(includedir)/zeitgeist-2.0/
+libzeitgeist_include_HEADERS = \
+ zeitgeist.h \
+ $(NULL)
+
+libzeitgeist_vapidir = $(datadir)/vala/vapi/
+libzeitgeist_vapi_DATA = \
+ zeitgeist-2.0.vapi
+ $(NULL)
+
+EXTRA_DIST = \
+ ontology.vala.in \
+ ontology-uris.vala.in \
+ $(NULL)
+
+DISTCLEANFILES = \
+ ontology.vala \
+ ontology-uris.vala \
+ zeitgeist-2.0.vapi \
+ $(NULL)
+
+
+CLEANFILES =
+MAINTAINERCLEANFILES =
+
+MAINTAINERCLEANFILES += \
+ $(BUILT_SOURCES) \
+ $(NULL)
+
+
+ontology_vala.stamp: ontology.vala.in ontology-uris.vala.in \
+ $(ONTOLOGY) $(top_srcdir)/data/ontology2code
+ $(AM_V_GEN)$(top_srcdir)/data/ontology2code --vala
+ @touch "$@"
+
+ontology.vala ontology-uris.vala: ontology_vala.stamp
+
+distclean-local:
+ rm -f *.c *.o *.stamp *.~[0-9]~
diff --git a/libzeitgeist/Makefile.decl b/libzeitgeist/Makefile.decl
new file mode 100644
index 00000000..8882b23f
--- /dev/null
+++ b/libzeitgeist/Makefile.decl
@@ -0,0 +1,60 @@
+# GLIB - Library of useful C routines
+#
+# This file is copied almost verbatim from the GLib-2.0 distribution
+#
+
+GTESTER = gtester # for non-GLIB packages
+GTESTER_REPORT = $(top_builddir)/test/gtester-report # for the GLIB package
+
+# initialize variables for unconditional += appending
+EXTRA_DIST =
+TEST_PROGS =
+
+### testing rules
+
+# test: run all tests in cwd and subdirs
+test: ${TEST_PROGS}
+ @test -z "${TEST_PROGS}" || ${GTESTER} --verbose ${TEST_PROGS}
+ @ for subdir in $(SUBDIRS) ; do \
+ test "$$subdir" = "." -o "$$subdir" = "po" || \
+ ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
+ done
+# test-report: run tests in subdirs and generate report
+# perf-report: run tests in subdirs with -m perf and generate report
+# full-report: like test-report: with -m perf and -m slow
+test-report perf-report full-report: ${TEST_PROGS}
+ @test -z "${TEST_PROGS}" || { \
+ case $@ in \
+ test-report) test_options="-k";; \
+ perf-report) test_options="-k -m=perf";; \
+ full-report) test_options="-k -m=perf -m=slow";; \
+ esac ; \
+ if test -z "$$GTESTER_LOGDIR" ; then \
+ ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
+ elif test -n "${TEST_PROGS}" ; then \
+ ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
+ fi ; \
+ }
+ @ ignore_logdir=true ; \
+ if test -z "$$GTESTER_LOGDIR" ; then \
+ GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
+ ignore_logdir=false ; \
+ fi ; \
+ for subdir in $(SUBDIRS) ; do \
+ test "$$subdir" = "." -o "$$subdir" = "po" || \
+ ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
+ done ; \
+ $$ignore_logdir || { \
+ echo '<?xml version="1.0"?>' > $@.xml ; \
+ echo '<report-collection>' >> $@.xml ; \
+ for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
+ sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
+ done ; \
+ echo >> $@.xml ; \
+ echo '</report-collection>' >> $@.xml ; \
+ rm -rf "$$GTESTER_LOGDIR"/ ; \
+ ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
+ }
+.PHONY: test test-report perf-report full-report
+# run make test as part of make check
+check-local: test
diff --git a/libzeitgeist/TODO b/libzeitgeist/TODO
new file mode 100644
index 00000000..6ffd5efc
--- /dev/null
+++ b/libzeitgeist/TODO
@@ -0,0 +1,12 @@
+LIBZEITGEIST2 TODO:
+ - Review examples: make sure they don't leak!
+ - gtkdoc: document enum values
+ - gtkdoc: make index.html nice
+ - gtkdoc: add object hierarchy page
+ - gtkdoc: split stuff (eg. datamodel.html) into 1 page for class
+ - gtkdoc: fix api index so that eveyrthing isn't under Z
+ - gtkdoc: show properties & signals!!
+ - lots of documentation missing
+ - make zeitgeist_events_to_variant_with_limit internal?
+ - make utils.* internal?
+ - "introduced result_type_is_sort_order_asc" - add to NEWS or hide it
diff --git a/libzeitgeist/Zeitgeist-2.0.gir b/libzeitgeist/Zeitgeist-2.0.gir
new file mode 100644
index 00000000..d7fcefa9
--- /dev/null
+++ b/libzeitgeist/Zeitgeist-2.0.gir
@@ -0,0 +1,4611 @@
+<?xml version="1.0"?>
+<repository version="1.2" xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+<include name="GLib" version="2.0"/>
+<include name="GObject" version="2.0"/>
+<include name="Gio" version="2.0"/>
+<package name="zeitgeist"/>
+<c:include name="zeitgeist.h"/>
+<namespace name="Zeitgeist" version="2.0" c:prefix="Zeitgeist">
+ <constant name="SIG_DATASOURCES" c:identifier="ZEITGEIST_DATA_SOURCES_SIG_DATASOURCES" value="(null)">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <function name="data_sources_from_variant" c:identifier="zeitgeist_data_sources_from_variant" throws="1">
+ <return-value transfer-ownership="full">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.DataSource" c:type="ZeitgeistDataSource*"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="sources_variant" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="data_sources_to_variant" c:identifier="zeitgeist_data_sources_to_variant">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="sources" transfer-ownership="none">
+ <type name="GLib.HashTable" c:type="GHashTable*">
+ <type name="utf8" c:type="gchar*"/>
+ <type name="Zeitgeist.DataSource" c:type="ZeitgeistDataSource*"/>
+ </type>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="events_from_variant" c:identifier="zeitgeist_events_from_variant" throws="1">
+ <return-value transfer-ownership="full">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="vevents" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="events_to_variant" c:identifier="zeitgeist_events_to_variant">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="events" transfer-ownership="none">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="events_to_variant_with_limit" c:identifier="zeitgeist_events_to_variant_with_limit" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="events" transfer-ownership="none">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </parameter>
+ <parameter name="limit" transfer-ownership="none">
+ <type name="gulong" c:type="gsize"/>
+ </parameter>
+ </parameters>
+ </function>
+ <constant name="SECOND" c:identifier="ZEITGEIST_TIMESTAMP_SECOND" value="1000">
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <constant name="MINUTE" c:identifier="ZEITGEIST_TIMESTAMP_MINUTE" value="60000">
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <constant name="HOUR" c:identifier="ZEITGEIST_TIMESTAMP_HOUR" value="3600000">
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <constant name="DAY" c:identifier="ZEITGEIST_TIMESTAMP_DAY" value="86400000">
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <constant name="WEEK" c:identifier="ZEITGEIST_TIMESTAMP_WEEK" value="604800000">
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <constant name="YEAR" c:identifier="ZEITGEIST_TIMESTAMP_YEAR" value="31556952000">
+ <type name="gint64" c:type="gint64"/>
+ </constant>
+ <function name="timestamp_from_timeval" c:identifier="zeitgeist_timestamp_from_timeval">
+ <return-value transfer-ownership="full">
+ <type name="gint64" c:type="gint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="timeval" transfer-ownership="none">
+ <type name="GLib.TimeVal" c:type="GTimeVal"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="timestamp_to_timeval" c:identifier="zeitgeist_timestamp_to_timeval">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="gint64" c:type="gint64"/>
+ </parameter>
+ <parameter name="result" direction="out" transfer-ownership="full" caller-allocates="1">
+ <type name="GLib.TimeVal" c:type="GTimeVal"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="timestamp_from_now" c:identifier="zeitgeist_timestamp_from_now">
+ <return-value transfer-ownership="full">
+ <type name="gint64" c:type="gint64"/>
+ </return-value>
+ </function>
+ <function name="timestamp_from_iso8601" c:identifier="zeitgeist_timestamp_from_iso8601">
+ <return-value transfer-ownership="full">
+ <type name="gint64" c:type="gint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="datetime" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="timestamp_to_iso8601" c:identifier="zeitgeist_timestamp_to_iso8601">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="gint64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="timestamp_from_date" c:identifier="zeitgeist_timestamp_from_date">
+ <return-value transfer-ownership="full">
+ <type name="gint64" c:type="gint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="date" transfer-ownership="none">
+ <type name="GLib.Date" c:type="GDate"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="timestamp_from_dmy" c:identifier="zeitgeist_timestamp_from_dmy">
+ <return-value transfer-ownership="full">
+ <type name="gint64" c:type="gint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="day" transfer-ownership="none">
+ <type name="GLib.DateDay" c:type="GDateDay"/>
+ </parameter>
+ <parameter name="month" transfer-ownership="none">
+ <type name="GLib.DateMonth" c:type="GDateMonth"/>
+ </parameter>
+ <parameter name="year" transfer-ownership="none">
+ <type name="GLib.DateYear" c:type="GDateYear"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="timestamp_to_date" c:identifier="zeitgeist_timestamp_to_date">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="gint64" c:type="gint64"/>
+ </parameter>
+ <parameter name="result" direction="out" transfer-ownership="full" caller-allocates="1">
+ <type name="GLib.Date" c:type="GDate"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="timestamp_next_midnight" c:identifier="zeitgeist_timestamp_next_midnight">
+ <return-value transfer-ownership="full">
+ <type name="gint64" c:type="gint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="gint64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="timestamp_prev_midnight" c:identifier="zeitgeist_timestamp_prev_midnight">
+ <return-value transfer-ownership="full">
+ <type name="gint64" c:type="gint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="gint64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </function>
+ <constant name="ALARM" c:identifier="ZEITGEIST_NCAL_ALARM" value="http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Alarm">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="ATTACHMENT" c:identifier="ZEITGEIST_NCAL_ATTACHMENT" value="http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Attachment">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="CALENDAR" c:identifier="ZEITGEIST_NCAL_CALENDAR" value="http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Calendar">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="CALENDAR_DATA_OBJECT" c:identifier="ZEITGEIST_NCAL_CALENDAR_DATA_OBJECT" value="http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#CalendarDataObject">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="EVENT" c:identifier="ZEITGEIST_NCAL_EVENT" value="http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Event">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="FREEBUSY" c:identifier="ZEITGEIST_NCAL_FREEBUSY" value="http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Freebusy">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="JOURNAL" c:identifier="ZEITGEIST_NCAL_JOURNAL" value="http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Journal">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="TIMEZONE" c:identifier="ZEITGEIST_NCAL_TIMEZONE" value="http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Timezone">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="TODO" c:identifier="ZEITGEIST_NCAL_TODO" value="http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Todo">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="CONTACT" c:identifier="ZEITGEIST_NCO_CONTACT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nco#Contact">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="CONTACT_GROUP" c:identifier="ZEITGEIST_NCO_CONTACT_GROUP" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactGroup">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="CONTACT_LIST" c:identifier="ZEITGEIST_NCO_CONTACT_LIST" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactList">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="CONTACT_LIST_DATA_OBJECT" c:identifier="ZEITGEIST_NCO_CONTACT_LIST_DATA_OBJECT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactListDataObject">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="ORGANIZATION_CONTACT" c:identifier="ZEITGEIST_NCO_ORGANIZATION_CONTACT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nco#OrganizationContact">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="PERSON_CONTACT" c:identifier="ZEITGEIST_NCO_PERSON_CONTACT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nco#PersonContact">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="APPLICATION" c:identifier="ZEITGEIST_NFO_APPLICATION" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Application">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="ARCHIVE" c:identifier="ZEITGEIST_NFO_ARCHIVE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Archive">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="ARCHIVE_ITEM" c:identifier="ZEITGEIST_NFO_ARCHIVE_ITEM" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#ArchiveItem">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="ATTACHMENT" c:identifier="ZEITGEIST_NFO_ATTACHMENT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Attachment">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="AUDIO" c:identifier="ZEITGEIST_NFO_AUDIO" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Audio">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="BOOKMARK" c:identifier="ZEITGEIST_NFO_BOOKMARK" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Bookmark">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="BOOKMARK_FOLDER" c:identifier="ZEITGEIST_NFO_BOOKMARK_FOLDER" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#BookmarkFolder">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="CURSOR" c:identifier="ZEITGEIST_NFO_CURSOR" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Cursor">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="DATA_CONTAINER" c:identifier="ZEITGEIST_NFO_DATA_CONTAINER" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="DELETED_RESOURCE" c:identifier="ZEITGEIST_NFO_DELETED_RESOURCE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DeletedResource">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="DOCUMENT" c:identifier="ZEITGEIST_NFO_DOCUMENT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Document">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="EMBEDDED_FILE_DATA_OBJECT" c:identifier="ZEITGEIST_NFO_EMBEDDED_FILE_DATA_OBJECT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#EmbeddedFileDataObject">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="EXECUTABLE" c:identifier="ZEITGEIST_NFO_EXECUTABLE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Executable">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="FILESYSTEM" c:identifier="ZEITGEIST_NFO_FILESYSTEM" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Filesystem">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="FILESYSTEM_IMAGE" c:identifier="ZEITGEIST_NFO_FILESYSTEM_IMAGE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FilesystemImage">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="FILE_DATA_OBJECT" c:identifier="ZEITGEIST_NFO_FILE_DATA_OBJECT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="FOLDER" c:identifier="ZEITGEIST_NFO_FOLDER" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="FONT" c:identifier="ZEITGEIST_NFO_FONT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Font">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="HARD_DISK_PARTITION" c:identifier="ZEITGEIST_NFO_HARD_DISK_PARTITION" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#HardDiskPartition">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="HTML_DOCUMENT" c:identifier="ZEITGEIST_NFO_HTML_DOCUMENT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#HtmlDocument">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="ICON" c:identifier="ZEITGEIST_NFO_ICON" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Icon">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="IMAGE" c:identifier="ZEITGEIST_NFO_IMAGE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Image">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MEDIA" c:identifier="ZEITGEIST_NFO_MEDIA" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Media">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MEDIA_LIST" c:identifier="ZEITGEIST_NFO_MEDIA_LIST" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MediaList">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MEDIA_STREAM" c:identifier="ZEITGEIST_NFO_MEDIA_STREAM" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MediaStream">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MIND_MAP" c:identifier="ZEITGEIST_NFO_MIND_MAP" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MindMap">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="OPERATING_SYSTEM" c:identifier="ZEITGEIST_NFO_OPERATING_SYSTEM" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#OperatingSystem">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="PAGINATED_TEXT_DOCUMENT" c:identifier="ZEITGEIST_NFO_PAGINATED_TEXT_DOCUMENT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PaginatedTextDocument">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="PLAIN_TEXT_DOCUMENT" c:identifier="ZEITGEIST_NFO_PLAIN_TEXT_DOCUMENT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PlainTextDocument">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="PRESENTATION" c:identifier="ZEITGEIST_NFO_PRESENTATION" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Presentation">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="RASTER_IMAGE" c:identifier="ZEITGEIST_NFO_RASTER_IMAGE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RasterImage">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="REMOTE_DATA_OBJECT" c:identifier="ZEITGEIST_NFO_REMOTE_DATA_OBJECT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemoteDataObject">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="REMOTE_PORT_ADDRESS" c:identifier="ZEITGEIST_NFO_REMOTE_PORT_ADDRESS" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemotePortAddress">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="SOFTWARE" c:identifier="ZEITGEIST_NFO_SOFTWARE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Software">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="SOFTWARE_ITEM" c:identifier="ZEITGEIST_NFO_SOFTWARE_ITEM" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SoftwareItem">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="SOFTWARE_SERVICE" c:identifier="ZEITGEIST_NFO_SOFTWARE_SERVICE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SoftwareService">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="SOURCE_CODE" c:identifier="ZEITGEIST_NFO_SOURCE_CODE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SourceCode">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="SPREADSHEET" c:identifier="ZEITGEIST_NFO_SPREADSHEET" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Spreadsheet">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="TEXT_DOCUMENT" c:identifier="ZEITGEIST_NFO_TEXT_DOCUMENT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#TextDocument">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="TRASH" c:identifier="ZEITGEIST_NFO_TRASH" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Trash">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="VECTOR_IMAGE" c:identifier="ZEITGEIST_NFO_VECTOR_IMAGE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#VectorImage">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="VIDEO" c:identifier="ZEITGEIST_NFO_VIDEO" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Video">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="VISUAL" c:identifier="ZEITGEIST_NFO_VISUAL" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Visual">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="WEBSITE" c:identifier="ZEITGEIST_NFO_WEBSITE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Website">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="WEB_DATA_OBJECT" c:identifier="ZEITGEIST_NFO_WEB_DATA_OBJECT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#WebDataObject">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="DATA_OBJECT" c:identifier="ZEITGEIST_NIE_DATA_OBJECT" value="http://www.semanticdesktop.org/ontologies/2007/01/19/nie#DataObject">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="INFORMATION_ELEMENT" c:identifier="ZEITGEIST_NIE_INFORMATION_ELEMENT" value="http://www.semanticdesktop.org/ontologies/2007/01/19/nie#InformationElement">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MOVIE" c:identifier="ZEITGEIST_NMM_MOVIE" value="http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#Movie">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MUSIC_ALBUM" c:identifier="ZEITGEIST_NMM_MUSIC_ALBUM" value="http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#MusicAlbum">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MUSIC_PIECE" c:identifier="ZEITGEIST_NMM_MUSIC_PIECE" value="http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#MusicPiece">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="TVSERIES" c:identifier="ZEITGEIST_NMM_TVSERIES" value="http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#TVSeries">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="TVSHOW" c:identifier="ZEITGEIST_NMM_TVSHOW" value="http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#TVShow">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="EMAIL" c:identifier="ZEITGEIST_NMO_EMAIL" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Email">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="IMMESSAGE" c:identifier="ZEITGEIST_NMO_IMMESSAGE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#IMMessage">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MAILBOX" c:identifier="ZEITGEIST_NMO_MAILBOX" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Mailbox">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MAILBOX_DATA_OBJECT" c:identifier="ZEITGEIST_NMO_MAILBOX_DATA_OBJECT" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#MailboxDataObject">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MESSAGE" c:identifier="ZEITGEIST_NMO_MESSAGE" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Message">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MIME_ENTITY" c:identifier="ZEITGEIST_NMO_MIME_ENTITY" value="http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#MimeEntity">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="ACCEPT_EVENT" c:identifier="ZEITGEIST_ZG_ACCEPT_EVENT" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AcceptEvent">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="ACCESS_EVENT" c:identifier="ZEITGEIST_ZG_ACCESS_EVENT" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AccessEvent">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="CREATE_EVENT" c:identifier="ZEITGEIST_ZG_CREATE_EVENT" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#CreateEvent">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="DELETE_EVENT" c:identifier="ZEITGEIST_ZG_DELETE_EVENT" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DeleteEvent">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="DENY_EVENT" c:identifier="ZEITGEIST_ZG_DENY_EVENT" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DenyEvent">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="EVENT_INTERPRETATION" c:identifier="ZEITGEIST_ZG_EVENT_INTERPRETATION" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#EventInterpretation">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="EVENT_MANIFESTATION" c:identifier="ZEITGEIST_ZG_EVENT_MANIFESTATION" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#EventManifestation">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="EXPIRE_EVENT" c:identifier="ZEITGEIST_ZG_EXPIRE_EVENT" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ExpireEvent">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="HEURISTIC_ACTIVITY" c:identifier="ZEITGEIST_ZG_HEURISTIC_ACTIVITY" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#HeuristicActivity">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="LEAVE_EVENT" c:identifier="ZEITGEIST_ZG_LEAVE_EVENT" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#LeaveEvent">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MODIFY_EVENT" c:identifier="ZEITGEIST_ZG_MODIFY_EVENT" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ModifyEvent">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MOVE_EVENT" c:identifier="ZEITGEIST_ZG_MOVE_EVENT" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#MoveEvent">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="RECEIVE_EVENT" c:identifier="ZEITGEIST_ZG_RECEIVE_EVENT" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ReceiveEvent">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="SCHEDULED_ACTIVITY" c:identifier="ZEITGEIST_ZG_SCHEDULED_ACTIVITY" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ScheduledActivity">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="SEND_EVENT" c:identifier="ZEITGEIST_ZG_SEND_EVENT" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SendEvent">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="SYSTEM_NOTIFICATION" c:identifier="ZEITGEIST_ZG_SYSTEM_NOTIFICATION" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SystemNotification">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="USER_ACTIVITY" c:identifier="ZEITGEIST_ZG_USER_ACTIVITY" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#UserActivity">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="WORLD_ACTIVITY" c:identifier="ZEITGEIST_ZG_WORLD_ACTIVITY" value="http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#WorldActivity">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <function name="symbol_get_display_name" c:identifier="zeitgeist_symbol_get_display_name">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="symbol_uri" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="symbol_get_description" c:identifier="zeitgeist_symbol_get_description">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="symbol_uri" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="symbol_get_all_parents" c:identifier="zeitgeist_symbol_get_all_parents">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*">
+ <type name="utf8" c:type="const gchar*"/>
+ </type>
+ </return-value>
+ <parameters>
+ <parameter name="symbol_uri" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="symbol_get_all_children" c:identifier="zeitgeist_symbol_get_all_children">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*">
+ <type name="utf8" c:type="const gchar*"/>
+ </type>
+ </return-value>
+ <parameters>
+ <parameter name="symbol_uri" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="symbol_get_children" c:identifier="zeitgeist_symbol_get_children">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*">
+ <type name="utf8" c:type="const gchar*"/>
+ </type>
+ </return-value>
+ <parameters>
+ <parameter name="symbol_uri" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="symbol_get_parents" c:identifier="zeitgeist_symbol_get_parents">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*">
+ <type name="utf8" c:type="const gchar*"/>
+ </type>
+ </return-value>
+ <parameters>
+ <parameter name="symbol_uri" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="symbol_is_a" c:identifier="zeitgeist_symbol_is_a">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="symbol_uri" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="parent_uri" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <constant name="ENGINE_DBUS_NAME" c:identifier="ZEITGEIST_UTILS_ENGINE_DBUS_NAME" value="org.gnome.zeitgeist.Engine">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="ENGINE_DBUS_PATH" c:identifier="ZEITGEIST_UTILS_ENGINE_DBUS_PATH" value="/org/gnome/zeitgeist/log/activity">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="SIG_EVENT" c:identifier="ZEITGEIST_UTILS_SIG_EVENT" value="asaasay">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <constant name="MAX_DBUS_RESULT_SIZE" c:identifier="ZEITGEIST_UTILS_MAX_DBUS_RESULT_SIZE" value="(null)">
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <constant name="CACHE_SIZE" c:identifier="ZEITGEIST_UTILS_CACHE_SIZE" value="0">
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <function name="utils_get_data_path" c:identifier="zeitgeist_utils_get_data_path">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ </function>
+ <function name="utils_get_default_data_path" c:identifier="zeitgeist_utils_get_default_data_path">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </function>
+ <function name="utils_get_database_file_path" c:identifier="zeitgeist_utils_get_database_file_path">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ </function>
+ <function name="utils_get_database_file_backup_path" c:identifier="zeitgeist_utils_get_database_file_backup_path">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ </function>
+ <function name="utils_get_database_file_retire_name" c:identifier="zeitgeist_utils_get_database_file_retire_name">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </function>
+ <function name="utils_get_local_extensions_path" c:identifier="zeitgeist_utils_get_local_extensions_path">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ </function>
+ <function name="utils_using_in_memory_database" c:identifier="zeitgeist_utils_using_in_memory_database">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ </function>
+ <function name="utils_backup_database" c:identifier="zeitgeist_utils_backup_database" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ </function>
+ <function name="utils_parse_negation" c:identifier="zeitgeist_utils_parse_negation">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="inout" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="utils_parse_noexpand" c:identifier="zeitgeist_utils_parse_noexpand">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="inout" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="utils_parse_wildcard" c:identifier="zeitgeist_utils_parse_wildcard">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="inout" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="utils_is_empty_string" c:identifier="zeitgeist_utils_is_empty_string">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="s" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <enumeration name="ResultType" c:type="ZeitgeistResultType" glib:type-name="ZeitgeistResultType" glib:get-type="zeitgeist_result_type_get_type">
+ <member name="most_recent_events" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS" value="0"/>
+ <member name="least_recent_events" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_RECENT_EVENTS" value="1"/>
+ <member name="most_recent_subjects" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_RECENT_SUBJECTS" value="2"/>
+ <member name="least_recent_subjects" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_RECENT_SUBJECTS" value="3"/>
+ <member name="most_popular_subjects" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_POPULAR_SUBJECTS" value="4"/>
+ <member name="least_popular_subjects" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_SUBJECTS" value="5"/>
+ <member name="most_popular_actor" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_POPULAR_ACTOR" value="6"/>
+ <member name="least_popular_actor" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_ACTOR" value="7"/>
+ <member name="most_recent_actor" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_RECENT_ACTOR" value="8"/>
+ <member name="least_recent_actor" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_RECENT_ACTOR" value="9"/>
+ <member name="most_recent_origin" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_RECENT_ORIGIN" value="10"/>
+ <member name="least_recent_origin" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_RECENT_ORIGIN" value="11"/>
+ <member name="most_popular_origin" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_POPULAR_ORIGIN" value="12"/>
+ <member name="least_popular_origin" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_ORIGIN" value="13"/>
+ <member name="oldest_actor" c:identifier="ZEITGEIST_RESULT_TYPE_OLDEST_ACTOR" value="14"/>
+ <member name="most_recent_subject_interpretation" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_RECENT_SUBJECT_INTERPRETATION" value="15"/>
+ <member name="least_recent_subject_interpretation" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_RECENT_SUBJECT_INTERPRETATION" value="16"/>
+ <member name="most_popular_subject_interpretation" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_POPULAR_SUBJECT_INTERPRETATION" value="17"/>
+ <member name="least_popular_subject_interpretation" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_SUBJECT_INTERPRETATION" value="18"/>
+ <member name="most_recent_mimetype" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_RECENT_MIMETYPE" value="19"/>
+ <member name="least_recent_mimetype" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_RECENT_MIMETYPE" value="20"/>
+ <member name="most_popular_mimetype" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_POPULAR_MIMETYPE" value="21"/>
+ <member name="least_popular_mimetype" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_MIMETYPE" value="22"/>
+ <member name="most_recent_current_uri" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_RECENT_CURRENT_URI" value="23"/>
+ <member name="least_recent_current_uri" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_RECENT_CURRENT_URI" value="24"/>
+ <member name="most_popular_current_uri" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_POPULAR_CURRENT_URI" value="25"/>
+ <member name="least_popular_current_uri" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_CURRENT_URI" value="26"/>
+ <member name="most_recent_event_origin" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENT_ORIGIN" value="27"/>
+ <member name="least_recent_event_origin" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_RECENT_EVENT_ORIGIN" value="28"/>
+ <member name="most_popular_event_origin" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_POPULAR_EVENT_ORIGIN" value="29"/>
+ <member name="least_popular_event_origin" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_EVENT_ORIGIN" value="30"/>
+ <member name="most_recent_current_origin" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_RECENT_CURRENT_ORIGIN" value="31"/>
+ <member name="least_recent_current_origin" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_RECENT_CURRENT_ORIGIN" value="32"/>
+ <member name="most_popular_current_origin" c:identifier="ZEITGEIST_RESULT_TYPE_MOST_POPULAR_CURRENT_ORIGIN" value="33"/>
+ <member name="least_popular_current_origin" c:identifier="ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_CURRENT_ORIGIN" value="34"/>
+ <member name="relevancy" c:identifier="ZEITGEIST_RESULT_TYPE_RELEVANCY" value="100"/>
+ </enumeration>
+ <function name="result_type_is_sort_order_asc" c:identifier="zeitgeist_result_type_is_sort_order_asc">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="Zeitgeist.ResultType" c:type="ZeitgeistResultType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <enumeration name="RelevantResultType" c:type="ZeitgeistRelevantResultType" glib:type-name="ZeitgeistRelevantResultType" glib:get-type="zeitgeist_relevant_result_type_get_type">
+ <member name="recent" c:identifier="ZEITGEIST_RELEVANT_RESULT_TYPE_RECENT" value="0"/>
+ <member name="related" c:identifier="ZEITGEIST_RELEVANT_RESULT_TYPE_RELATED" value="1"/>
+ </enumeration>
+ <enumeration name="StorageState" c:type="ZeitgeistStorageState" glib:type-name="ZeitgeistStorageState" glib:get-type="zeitgeist_storage_state_get_type">
+ <member name="not_available" c:identifier="ZEITGEIST_STORAGE_STATE_NOT_AVAILABLE" value="0"/>
+ <member name="available" c:identifier="ZEITGEIST_STORAGE_STATE_AVAILABLE" value="1"/>
+ <member name="any" c:identifier="ZEITGEIST_STORAGE_STATE_ANY" value="2"/>
+ </enumeration>
+ <errordomain name="DataModelError" get-quark="zeitgeist_data_model_error_quark" codes="DataModelError">
+ <annotation key="dbus.name" value="org.gnome.zeitgeist.DataModelError"/>
+</errordomain>
+ <enumeration name="DataModelError" c:type="ZeitgeistDataModelError">
+ <member name="invalid_signature" c:identifier="ZEITGEIST_DATA_MODEL_ERROR_INVALID_SIGNATURE" value="0"/>
+ <member name="null_event" c:identifier="ZEITGEIST_DATA_MODEL_ERROR_NULL_EVENT" value="1"/>
+ <member name="too_many_results" c:identifier="ZEITGEIST_DATA_MODEL_ERROR_TOO_MANY_RESULTS" value="2"/>
+ </enumeration>
+ <class name="DataSource" c:type="ZeitgeistDataSource" glib:type-name="ZeitgeistDataSource" glib:get-type="zeitgeist_data_source_get_type" glib:type-struct="DataSourceClass" parent="GObject.Object">
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="priv">
+ <type name="DataSourcePrivate" c:type="ZeitgeistDataSourcePrivate*"/>
+ </field>
+ <constructor name="new" c:identifier="zeitgeist_data_source_new">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.DataSource" c:type="ZeitgeistDataSource*"/>
+ </return-value>
+ </constructor>
+ <constructor name="full" c:identifier="zeitgeist_data_source_new_full">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.DataSource" c:type="ZeitgeistDataSource*"/>
+ </return-value>
+ <parameters>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="description" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="templates" transfer-ownership="none" allow-none="1">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="from_variant" c:identifier="zeitgeist_data_source_new_from_variant" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.DataSource" c:type="ZeitgeistDataSource*"/>
+ </return-value>
+ <parameters>
+ <parameter name="variant" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="reset_running" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="to_variant" c:identifier="zeitgeist_data_source_to_variant">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ </method>
+ <property name="unique-id" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="name" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="description" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="event-templates" writable="1">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </property>
+ <property name="enabled" writable="1">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <property name="running" writable="1">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <property name="timestamp" writable="1">
+ <type name="gint64" c:type="gint64"/>
+ </property>
+ </class>
+ <record name="DataSourceClass" c:type="ZeitgeistDataSourceClass" glib:is-gtype-struct-for="DataSource">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <record name="DataSourcePrivate" c:type="ZeitgeistDataSourcePrivate" disguised="1"/>
+ <class name="DataSourceRegistry" c:type="ZeitgeistDataSourceRegistry" glib:type-name="ZeitgeistDataSourceRegistry" glib:get-type="zeitgeist_data_source_registry_get_type" glib:type-struct="DataSourceRegistryClass" parent="Zeitgeist.QueuedProxyWrapper">
+ <field name="parent_instance">
+ <type name="Zeitgeist.QueuedProxyWrapper" c:type="ZeitgeistQueuedProxyWrapper"/>
+ </field>
+ <field name="priv">
+ <type name="DataSourceRegistryPrivate" c:type="ZeitgeistDataSourceRegistryPrivate*"/>
+ </field>
+ <constructor name="new" c:identifier="zeitgeist_data_source_registry_new">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.DataSourceRegistry" c:type="ZeitgeistDataSourceRegistry*"/>
+ </return-value>
+ </constructor>
+ <method name="get_data_sources" c:identifier="zeitgeist_data_source_registry_get_data_sources">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_data_sources_finish" c:identifier="zeitgeist_data_source_registry_get_data_sources_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.DataSource" c:type="ZeitgeistDataSource*"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_data_source_from_id" c:identifier="zeitgeist_data_source_registry_get_data_source_from_id">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_data_source_from_id_finish" c:identifier="zeitgeist_data_source_registry_get_data_source_from_id_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.DataSource" c:type="ZeitgeistDataSource*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="register_data_source" c:identifier="zeitgeist_data_source_registry_register_data_source">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="data_source" transfer-ownership="none">
+ <type name="Zeitgeist.DataSource" c:type="ZeitgeistDataSource*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="register_data_source_finish" c:identifier="zeitgeist_data_source_registry_register_data_source_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_data_source_enabled" c:identifier="zeitgeist_data_source_registry_set_data_source_enabled">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="enabled" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_data_source_enabled_finish" c:identifier="zeitgeist_data_source_registry_set_data_source_enabled_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <glib:signal name="source_disconnected">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="data_source" transfer-ownership="none">
+ <type name="Zeitgeist.DataSource" c:type="ZeitgeistDataSource*"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="source_enabled">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="enabled" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="source_registered">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="data_source" transfer-ownership="none">
+ <type name="Zeitgeist.DataSource" c:type="ZeitgeistDataSource*"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="DataSourceRegistryClass" c:type="ZeitgeistDataSourceRegistryClass" glib:is-gtype-struct-for="DataSourceRegistry">
+ <field name="parent_class">
+ <type name="Zeitgeist.QueuedProxyWrapperClass" c:type="ZeitgeistQueuedProxyWrapperClass"/>
+ </field>
+ </record>
+ <record name="DataSourceRegistryPrivate" c:type="ZeitgeistDataSourceRegistryPrivate" disguised="1"/>
+ <class name="Event" c:type="ZeitgeistEvent" glib:type-name="ZeitgeistEvent" glib:get-type="zeitgeist_event_get_type" glib:type-struct="EventClass" parent="GObject.Object">
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="priv">
+ <type name="EventPrivate" c:type="ZeitgeistEventPrivate*"/>
+ </field>
+ <constant name="SIGNATURE" c:identifier="ZEITGEIST_EVENT_SIGNATURE" value="asaasay">
+ <type name="utf8" c:type="const gchar*"/>
+ </constant>
+ <method name="get_subject" c:identifier="zeitgeist_event_get_subject">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.Subject" c:type="ZeitgeistSubject*"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="num_subjects" c:identifier="zeitgeist_event_num_subjects">
+ <return-value transfer-ownership="full">
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ </method>
+ <method name="add_subject" c:identifier="zeitgeist_event_add_subject">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="subject" transfer-ownership="none">
+ <type name="Zeitgeist.Subject" c:type="ZeitgeistSubject*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="take_subject" c:identifier="zeitgeist_event_take_subject">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="subject" transfer-ownership="full">
+ <type name="Zeitgeist.Subject" c:type="ZeitgeistSubject*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <constructor name="full" c:identifier="zeitgeist_event_new_full">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="interpretation" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="manifestation" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="actor" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="origin" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="from_variant" c:identifier="zeitgeist_event_new_from_variant" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="event_variant" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="set_actor_from_info" c:identifier="zeitgeist_event_set_actor_from_info">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="info" transfer-ownership="none">
+ <type name="Gio.AppInfo" c:type="GAppInfo*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="to_variant" c:identifier="zeitgeist_event_to_variant">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ </method>
+ <method name="debug_print" c:identifier="zeitgeist_event_debug_print">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ </method>
+ <method name="matches_template" c:identifier="zeitgeist_event_matches_template">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="template_event" transfer-ownership="none">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <constructor name="new" c:identifier="zeitgeist_event_new">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </return-value>
+ </constructor>
+ <property name="id" writable="1">
+ <type name="guint32" c:type="guint32"/>
+ </property>
+ <property name="timestamp" writable="1">
+ <type name="gint64" c:type="gint64"/>
+ </property>
+ <property name="origin" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="actor" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="interpretation" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="manifestation" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="subjects" writable="1">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Subject" c:type="ZeitgeistSubject*"/>
+ </array>
+ </property>
+ <property name="payload" writable="1">
+ <type name="GLib.ByteArray" c:type="GByteArray*"/>
+ </property>
+ </class>
+ <record name="EventClass" c:type="ZeitgeistEventClass" glib:is-gtype-struct-for="Event">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <record name="EventPrivate" c:type="ZeitgeistEventPrivate" disguised="1"/>
+ <class name="Subject" c:type="ZeitgeistSubject" glib:type-name="ZeitgeistSubject" glib:get-type="zeitgeist_subject_get_type" glib:type-struct="SubjectClass" parent="GObject.Object">
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="priv">
+ <type name="SubjectPrivate" c:type="ZeitgeistSubjectPrivate*"/>
+ </field>
+ <constructor name="full" c:identifier="zeitgeist_subject_new_full">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.Subject" c:type="ZeitgeistSubject*"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="interpretation" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="manifestation" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="mimetype" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="origin" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="text" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="storage" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="move_event" c:identifier="zeitgeist_subject_new_move_event">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.Subject" c:type="ZeitgeistSubject*"/>
+ </return-value>
+ <parameters>
+ <parameter name="source_uri" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="source_origin" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="destination_uri" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="destination_origin" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="interpretation" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="manifestation" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="mimetype" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="text" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="storage" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="from_variant" c:identifier="zeitgeist_subject_new_from_variant" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.Subject" c:type="ZeitgeistSubject*"/>
+ </return-value>
+ <parameters>
+ <parameter name="subject_variant" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="to_variant" c:identifier="zeitgeist_subject_to_variant">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ </method>
+ <method name="matches_template" c:identifier="zeitgeist_subject_matches_template">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="template_subject" transfer-ownership="none">
+ <type name="Zeitgeist.Subject" c:type="ZeitgeistSubject*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <constructor name="new" c:identifier="zeitgeist_subject_new">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.Subject" c:type="ZeitgeistSubject*"/>
+ </return-value>
+ </constructor>
+ <property name="uri" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="origin" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="text" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="storage" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="current-uri" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="current-origin" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="mimetype" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="interpretation" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="manifestation" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ </class>
+ <record name="SubjectClass" c:type="ZeitgeistSubjectClass" glib:is-gtype-struct-for="Subject">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <record name="SubjectPrivate" c:type="ZeitgeistSubjectPrivate" disguised="1"/>
+ <class name="TimeRange" c:type="ZeitgeistTimeRange" glib:type-name="ZeitgeistTimeRange" glib:get-type="zeitgeist_time_range_get_type" glib:type-struct="TimeRangeClass" parent="GObject.Object">
+ <annotation key="ccode.type-signature" value="(xx)"/>
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="priv">
+ <type name="TimeRangePrivate" c:type="ZeitgeistTimeRangePrivate*"/>
+ </field>
+ <constructor name="new" c:identifier="zeitgeist_time_range_new">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </return-value>
+ <parameters>
+ <parameter name="start_msec" transfer-ownership="none">
+ <type name="gint64" c:type="gint64"/>
+ </parameter>
+ <parameter name="end_msec" transfer-ownership="none">
+ <type name="gint64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="anytime" c:identifier="zeitgeist_time_range_new_anytime">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </return-value>
+ </constructor>
+ <constructor name="to_now" c:identifier="zeitgeist_time_range_new_to_now">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </return-value>
+ </constructor>
+ <constructor name="from_now" c:identifier="zeitgeist_time_range_new_from_now">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </return-value>
+ </constructor>
+ <constructor name="from_variant" c:identifier="zeitgeist_time_range_new_from_variant" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </return-value>
+ <parameters>
+ <parameter name="variant" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="to_variant" c:identifier="zeitgeist_time_range_to_variant">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ </method>
+ <method name="intersect" c:identifier="zeitgeist_time_range_intersect">
+ <return-value transfer-ownership="full" allow-none="1">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="start" writable="1">
+ <type name="gint64" c:type="gint64"/>
+ </property>
+ <property name="end" writable="1">
+ <type name="gint64" c:type="gint64"/>
+ </property>
+ </class>
+ <record name="TimeRangeClass" c:type="ZeitgeistTimeRangeClass" glib:is-gtype-struct-for="TimeRange">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <record name="TimeRangePrivate" c:type="ZeitgeistTimeRangePrivate" disguised="1"/>
+ <class name="Index" c:type="ZeitgeistIndex" glib:type-name="ZeitgeistIndex" glib:get-type="zeitgeist_index_get_type" glib:type-struct="IndexClass" parent="Zeitgeist.QueuedProxyWrapper">
+ <field name="parent_instance">
+ <type name="Zeitgeist.QueuedProxyWrapper" c:type="ZeitgeistQueuedProxyWrapper"/>
+ </field>
+ <field name="priv">
+ <type name="IndexPrivate" c:type="ZeitgeistIndexPrivate*"/>
+ </field>
+ <constructor name="new" c:identifier="zeitgeist_index_new">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.Index" c:type="ZeitgeistIndex*"/>
+ </return-value>
+ </constructor>
+ <method name="search" c:identifier="zeitgeist_index_search">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="Zeitgeist.ResultType" c:type="ZeitgeistResultType"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="8" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="search_finish" c:identifier="zeitgeist_index_search_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.ResultSet" c:type="ZeitgeistResultSet*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="search_with_relevancies" c:identifier="zeitgeist_index_search_with_relevancies">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="Zeitgeist.StorageState" c:type="ZeitgeistStorageState"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="Zeitgeist.ResultType" c:type="ZeitgeistResultType"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="9" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="search_with_relevancies_finish" c:identifier="zeitgeist_index_search_with_relevancies_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.ResultSet" c:type="ZeitgeistResultSet*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="relevancies" direction="out" transfer-ownership="full">
+ <array length="2">
+ <type name="gdouble" c:type="gdouble"/>
+ </array>
+ </parameter>
+ <parameter name="relevancies_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ </class>
+ <record name="IndexClass" c:type="ZeitgeistIndexClass" glib:is-gtype-struct-for="Index">
+ <field name="parent_class">
+ <type name="Zeitgeist.QueuedProxyWrapperClass" c:type="ZeitgeistQueuedProxyWrapperClass"/>
+ </field>
+ </record>
+ <record name="IndexPrivate" c:type="ZeitgeistIndexPrivate" disguised="1"/>
+ <class name="Log" c:type="ZeitgeistLog" glib:type-name="ZeitgeistLog" glib:get-type="zeitgeist_log_get_type" glib:type-struct="LogClass" parent="Zeitgeist.QueuedProxyWrapper">
+ <field name="parent_instance">
+ <type name="Zeitgeist.QueuedProxyWrapper" c:type="ZeitgeistQueuedProxyWrapper"/>
+ </field>
+ <field name="priv">
+ <type name="LogPrivate" c:type="ZeitgeistLogPrivate*"/>
+ </field>
+ <constructor name="new" c:identifier="zeitgeist_log_new">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.Log" c:type="ZeitgeistLog*"/>
+ </return-value>
+ </constructor>
+ <function name="get_default" c:identifier="zeitgeist_log_get_default">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.Log" c:type="ZeitgeistLog*"/>
+ </return-value>
+ </function>
+ <method name="insert_event" c:identifier="zeitgeist_log_insert_event">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="insert_event_finish" c:identifier="zeitgeist_log_insert_event_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array name="GLib.Array" c:type="GArray*">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="insert_events" c:identifier="zeitgeist_log_insert_events">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="events" transfer-ownership="none">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="insert_events_finish" c:identifier="zeitgeist_log_insert_events_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array name="GLib.Array" c:type="GArray*">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="insert_event_no_reply" c:identifier="zeitgeist_log_insert_event_no_reply">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="insert_event_no_reply_finish" c:identifier="zeitgeist_log_insert_event_no_reply_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="insert_events_no_reply" c:identifier="zeitgeist_log_insert_events_no_reply">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="events" transfer-ownership="none">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="insert_events_no_reply_finish" c:identifier="zeitgeist_log_insert_events_no_reply_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_events" c:identifier="zeitgeist_log_find_events">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="Zeitgeist.StorageState" c:type="ZeitgeistStorageState"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="Zeitgeist.ResultType" c:type="ZeitgeistResultType"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="7" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_events_finish" c:identifier="zeitgeist_log_find_events_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.ResultSet" c:type="ZeitgeistResultSet*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_event_ids" c:identifier="zeitgeist_log_find_event_ids">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="Zeitgeist.StorageState" c:type="ZeitgeistStorageState"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="Zeitgeist.ResultType" c:type="ZeitgeistResultType"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="7" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_event_ids_finish" c:identifier="zeitgeist_log_find_event_ids_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array length="1">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="result_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_events" c:identifier="zeitgeist_log_get_events">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="event_ids" transfer-ownership="none">
+ <array name="GLib.Array" c:type="GArray*">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_events_finish" c:identifier="zeitgeist_log_get_events_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.ResultSet" c:type="ZeitgeistResultSet*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_related_uris" c:identifier="zeitgeist_log_find_related_uris">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </parameter>
+ <parameter name="result_event_templates" transfer-ownership="none">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="Zeitgeist.StorageState" c:type="ZeitgeistStorageState"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="Zeitgeist.ResultType" c:type="ZeitgeistResultType"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="8" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_related_uris_finish" c:identifier="zeitgeist_log_find_related_uris_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array length="1">
+ <type name="utf8" c:type="gchar*"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="result_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="delete_events" c:identifier="zeitgeist_log_delete_events">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="event_ids" transfer-ownership="none">
+ <array name="GLib.Array" c:type="GArray*">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="delete_events_finish" c:identifier="zeitgeist_log_delete_events_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="quit" c:identifier="zeitgeist_log_quit">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="quit_finish" c:identifier="zeitgeist_log_quit_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="install_monitor" c:identifier="zeitgeist_log_install_monitor" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="monitor" transfer-ownership="none">
+ <type name="Zeitgeist.Monitor" c:type="ZeitgeistMonitor*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_monitor" c:identifier="zeitgeist_log_remove_monitor">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="monitor" transfer-ownership="full">
+ <type name="Zeitgeist.Monitor" c:type="ZeitgeistMonitor*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_monitor_finish" c:identifier="zeitgeist_log_remove_monitor_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_version" c:identifier="zeitgeist_log_get_version">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="major" direction="out" transfer-ownership="full">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="minor" direction="out" transfer-ownership="full">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="micro" direction="out" transfer-ownership="full">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ </class>
+ <record name="LogClass" c:type="ZeitgeistLogClass" glib:is-gtype-struct-for="Log">
+ <field name="parent_class">
+ <type name="Zeitgeist.QueuedProxyWrapperClass" c:type="ZeitgeistQueuedProxyWrapperClass"/>
+ </field>
+ </record>
+ <record name="LogPrivate" c:type="ZeitgeistLogPrivate" disguised="1"/>
+ <class name="Monitor" c:type="ZeitgeistMonitor" glib:type-name="ZeitgeistMonitor" glib:get-type="zeitgeist_monitor_get_type" glib:type-struct="MonitorClass" parent="GObject.Object">
+ <implements name="Zeitgeist.RemoteMonitor"/>
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="priv">
+ <type name="MonitorPrivate" c:type="ZeitgeistMonitorPrivate*"/>
+ </field>
+ <constructor name="new" c:identifier="zeitgeist_monitor_new">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.Monitor" c:type="ZeitgeistMonitor*"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="full">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="get_templates" c:identifier="zeitgeist_monitor_get_templates">
+ <return-value transfer-ownership="full">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </return-value>
+ </method>
+ <method name="get_path" c:identifier="zeitgeist_monitor_get_path">
+ <return-value transfer-ownership="full">
+ <type name="GLib.ObjectPath" c:type="char*"/>
+ </return-value>
+ </method>
+ <property name="time-range" writable="1" construct="1">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </property>
+ <property name="event-templates" writable="1" construct="1">
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </array>
+ </property>
+ <glib:signal name="events_inserted">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </parameter>
+ <parameter name="events" transfer-ownership="none">
+ <type name="Zeitgeist.ResultSet" c:type="ZeitgeistResultSet*"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="events_deleted">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="Zeitgeist.TimeRange" c:type="ZeitgeistTimeRange*"/>
+ </parameter>
+ <parameter name="event_ids" transfer-ownership="none">
+ <array length="2">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </parameter>
+ <parameter name="event_ids_length1" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="MonitorClass" c:type="ZeitgeistMonitorClass" glib:is-gtype-struct-for="Monitor">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <record name="MonitorPrivate" c:type="ZeitgeistMonitorPrivate" disguised="1"/>
+ <class name="QueuedProxyWrapper" c:type="ZeitgeistQueuedProxyWrapper" glib:type-name="ZeitgeistQueuedProxyWrapper" glib:get-type="zeitgeist_queued_proxy_wrapper_get_type" glib:type-struct="QueuedProxyWrapperClass" parent="GObject.Object" abstract="1">
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="priv">
+ <type name="QueuedProxyWrapperPrivate" c:type="ZeitgeistQueuedProxyWrapperPrivate*"/>
+ </field>
+ <method name="proxy_acquired" c:identifier="zeitgeist_queued_proxy_wrapper_proxy_acquired">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="proxy" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="proxy_unavailable" c:identifier="zeitgeist_queued_proxy_wrapper_proxy_unavailable">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="err" transfer-ownership="none">
+ <type name="Gio.IOErrorEnum" c:type="GError*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="process_queued_methods" c:identifier="zeitgeist_queued_proxy_wrapper_process_queued_methods">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ </method>
+ <method name="name_owner_changed" c:identifier="zeitgeist_queued_proxy_wrapper_name_owner_changed">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="on_connection_established" c:identifier="zeitgeist_queued_proxy_wrapper_on_connection_established">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ </method>
+ <virtual-method name="on_connection_established" invoker="on_connection_established">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ </virtual-method>
+ <method name="on_connection_lost" c:identifier="zeitgeist_queued_proxy_wrapper_on_connection_lost">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ </method>
+ <virtual-method name="on_connection_lost" invoker="on_connection_lost">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ </virtual-method>
+ <method name="wait_for_proxy" c:identifier="zeitgeist_queued_proxy_wrapper_wait_for_proxy">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="wait_for_proxy_finish" c:identifier="zeitgeist_queued_proxy_wrapper_wait_for_proxy_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="proxy-created" writable="1">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <property name="is-connected" writable="1">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ </class>
+ <record name="QueuedProxyWrapperClass" c:type="ZeitgeistQueuedProxyWrapperClass" glib:is-gtype-struct-for="QueuedProxyWrapper">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="on_connection_established">
+ <callback name="on_connection_established" c:type="on_connection_established">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.QueuedProxyWrapper" c:type="ZeitgeistQueuedProxyWrapper*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="on_connection_lost">
+ <callback name="on_connection_lost" c:type="on_connection_lost">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.QueuedProxyWrapper" c:type="ZeitgeistQueuedProxyWrapper*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <record name="QueuedProxyWrapperPrivate" c:type="ZeitgeistQueuedProxyWrapperPrivate" disguised="1"/>
+ <record name="QueuedProxyWrapperQueuedMethod">
+ <constructor name="new" c:identifier="zeitgeist_queued_proxy_wrapper_queued_method_new">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.QueuedProxyWrapperQueuedMethod" c:type="ZeitgeistQueuedProxyWrapperQueuedMethod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="callback" transfer-ownership="none" closure="1" destroy="2">
+ <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+ </parameter>
+ <parameter name="callback_target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ <parameter name="callback_target_destroy_notify" transfer-ownership="none">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <property name="queued-method" writable="1">
+ <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+ </property>
+ </record>
+ <interface name="RemoteRegistry" c:type="ZeitgeistRemoteRegistry" glib:type-name="ZeitgeistRemoteRegistry" glib:get-type="zeitgeist_remote_registry_get_type" glib:type-struct="RemoteRegistryIface">
+ <prerequisite name="GObject.Object"/>
+ <annotation key="dbus.name" value="org.gnome.zeitgeist.DataSourceRegistry"/>
+ <method name="get_data_sources" c:identifier="zeitgeist_remote_registry_get_data_sources">
+ <annotation key="dbus.signature" value="a(sssa(asaasay)bxb)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_data_sources_finish" c:identifier="zeitgeist_remote_registry_get_data_sources_finish" throws="1">
+ <annotation key="dbus.signature" value="a(sssa(asaasay)bxb)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="get_data_sources" invoker="get_data_sources">
+ <annotation key="dbus.signature" value="a(sssa(asaasay)bxb)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_data_sources_finish" invoker="get_data_sources_finish" throws="1">
+ <annotation key="dbus.signature" value="a(sssa(asaasay)bxb)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="register_data_source" c:identifier="zeitgeist_remote_registry_register_data_source">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="description" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="7" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="register_data_source_finish" c:identifier="zeitgeist_remote_registry_register_data_source_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="register_data_source" invoker="register_data_source">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="description" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="7" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="register_data_source_finish" invoker="register_data_source_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="set_data_source_enabled" c:identifier="zeitgeist_remote_registry_set_data_source_enabled">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="enabled" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_data_source_enabled_finish" c:identifier="zeitgeist_remote_registry_set_data_source_enabled_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="set_data_source_enabled" invoker="set_data_source_enabled">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="enabled" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_data_source_enabled_finish" invoker="set_data_source_enabled_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="get_data_source_from_id" c:identifier="zeitgeist_remote_registry_get_data_source_from_id">
+ <annotation key="dbus.signature" value="(sssa(asaasay)bxb)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_data_source_from_id_finish" c:identifier="zeitgeist_remote_registry_get_data_source_from_id_finish" throws="1">
+ <annotation key="dbus.signature" value="(sssa(asaasay)bxb)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="get_data_source_from_id" invoker="get_data_source_from_id">
+ <annotation key="dbus.signature" value="(sssa(asaasay)bxb)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_data_source_from_id_finish" invoker="get_data_source_from_id_finish" throws="1">
+ <annotation key="dbus.signature" value="(sssa(asaasay)bxb)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <glib:signal name="data_source_disconnected">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="data_source" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="data_source_enabled">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="enabled" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="data_source_registered">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="data_source" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </interface>
+ <record name="RemoteRegistryIface" c:type="ZeitgeistRemoteRegistryIface" glib:is-gtype-struct-for="RemoteRegistry">
+ <field name="parent_iface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="get_data_sources">
+ <callback name="get_data_sources" c:type="get_data_sources">
+ <annotation key="dbus.signature" value="a(sssa(asaasay)bxb)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteRegistry" c:type="ZeitgeistRemoteRegistry*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_data_sources_finish">
+ <callback name="get_data_sources_finish" c:type="get_data_sources_finish" throws="1">
+ <annotation key="dbus.signature" value="a(sssa(asaasay)bxb)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteRegistry" c:type="ZeitgeistRemoteRegistry*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="register_data_source">
+ <callback name="register_data_source" c:type="register_data_source">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteRegistry" c:type="ZeitgeistRemoteRegistry*"/>
+ </parameter>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="description" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="8" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="register_data_source_finish">
+ <callback name="register_data_source_finish" c:type="register_data_source_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteRegistry" c:type="ZeitgeistRemoteRegistry*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_data_source_enabled">
+ <callback name="set_data_source_enabled" c:type="set_data_source_enabled">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteRegistry" c:type="ZeitgeistRemoteRegistry*"/>
+ </parameter>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="enabled" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="5" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_data_source_enabled_finish">
+ <callback name="set_data_source_enabled_finish" c:type="set_data_source_enabled_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteRegistry" c:type="ZeitgeistRemoteRegistry*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_data_source_from_id">
+ <callback name="get_data_source_from_id" c:type="get_data_source_from_id">
+ <annotation key="dbus.signature" value="(sssa(asaasay)bxb)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteRegistry" c:type="ZeitgeistRemoteRegistry*"/>
+ </parameter>
+ <parameter name="unique_id" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_data_source_from_id_finish">
+ <callback name="get_data_source_from_id_finish" c:type="get_data_source_from_id_finish" throws="1">
+ <annotation key="dbus.signature" value="(sssa(asaasay)bxb)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteRegistry" c:type="ZeitgeistRemoteRegistry*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <interface name="RemoteLog" c:type="ZeitgeistRemoteLog" glib:type-name="ZeitgeistRemoteLog" glib:get-type="zeitgeist_remote_log_get_type" glib:type-struct="RemoteLogIface">
+ <prerequisite name="GObject.Object"/>
+ <annotation key="dbus.name" value="org.gnome.zeitgeist.Log"/>
+ <method name="delete_events" c:identifier="zeitgeist_remote_log_delete_events">
+ <annotation key="dbus.signature" value="(xx)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="event_ids" transfer-ownership="none">
+ <array length="1">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </parameter>
+ <parameter name="event_ids_length1" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="5" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="delete_events_finish" c:identifier="zeitgeist_remote_log_delete_events_finish" throws="1">
+ <annotation key="dbus.signature" value="(xx)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="delete_events" invoker="delete_events">
+ <annotation key="dbus.signature" value="(xx)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="event_ids" transfer-ownership="none">
+ <array length="1">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </parameter>
+ <parameter name="event_ids_length1" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="5" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="delete_events_finish" invoker="delete_events_finish" throws="1">
+ <annotation key="dbus.signature" value="(xx)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="find_event_ids" c:identifier="zeitgeist_remote_log_find_event_ids">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="8" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_event_ids_finish" c:identifier="zeitgeist_remote_log_find_event_ids_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array length="1">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="result_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="find_event_ids" invoker="find_event_ids">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="8" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="find_event_ids_finish" invoker="find_event_ids_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array length="1">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="result_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="find_events" c:identifier="zeitgeist_remote_log_find_events">
+ <annotation key="dbus.signature" value="a(asaasay)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="8" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_events_finish" c:identifier="zeitgeist_remote_log_find_events_finish" throws="1">
+ <annotation key="dbus.signature" value="a(asaasay)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="find_events" invoker="find_events">
+ <annotation key="dbus.signature" value="a(asaasay)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="8" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="find_events_finish" invoker="find_events_finish" throws="1">
+ <annotation key="dbus.signature" value="a(asaasay)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="find_related_uris" c:identifier="zeitgeist_remote_log_find_related_uris">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="result_event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="9" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_related_uris_finish" c:identifier="zeitgeist_remote_log_find_related_uris_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array length="1">
+ <type name="utf8" c:type="gchar*"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="result_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="find_related_uris" invoker="find_related_uris">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="result_event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="9" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="find_related_uris_finish" invoker="find_related_uris_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array length="1">
+ <type name="utf8" c:type="gchar*"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="result_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="get_events" c:identifier="zeitgeist_remote_log_get_events">
+ <annotation key="dbus.signature" value="a(asaasay)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="event_ids" transfer-ownership="none">
+ <array length="1">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </parameter>
+ <parameter name="event_ids_length1" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="5" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_events_finish" c:identifier="zeitgeist_remote_log_get_events_finish" throws="1">
+ <annotation key="dbus.signature" value="a(asaasay)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="get_events" invoker="get_events">
+ <annotation key="dbus.signature" value="a(asaasay)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="event_ids" transfer-ownership="none">
+ <array length="1">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </parameter>
+ <parameter name="event_ids_length1" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="5" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_events_finish" invoker="get_events_finish" throws="1">
+ <annotation key="dbus.signature" value="a(asaasay)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="insert_events" c:identifier="zeitgeist_remote_log_insert_events">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="events" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="insert_events_finish" c:identifier="zeitgeist_remote_log_insert_events_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array length="1">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="result_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="insert_events" invoker="insert_events">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="events" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="insert_events_finish" invoker="insert_events_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array length="1">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="result_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="install_monitor" c:identifier="zeitgeist_remote_log_install_monitor">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="monitor_path" transfer-ownership="none">
+ <type name="GLib.ObjectPath" c:type="const char*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="owner" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="5" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="install_monitor_finish" c:identifier="zeitgeist_remote_log_install_monitor_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="install_monitor" invoker="install_monitor">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="monitor_path" transfer-ownership="none">
+ <type name="GLib.ObjectPath" c:type="const char*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="owner" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="5" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="install_monitor_finish" invoker="install_monitor_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="remove_monitor" c:identifier="zeitgeist_remote_log_remove_monitor">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="monitor_path" transfer-ownership="none">
+ <type name="GLib.ObjectPath" c:type="const char*"/>
+ </parameter>
+ <parameter name="owner" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_monitor_finish" c:identifier="zeitgeist_remote_log_remove_monitor_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="remove_monitor" invoker="remove_monitor">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="monitor_path" transfer-ownership="none">
+ <type name="GLib.ObjectPath" c:type="const char*"/>
+ </parameter>
+ <parameter name="owner" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="remove_monitor_finish" invoker="remove_monitor_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="quit" c:identifier="zeitgeist_remote_log_quit">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="quit_finish" c:identifier="zeitgeist_remote_log_quit_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="quit" invoker="quit">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="quit_finish" invoker="quit_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <property name="extensions">
+ <annotation key="dbus.name" value="extensions"/>
+ <array>
+ <type name="utf8" c:type="gchar*"/>
+ </array>
+ </property>
+ <property name="version">
+ <annotation key="dbus.name" value="version"/>
+ <type name="Zeitgeist.VersionStruct" c:type="ZeitgeistVersionStruct"/>
+ </property>
+ </interface>
+ <record name="RemoteLogIface" c:type="ZeitgeistRemoteLogIface" glib:is-gtype-struct-for="RemoteLog">
+ <field name="parent_iface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="delete_events">
+ <callback name="delete_events" c:type="delete_events">
+ <annotation key="dbus.signature" value="(xx)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="event_ids" transfer-ownership="none">
+ <array length="2">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </parameter>
+ <parameter name="event_ids_length1" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="6" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="delete_events_finish">
+ <callback name="delete_events_finish" c:type="delete_events_finish" throws="1">
+ <annotation key="dbus.signature" value="(xx)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="find_event_ids">
+ <callback name="find_event_ids" c:type="find_event_ids">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="9" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="find_event_ids_finish">
+ <callback name="find_event_ids_finish" c:type="find_event_ids_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array length="2">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="result_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="find_events">
+ <callback name="find_events" c:type="find_events">
+ <annotation key="dbus.signature" value="a(asaasay)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="9" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="find_events_finish">
+ <callback name="find_events_finish" c:type="find_events_finish" throws="1">
+ <annotation key="dbus.signature" value="a(asaasay)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="find_related_uris">
+ <callback name="find_related_uris" c:type="find_related_uris">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="result_event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="num_events" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="10" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="find_related_uris_finish">
+ <callback name="find_related_uris_finish" c:type="find_related_uris_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array length="2">
+ <type name="utf8" c:type="gchar*"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="result_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_events">
+ <callback name="get_events" c:type="get_events">
+ <annotation key="dbus.signature" value="a(asaasay)"/>
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="event_ids" transfer-ownership="none">
+ <array length="2">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </parameter>
+ <parameter name="event_ids_length1" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="6" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_events_finish">
+ <callback name="get_events_finish" c:type="get_events_finish" throws="1">
+ <annotation key="dbus.signature" value="a(asaasay)"/>
+ <return-value transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="insert_events">
+ <callback name="insert_events" c:type="insert_events">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="events" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="sender" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="5" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="insert_events_finish">
+ <callback name="insert_events_finish" c:type="insert_events_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <array length="2">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="result_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="install_monitor">
+ <callback name="install_monitor" c:type="install_monitor">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="monitor_path" transfer-ownership="none">
+ <type name="GLib.ObjectPath" c:type="const char*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="owner" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="6" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="install_monitor_finish">
+ <callback name="install_monitor_finish" c:type="install_monitor_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="remove_monitor">
+ <callback name="remove_monitor" c:type="remove_monitor">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="monitor_path" transfer-ownership="none">
+ <type name="GLib.ObjectPath" c:type="const char*"/>
+ </parameter>
+ <parameter name="owner" transfer-ownership="none" allow-none="1">
+ <type name="GLib.BusName" c:type="const char*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="remove_monitor_finish">
+ <callback name="remove_monitor_finish" c:type="remove_monitor_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="quit">
+ <callback name="quit" c:type="quit">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="quit_finish">
+ <callback name="quit_finish" c:type="quit_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteLog" c:type="ZeitgeistRemoteLog*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <interface name="RemoteMonitor" c:type="ZeitgeistRemoteMonitor" glib:type-name="ZeitgeistRemoteMonitor" glib:get-type="zeitgeist_remote_monitor_get_type" glib:type-struct="RemoteMonitorIface">
+ <prerequisite name="GObject.Object"/>
+ <annotation key="dbus.name" value="org.gnome.zeitgeist.Monitor"/>
+ <method name="notify_insert" c:identifier="zeitgeist_remote_monitor_notify_insert">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="events" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="notify_insert_finish" c:identifier="zeitgeist_remote_monitor_notify_insert_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="notify_insert" invoker="notify_insert">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="events" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="notify_insert_finish" invoker="notify_insert_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="notify_delete" c:identifier="zeitgeist_remote_monitor_notify_delete">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_ids" transfer-ownership="none">
+ <array length="2">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </parameter>
+ <parameter name="event_ids_length1" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="notify_delete_finish" c:identifier="zeitgeist_remote_monitor_notify_delete_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="notify_delete" invoker="notify_delete">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_ids" transfer-ownership="none">
+ <array length="2">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </parameter>
+ <parameter name="event_ids_length1" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="notify_delete_finish" invoker="notify_delete_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ </interface>
+ <record name="RemoteMonitorIface" c:type="ZeitgeistRemoteMonitorIface" glib:is-gtype-struct-for="RemoteMonitor">
+ <field name="parent_iface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="notify_insert">
+ <callback name="notify_insert" c:type="notify_insert">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteMonitor" c:type="ZeitgeistRemoteMonitor*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="events" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="notify_insert_finish">
+ <callback name="notify_insert_finish" c:type="notify_insert_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteMonitor" c:type="ZeitgeistRemoteMonitor*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="notify_delete">
+ <callback name="notify_delete" c:type="notify_delete">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteMonitor" c:type="ZeitgeistRemoteMonitor*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="event_ids" transfer-ownership="none">
+ <array length="3">
+ <type name="guint32" c:type="guint32"/>
+ </array>
+ </parameter>
+ <parameter name="event_ids_length1" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="5" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="notify_delete_finish">
+ <callback name="notify_delete_finish" c:type="notify_delete_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteMonitor" c:type="ZeitgeistRemoteMonitor*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <interface name="RemoteSimpleIndexer" c:type="ZeitgeistRemoteSimpleIndexer" glib:type-name="ZeitgeistRemoteSimpleIndexer" glib:get-type="zeitgeist_remote_simple_indexer_get_type" glib:type-struct="RemoteSimpleIndexerIface">
+ <prerequisite name="GObject.Object"/>
+ <annotation key="dbus.name" value="org.gnome.zeitgeist.Index"/>
+ <method name="search" c:identifier="zeitgeist_remote_simple_indexer_search">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="query_string" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="filter_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="count" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="8" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="search_finish" c:identifier="zeitgeist_remote_simple_indexer_search_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="events" direction="out" transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="matches" direction="out" transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="search" invoker="search">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="query_string" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="filter_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="count" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="8" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="search_finish" invoker="search_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="events" direction="out" transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="matches" direction="out" transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="search_with_relevancies" c:identifier="zeitgeist_remote_simple_indexer_search_with_relevancies">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="query_string" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="filter_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="count" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="9" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="search_with_relevancies_finish" c:identifier="zeitgeist_remote_simple_indexer_search_with_relevancies_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="events" direction="out" transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="relevancies" direction="out" transfer-ownership="full">
+ <array length="3">
+ <type name="gdouble" c:type="gdouble"/>
+ </array>
+ </parameter>
+ <parameter name="relevancies_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="matches" direction="out" transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <virtual-method name="search_with_relevancies" invoker="search_with_relevancies">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="query_string" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="filter_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="count" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="9" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="search_with_relevancies_finish" invoker="search_with_relevancies_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="events" direction="out" transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="relevancies" direction="out" transfer-ownership="full">
+ <array length="3">
+ <type name="gdouble" c:type="gdouble"/>
+ </array>
+ </parameter>
+ <parameter name="relevancies_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="matches" direction="out" transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ </interface>
+ <record name="RemoteSimpleIndexerIface" c:type="ZeitgeistRemoteSimpleIndexerIface" glib:is-gtype-struct-for="RemoteSimpleIndexer">
+ <field name="parent_iface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="search">
+ <callback name="search" c:type="search">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteSimpleIndexer" c:type="ZeitgeistRemoteSimpleIndexer*"/>
+ </parameter>
+ <parameter name="query_string" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="filter_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="count" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="9" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="search_finish">
+ <callback name="search_finish" c:type="search_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteSimpleIndexer" c:type="ZeitgeistRemoteSimpleIndexer*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="events" direction="out" transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="matches" direction="out" transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="search_with_relevancies">
+ <callback name="search_with_relevancies" c:type="search_with_relevancies">
+ <return-value transfer-ownership="none">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteSimpleIndexer" c:type="ZeitgeistRemoteSimpleIndexer*"/>
+ </parameter>
+ <parameter name="query_string" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="time_range" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="filter_templates" transfer-ownership="none">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="storage_state" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="count" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="result_type" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="10" scope="async">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
+ <type name="gpointer" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="search_with_relevancies_finish">
+ <callback name="search_with_relevancies_finish" c:type="search_with_relevancies_finish" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.RemoteSimpleIndexer" c:type="ZeitgeistRemoteSimpleIndexer*"/>
+ </parameter>
+ <parameter name="_res_" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ <parameter name="events" direction="out" transfer-ownership="full">
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ <parameter name="relevancies" direction="out" transfer-ownership="full">
+ <array length="4">
+ <type name="gdouble" c:type="gdouble"/>
+ </array>
+ </parameter>
+ <parameter name="relevancies_length1" direction="out" transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ <parameter name="matches" direction="out" transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <interface name="NetworkManagerDBus" c:type="ZeitgeistNetworkManagerDBus" glib:type-name="ZeitgeistNetworkManagerDBus" glib:get-type="zeitgeist_network_manager_dbus_get_type" glib:type-struct="NetworkManagerDBusIface">
+ <prerequisite name="GObject.Object"/>
+ <annotation key="dbus.name" value="org.freedesktop.NetworkManager"/>
+ <method name="state" c:identifier="zeitgeist_network_manager_dbus_state" throws="1">
+ <annotation key="dbus.name" value="state"/>
+ <return-value transfer-ownership="full">
+ <type name="guint32" c:type="guint32"/>
+ </return-value>
+ </method>
+ <virtual-method name="state" invoker="state" throws="1">
+ <annotation key="dbus.name" value="state"/>
+ <return-value transfer-ownership="full">
+ <type name="guint32" c:type="guint32"/>
+ </return-value>
+ </virtual-method>
+ <glib:signal name="state_changed">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="state" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </interface>
+ <record name="NetworkManagerDBusIface" c:type="ZeitgeistNetworkManagerDBusIface" glib:is-gtype-struct-for="NetworkManagerDBus">
+ <field name="parent_iface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="state">
+ <callback name="state" c:type="state" throws="1">
+ <annotation key="dbus.name" value="state"/>
+ <return-value transfer-ownership="full">
+ <type name="guint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.NetworkManagerDBus" c:type="ZeitgeistNetworkManagerDBus*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <interface name="ConnmanManagerDBus" c:type="ZeitgeistConnmanManagerDBus" glib:type-name="ZeitgeistConnmanManagerDBus" glib:get-type="zeitgeist_connman_manager_dbus_get_type" glib:type-struct="ConnmanManagerDBusIface">
+ <prerequisite name="GObject.Object"/>
+ <annotation key="dbus.name" value="net.connman.Manager"/>
+ <method name="get_state" c:identifier="zeitgeist_connman_manager_dbus_get_state" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <virtual-method name="get_state" invoker="get_state" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </virtual-method>
+ <glib:signal name="state_changed">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="state" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </interface>
+ <record name="ConnmanManagerDBusIface" c:type="ZeitgeistConnmanManagerDBusIface" glib:is-gtype-struct-for="ConnmanManagerDBus">
+ <field name="parent_iface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="get_state">
+ <callback name="get_state" c:type="get_state" throws="1">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.ConnmanManagerDBus" c:type="ZeitgeistConnmanManagerDBus*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <interface name="ResultSet" c:type="ZeitgeistResultSet" glib:type-name="ZeitgeistResultSet" glib:get-type="zeitgeist_result_set_get_type" glib:type-struct="ResultSetIface">
+ <prerequisite name="GObject.Object"/>
+ <method name="size" c:identifier="zeitgeist_result_set_size">
+ <return-value transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ </method>
+ <virtual-method name="size" invoker="size">
+ <return-value transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ </virtual-method>
+ <method name="estimated_matches" c:identifier="zeitgeist_result_set_estimated_matches">
+ <return-value transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ </method>
+ <virtual-method name="estimated_matches" invoker="estimated_matches">
+ <return-value transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ </virtual-method>
+ <method name="next_value" c:identifier="zeitgeist_result_set_next_value">
+ <return-value transfer-ownership="full" allow-none="1">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </return-value>
+ </method>
+ <virtual-method name="next_value" invoker="next_value">
+ <return-value transfer-ownership="full" allow-none="1">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </return-value>
+ </virtual-method>
+ <method name="has_next" c:identifier="zeitgeist_result_set_has_next">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <virtual-method name="has_next" invoker="has_next">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <method name="tell" c:identifier="zeitgeist_result_set_tell">
+ <return-value transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ </method>
+ <virtual-method name="tell" invoker="tell">
+ <return-value transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ </virtual-method>
+ <method name="reset" c:identifier="zeitgeist_result_set_reset">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ </method>
+ <virtual-method name="reset" invoker="reset">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ </virtual-method>
+ <method name="iterator" c:identifier="zeitgeist_result_set_iterator">
+ <return-value transfer-ownership="full">
+ <type name="Zeitgeist.ResultSet" c:type="ZeitgeistResultSet*"/>
+ </return-value>
+ </method>
+ </interface>
+ <record name="ResultSetIface" c:type="ZeitgeistResultSetIface" glib:is-gtype-struct-for="ResultSet">
+ <field name="parent_iface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="size">
+ <callback name="size" c:type="size">
+ <return-value transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.ResultSet" c:type="ZeitgeistResultSet*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="estimated_matches">
+ <callback name="estimated_matches" c:type="estimated_matches">
+ <return-value transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.ResultSet" c:type="ZeitgeistResultSet*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="next_value">
+ <callback name="next_value" c:type="next_value">
+ <return-value transfer-ownership="full" allow-none="1">
+ <type name="Zeitgeist.Event" c:type="ZeitgeistEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.ResultSet" c:type="ZeitgeistResultSet*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="has_next">
+ <callback name="has_next" c:type="has_next">
+ <return-value transfer-ownership="full">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.ResultSet" c:type="ZeitgeistResultSet*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="tell">
+ <callback name="tell" c:type="tell">
+ <return-value transfer-ownership="full">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.ResultSet" c:type="ZeitgeistResultSet*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="reset">
+ <callback name="reset" c:type="reset">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Zeitgeist.ResultSet" c:type="ZeitgeistResultSet*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <record name="VersionStruct">
+ <field name="major">
+ <type name="gint" c:type="gint"/>
+ </field>
+ <field name="minor">
+ <type name="gint" c:type="gint"/>
+ </field>
+ <field name="micro">
+ <type name="gint" c:type="gint"/>
+ </field>
+ </record>
+ <function name="register_mimetype" c:identifier="zeitgeist_register_mimetype">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="mimetype" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="interpretation_uri" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="register_mimetype_regex" c:identifier="zeitgeist_register_mimetype_regex">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="mimetype_regex" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="interpretation_uri" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="interpretation_for_mimetype" c:identifier="zeitgeist_interpretation_for_mimetype">
+ <return-value transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="mimetype" transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="register_uri_scheme" c:identifier="zeitgeist_register_uri_scheme">
+ <return-value transfer-ownership="full">
+ <type name="none"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri_scheme" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="manifestation_type" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="manifestation_for_uri" c:identifier="zeitgeist_manifestation_for_uri">
+ <return-value transfer-ownership="none" allow-none="1">
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+</namespace>
+</repository>
diff --git a/libzeitgeist/Zeitgeist-2.0.typelib b/libzeitgeist/Zeitgeist-2.0.typelib
new file mode 100644
index 00000000..3f5792e6
--- /dev/null
+++ b/libzeitgeist/Zeitgeist-2.0.typelib
Binary files differ
diff --git a/libzeitgeist/data-source-registry.vala b/libzeitgeist/data-source-registry.vala
new file mode 100644
index 00000000..f3831655
--- /dev/null
+++ b/libzeitgeist/data-source-registry.vala
@@ -0,0 +1,159 @@
+/* data-source-registry.vala
+ *
+ * Copyright © 2012 Collabora Ltd.
+ * By Siegfried-Angel Gevatter Pujals <siegfried@gevatter.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/>.
+ *
+ */
+
+namespace Zeitgeist
+{
+
+ [DBus (name = "org.gnome.zeitgeist.DataSourceRegistry")]
+ protected interface RemoteRegistry: Object
+ {
+ [DBus (signature = "a(sssa(asaasay)bxb)")]
+ public abstract async Variant get_data_sources (
+ Cancellable? cancellable=null) throws Error;
+ public abstract async bool register_data_source (string unique_id,
+ string name, string description,
+ [DBus (signature = "a(asaasay)")] Variant event_templates,
+ Cancellable? cancellable=null, BusName? sender=null) throws Error;
+ public abstract async void set_data_source_enabled (string unique_id,
+ bool enabled, Cancellable? cancellable=null) throws Error;
+ [DBus (signature = "(sssa(asaasay)bxb)")]
+ public abstract async Variant get_data_source_from_id (
+ string unique_id, Cancellable? cancellable=null) throws Error;
+
+ public signal void data_source_disconnected (
+ [DBus (signature = "(sssa(asaasay)bxb)")] Variant data_source);
+ public signal void data_source_enabled (string unique_id,
+ bool enabled);
+ public signal void data_source_registered (
+ [DBus (signature = "(sssa(asaasay)bxb)")] Variant data_source);
+ }
+
+ /**
+ * Query the Zeitgeist Data-Source Registry extension
+ */
+ public class DataSourceRegistry : QueuedProxyWrapper
+ {
+
+ private RemoteRegistry proxy;
+
+ public signal void source_disconnected (DataSource data_source);
+ public signal void source_enabled (string unique_id, bool enabled);
+ public signal void source_registered (DataSource data_source);
+
+ public DataSourceRegistry ()
+ {
+ Bus.get_proxy<RemoteRegistry> (BusType.SESSION,
+ Utils.ENGINE_DBUS_NAME,
+ "/org/gnome/zeitgeist/data_source_registry", 0, null,
+ (obj, res) =>
+ {
+ try
+ {
+ proxy = Bus.get_proxy.end (res);
+ proxy_acquired (proxy);
+ }
+ catch (IOError err)
+ {
+ critical (
+ "Unable to connect to Zeitgeist's " +
+ "DataSourceRegistry: %s", err.message);
+ proxy_unavailable (err);
+ }
+ });
+ }
+
+ protected override void on_connection_established ()
+ {
+ proxy.data_source_disconnected.connect ((data_source) => {
+ try
+ {
+ var source = new DataSource.from_variant (data_source);
+ source_disconnected (source);
+ }
+ catch (DataModelError err)
+ {
+ warning ("Error parsing data-source: %s", err.message);
+ }
+ });
+ proxy.data_source_enabled.connect ((unique_id, enabled) => {
+ // FIXME: why don't we return DataSource here too? :(
+ source_enabled (unique_id, enabled);
+ });
+ proxy.data_source_registered.connect ((data_source) => {
+ try
+ {
+ var source = new DataSource.from_variant (data_source);
+ source_registered (source);
+ }
+ catch (DataModelError err)
+ {
+ warning ("Error parsing data-source: %s", err.message);
+ }
+ });
+ }
+
+ protected override void on_connection_lost ()
+ {
+ }
+
+ public async GenericArray<DataSource> get_data_sources (
+ Cancellable? cancellable=null) throws Error
+ {
+ yield wait_for_proxy ();
+ var result = yield proxy.get_data_sources (cancellable);
+ return DataSources.from_variant (result);
+ }
+
+ public async DataSource get_data_source_from_id (
+ string unique_id, Cancellable? cancellable=null) throws Error
+ {
+ yield wait_for_proxy ();
+ var result = yield proxy.get_data_source_from_id (unique_id,
+ cancellable);
+
+ return new DataSource.from_variant (result);
+ }
+
+ public async bool register_data_source (
+ DataSource data_source, Cancellable? cancellable=null) throws Error
+ {
+ yield wait_for_proxy ();
+ return yield proxy.register_data_source (
+ data_source.unique_id, data_source.name,
+ data_source.description,
+ Events.to_variant(data_source.event_templates),
+ cancellable);
+ }
+
+ // FIXME: return bool with false if error? (+ rethrow error)
+ public async void set_data_source_enabled (
+ string unique_id, bool enabled, Cancellable? cancellable=null)
+ throws Error
+ {
+ yield wait_for_proxy ();
+ yield proxy.set_data_source_enabled (unique_id, enabled,
+ cancellable);
+ }
+
+ }
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/data-source.vala b/libzeitgeist/data-source.vala
new file mode 100644
index 00000000..d398e2ca
--- /dev/null
+++ b/libzeitgeist/data-source.vala
@@ -0,0 +1,146 @@
+/* data-source.vala
+ *
+ * Copyright © 2011 Michal Hruby <michal.mhr@gmail.com>
+ * Copyright © 2011-2012 Collabora Ltd.
+ * By Siegfried-Angel Gevatter Pujals <siegfried@gevatter.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/>.
+ *
+ */
+
+/**
+ * Abstracts data sources used by the Data-Source Registry extension
+ */
+
+namespace Zeitgeist
+{
+ public class DataSource: Object
+ {
+ public string unique_id { get; set; }
+ public string name { get; set; }
+ public string description { get; set; }
+
+ public GenericArray<Event>? event_templates { get; set; }
+
+ public bool enabled { get; set; }
+ public bool running { get; set; }
+ public int64 timestamp { get; set; }
+
+ public DataSource ()
+ {
+ Object ();
+ this.enabled = true;
+ }
+
+ public DataSource.full (string unique_id, string name,
+ string description, GenericArray<Event>? templates)
+ {
+ Object (unique_id: unique_id, name: name, description: description,
+ event_templates: templates);
+ this.enabled = true;
+ }
+
+ public DataSource.from_variant (Variant variant,
+ bool reset_running=false) throws DataModelError
+ {
+ warn_if_fail (
+ variant.get_type_string () == "(sssa("+Utils.SIG_EVENT+")bxb)"
+ || variant.get_type_string () == "sssa("+Utils.SIG_EVENT+")");
+ var iter = variant.iterator ();
+
+ assert (iter.n_children () >= 4);
+ unique_id = iter.next_value ().get_string ();
+ name = iter.next_value ().get_string ();
+ description = iter.next_value ().get_string ();
+ event_templates = Events.from_variant (iter.next_value ());
+
+ if (iter.n_children () > 4)
+ {
+ running = iter.next_value ().get_boolean ();
+ if (reset_running)
+ running = false;
+ timestamp = iter.next_value ().get_int64 ();
+ enabled = iter.next_value ().get_boolean ();
+ }
+ }
+
+ public Variant to_variant ()
+ {
+ var vb = new VariantBuilder (new VariantType (
+ "(sssa("+Utils.SIG_EVENT+")bxb)"));
+
+ vb.add ("s", unique_id);
+ vb.add ("s", name);
+ vb.add ("s", description);
+ if (event_templates != null && event_templates.length > 0)
+ {
+ vb.add_value (Events.to_variant (event_templates));
+ }
+ else
+ {
+ vb.open (new VariantType ("a("+Utils.SIG_EVENT+")"));
+ vb.close ();
+ }
+
+ vb.add ("b", running);
+ vb.add ("x", timestamp);
+ vb.add ("b", enabled);
+
+ return vb.end ();
+ }
+ }
+
+ namespace DataSources
+ {
+ public const string SIG_DATASOURCES =
+ "a(sssa("+Utils.SIG_EVENT+")bxb)";
+
+ public static GenericArray<DataSource> from_variant (
+ Variant sources_variant) throws DataModelError
+ {
+ var sources = new GenericArray<DataSource> ();
+
+ warn_if_fail (
+ sources_variant.get_type_string() == SIG_DATASOURCES);
+ foreach (Variant ds_variant in sources_variant)
+ {
+ sources.add (new DataSource.from_variant (ds_variant));
+ }
+
+ return sources;
+ }
+
+ public static Variant to_variant (
+ HashTable<string, DataSource> sources)
+ {
+ var vb = new VariantBuilder (new VariantType (SIG_DATASOURCES));
+
+ List<unowned DataSource> data_sources = sources.get_values ();
+ data_sources.sort ((a, b) =>
+ {
+ return strcmp (a.unique_id, b.unique_id);
+ });
+
+ foreach (unowned DataSource ds in data_sources)
+ {
+ vb.add_value (ds.to_variant ());
+ }
+
+ return vb.end ();
+ }
+ }
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/enumerations.vala b/libzeitgeist/enumerations.vala
new file mode 100644
index 00000000..54c20178
--- /dev/null
+++ b/libzeitgeist/enumerations.vala
@@ -0,0 +1,256 @@
+/* enumerations.vala
+ *
+ * Copyright © 2011-2012 Collabora Ltd.
+ * By Seif Lotfy <seif@lotfy.com>
+ * By Siegfried-Angel Gevatter Pujals <siegfried@gevatter.com>
+ * Copyright © 2011 Manish Sinha <manishsinha@ubuntu.com>
+ * Copyright © 2011 Michal Hruby <michal.mhr@gmail.com>
+ * Copyright © 2012 Canonical Ltd.
+ * By Siegfried-A. Gevatter <siegfried.gevatter@collabora.co.uk>
+ *
+ * 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/>.
+ *
+ */
+
+using Zeitgeist;
+
+namespace Zeitgeist
+{
+
+[DBus (name = "org.gnome.zeitgeist.DataModelError")]
+public errordomain DataModelError {
+ INVALID_SIGNATURE,
+ NULL_EVENT,
+ TOO_MANY_RESULTS
+}
+
+public enum ResultType
+{
+ MOST_RECENT_EVENTS = 0, // All events with the most
+ // recent events first
+ LEAST_RECENT_EVENTS = 1, // All events with the oldest
+ // ones first
+ MOST_RECENT_SUBJECTS = 2, // One event for each subject
+ // only, ordered with the
+ // most recent events first
+ LEAST_RECENT_SUBJECTS = 3, // One event for each subject
+ // only, ordered with oldest
+ // events first
+ MOST_POPULAR_SUBJECTS = 4, // One event for each subject
+ // only, ordered by the
+ // popularity of the subject
+ LEAST_POPULAR_SUBJECTS = 5, // One event for each subject
+ // only, ordered ascendingly
+ // by popularity of the
+ // subject
+ MOST_POPULAR_ACTOR = 6, // The last event of each
+ // different actor ordered
+ // by the popularity of the
+ // actor
+ LEAST_POPULAR_ACTOR = 7, // The last event of each
+ // different actor, ordered
+ // ascendingly by the
+ // popularity of the actor
+ MOST_RECENT_ACTOR = 8, // The actor that has been used
+ // to most recently
+ LEAST_RECENT_ACTOR = 9, // The actor that has been used
+ // to least recently
+ MOST_RECENT_ORIGIN = 10, // The last event of each
+ // different subject origin.
+ LEAST_RECENT_ORIGIN = 11, // The last event of each
+ // different subject origin,
+ // ordered by least
+ // recently used first
+ MOST_POPULAR_ORIGIN = 12, // The last event of each
+ // different subject origin,
+ // ordered by the
+ // popularity of the origins
+ LEAST_POPULAR_ORIGIN = 13, // The last event of each
+ // different subject origin,
+ // ordered ascendingly by
+ // the popularity of the
+ // origin
+ OLDEST_ACTOR = 14, // The first event of each
+ // different actor
+ MOST_RECENT_SUBJECT_INTERPRETATION = 15, // One event for each subject
+ // interpretation only,
+ // ordered with the most
+ // recent events first
+ LEAST_RECENT_SUBJECT_INTERPRETATION = 16, // One event for each subject
+ // interpretation only,
+ // ordered with the least
+ // recent events first
+ MOST_POPULAR_SUBJECT_INTERPRETATION = 17, // One event for each subject
+ // interpretation only,
+ // ordered by the popularity
+ // of the subject
+ // interpretation
+ LEAST_POPULAR_SUBJECT_INTERPRETATION = 18, // One event for each subject
+ // interpretation only,
+ // ordered ascendingly by
+ // popularity of the subject
+ // interpretation
+ MOST_RECENT_MIMETYPE = 19, // One event for each mimetype
+ // only ordered with the
+ // most recent events first
+ LEAST_RECENT_MIMETYPE = 20, // One event for each mimetype
+ // only ordered with the
+ // least recent events first
+ MOST_POPULAR_MIMETYPE = 21, // One event for each mimetype
+ // only ordered by the
+ // popularity of the mimetype
+ LEAST_POPULAR_MIMETYPE = 22, // One event for each mimetype
+ // only ordered ascendingly
+ // by popularity of the
+ // mimetype
+ MOST_RECENT_CURRENT_URI = 23, // One event for each subject
+ // only by current_uri
+ // instead of uri ordered
+ // with the most recent
+ // events first
+ LEAST_RECENT_CURRENT_URI = 24, // One event for each subject
+ // only by current_uri
+ // instead of uri ordered
+ // with oldest events first
+ MOST_POPULAR_CURRENT_URI = 25, // One event for each subject
+ // only by current_uri
+ // instead of uri ordered
+ // by the popularity of the
+ // subject
+ LEAST_POPULAR_CURRENT_URI = 26, // One event for each subject
+ // only by current_uri
+ // instead of uri
+ // ordered ascendingly by
+ // popularity of the subject
+ MOST_RECENT_EVENT_ORIGIN = 27, // The last event of each
+ // different origin
+ LEAST_RECENT_EVENT_ORIGIN = 28, // The last event of each
+ // different origin, ordered
+ // by least recently used
+ // first
+ MOST_POPULAR_EVENT_ORIGIN = 29, // The last event of each
+ // different origin ordered
+ // by the popularity of the
+ // origins
+ LEAST_POPULAR_EVENT_ORIGIN = 30, // The last event of each
+ // different origin, ordered
+ // ascendingly by the
+ // popularity of the origin
+ MOST_RECENT_CURRENT_ORIGIN = 31, // The last event of each
+ // different subject origin.
+ LEAST_RECENT_CURRENT_ORIGIN = 32, // The last event of each
+ // different subject origin,
+ // ordered by least
+ // recently used first
+ MOST_POPULAR_CURRENT_ORIGIN = 33, // The last event of each
+ // different subject origin,
+ // ordered by the
+ // popularity of the origins
+ LEAST_POPULAR_CURRENT_ORIGIN = 34, // The last event of each
+ // different subject origin,
+ // ordered ascendingly by
+ // the popularity of the
+ // origin
+ RELEVANCY = 100;// Only allowed on
+ // zeitgeist_index_search().
+ // Events are sorted by query
+ // relevancy
+
+ /*
+ * Returns true if the results for the given result_type will be sorted
+ * ascendantly by date, false if they'll be sorted descendingly.
+ **/
+ public static bool is_sort_order_asc (ResultType result_type)
+ {
+ switch (result_type)
+ {
+ // FIXME: Why are LEAST_POPULAR_* using ASC?
+ case ResultType.LEAST_RECENT_EVENTS:
+ case ResultType.LEAST_RECENT_EVENT_ORIGIN:
+ case ResultType.LEAST_POPULAR_EVENT_ORIGIN:
+ case ResultType.LEAST_RECENT_SUBJECTS:
+ case ResultType.LEAST_POPULAR_SUBJECTS:
+ case ResultType.LEAST_RECENT_CURRENT_URI:
+ case ResultType.LEAST_POPULAR_CURRENT_URI:
+ case ResultType.LEAST_RECENT_ACTOR:
+ case ResultType.LEAST_POPULAR_ACTOR:
+ case ResultType.OLDEST_ACTOR:
+ case ResultType.LEAST_RECENT_ORIGIN:
+ case ResultType.LEAST_POPULAR_ORIGIN:
+ case ResultType.LEAST_RECENT_CURRENT_ORIGIN:
+ case ResultType.LEAST_POPULAR_CURRENT_ORIGIN:
+ case ResultType.LEAST_RECENT_SUBJECT_INTERPRETATION:
+ case ResultType.LEAST_POPULAR_SUBJECT_INTERPRETATION:
+ case ResultType.LEAST_RECENT_MIMETYPE:
+ case ResultType.LEAST_POPULAR_MIMETYPE:
+ return true;
+
+ case ResultType.MOST_RECENT_EVENTS:
+ case ResultType.MOST_RECENT_EVENT_ORIGIN:
+ case ResultType.MOST_POPULAR_EVENT_ORIGIN:
+ case ResultType.MOST_RECENT_SUBJECTS:
+ case ResultType.MOST_POPULAR_SUBJECTS:
+ case ResultType.MOST_RECENT_CURRENT_URI:
+ case ResultType.MOST_POPULAR_CURRENT_URI:
+ case ResultType.MOST_RECENT_ACTOR:
+ case ResultType.MOST_POPULAR_ACTOR:
+ case ResultType.MOST_RECENT_ORIGIN:
+ case ResultType.MOST_POPULAR_ORIGIN:
+ case ResultType.MOST_RECENT_CURRENT_ORIGIN:
+ case ResultType.MOST_POPULAR_CURRENT_ORIGIN:
+ case ResultType.MOST_RECENT_SUBJECT_INTERPRETATION:
+ case ResultType.MOST_POPULAR_SUBJECT_INTERPRETATION:
+ case ResultType.MOST_RECENT_MIMETYPE:
+ case ResultType.MOST_POPULAR_MIMETYPE:
+ case ResultType.RELEVANCY:
+ return false;
+
+ default:
+ warning ("Unrecognized ResultType: %u", (uint) result_type);
+ return true;
+ }
+ }
+}
+
+/*
+ * An enumeration class used to define how query results should
+ * be returned from the Zeitgeist engine.
+ */
+public enum RelevantResultType
+{
+ RECENT = 0, // All uris with the most recent uri first
+ RELATED = 1, // All uris with the most related one first
+}
+
+/**
+ * Enumeration class defining the possible values for the storage
+ * state of an event subject.
+ *
+ * The StorageState enumeration can be used to control whether or
+ * not matched events must have their subjects available to the user.
+ * Fx. not including deleted files, files on unplugged USB drives,
+ * files available only when a network is available etc.
+ */
+public enum StorageState
+{
+ NOT_AVAILABLE = 0, // The storage medium of the events
+ // subjects must not be available to the user
+ AVAILABLE = 1, // The storage medium of all event subjects
+ // must be immediately available to the user
+ ANY = 2 // The event subjects may or may not be available
+}
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/event.vala b/libzeitgeist/event.vala
new file mode 100644
index 00000000..4557eac4
--- /dev/null
+++ b/libzeitgeist/event.vala
@@ -0,0 +1,487 @@
+/* event.vala
+ *
+ * Copyright © 2011-2012 Collabora Ltd.
+ * By Seif Lotfy <seif@lotfy.com>
+ * By Siegfried-Angel Gevatter Pujals <siegfried@gevatter.com>
+ * Copyright © 2011 Manish Sinha <manishsinha@ubuntu.com>
+ * Copyright © 2011 Michal Hruby <michal.mhr@gmail.com>
+ * Copyright © 2012 Canonical Ltd.
+ * By Siegfried-A. Gevatter <siegfried.gevatter@collabora.co.uk>
+ *
+ * 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/>.
+ *
+ */
+
+using Zeitgeist;
+
+namespace Zeitgeist
+{
+
+// Also used in subject.vala
+private string? next_string_or_null (VariantIter iter)
+{
+ string text = iter.next_value ().get_string ();
+ if (text != "")
+ return text;
+ return null;
+}
+
+// Also used in subject.vala
+private bool check_field_match (string? property,
+ string? template_property, bool is_symbol = false,
+ bool can_wildcard = false)
+{
+ var matches = false;
+ var is_negated = false;
+ var parsed = template_property;
+
+ if (parsed != null)
+ is_negated = Utils.parse_negation (ref parsed);
+
+ if (Utils.is_empty_string (parsed))
+ {
+ return true;
+ }
+ else if (parsed == property)
+ {
+ matches = true;
+ }
+ else if (is_symbol && property != null &&
+ Symbol.get_all_parents (property).find_custom (parsed, strcmp) != null)
+ {
+ matches = true;
+ }
+ else if (can_wildcard && Utils.parse_wildcard (ref parsed))
+ {
+ if (property != null && property.has_prefix (parsed))
+ matches = true;
+ }
+
+ return (is_negated) ? !matches : matches;
+}
+
+/**
+ * Event objects abstract Zeitgeist events
+ *
+ * The Event class is one of the primary elements for communicating
+ * with the Zeitgeist daemon. Events serve two purposes
+ * Unsurprisingly, they represent events that have happened, but they
+ * can also act as templates. See also {@link Subject}.
+ *
+ * An event in the Zeitgeist world is characterized by two main
+ * properties. "What happened", also called the interpretation, and
+ * "How did it happen", also called the manifestation. Besides these
+ * properties, an event also has an actor which identifies the party
+ * responsible for triggering the event which in most cases will be
+ * an application. Lastly there is an event timestamp and an event ID.
+ * The timestamp is calculated as the number of milliseconds since the
+ * Unix epoch and the event ID is a number assigned to the event by
+ * the Zeitgeist engine when it's logged. These five properties are
+ * collectively known as the event metadata.
+ *
+ * An event must also describe what it happened to. For this we have
+ * event subjects. Most events have one subject, but they may also
+ * have more. The metadata of the subjects are recorded at the time
+ * of logging, and are encapsulated by the #Subject class. It's
+ * important to understand that it's just the subject metadata at the
+ * time of logging, not necessarily the subject metadata as it exists
+ * right now.
+ *
+ * In addition to the listed properties, events may also carry a free
+ * form binary payload. The usage of this is application specific and
+ * is generally useless unless you have some contextual information to
+ * figure out what's in it.
+ *
+ * A large part of the Zeitgeist query and monitoring API revolves
+ * around a concept of template matching. A query is simply a list of
+ * event templates that you want to look for in the log. An unset
+ * property on an event template indicates that anything is allowed in
+ * that field. If the property is set it indicates that the property
+ * must be an exact match, unless a special operator is used.
+ */
+public class Event : Object
+{
+ public const string SIGNATURE = "asaasay";
+
+ private static StringChunk url_store;
+
+ public uint32 id { get; set; }
+ public int64 timestamp { get; set; }
+ public string? origin { get; set; }
+
+ public string? actor
+ {
+ get { return _actor; }
+ set { _actor = (value != null) ? url_store.insert_const (value) : null; }
+ }
+ public string? interpretation
+ {
+ get { return _interpretation; }
+ set { _interpretation = (value != null) ? url_store.insert_const (value) : null; }
+ }
+ public string? manifestation
+ {
+ get { return _manifestation; }
+ set { _manifestation = (value != null) ? url_store.insert_const (value) : null; }
+ }
+
+ private unowned string? _actor;
+ private unowned string? _interpretation;
+ private unowned string? _manifestation;
+
+ public GenericArray<Subject> subjects { get; set; }
+ public ByteArray? payload { get; set; }
+
+ static construct
+ {
+ url_store = new StringChunk (4096);
+ }
+
+ construct
+ {
+ subjects = new GenericArray<Subject> ();
+ }
+
+ public Subject get_subject(int index)
+ {
+ return subjects[index];
+ }
+
+ public int num_subjects ()
+ {
+ return subjects.length;
+ }
+
+ public void add_subject (Subject subject)
+ {
+ subjects.add (subject);
+ }
+
+ public void take_subject (owned Subject subject)
+ {
+ subjects.add ((owned) subject);
+ }
+
+ public Event.full (string? interpretation=null,
+ string? manifestation=null, string? actor=null,
+ string? origin=null, ...)
+ {
+ this.interpretation = interpretation;
+ this.manifestation = manifestation;
+ this.actor = actor;
+ this.origin = origin;
+
+ // Requires Vala bug #620675 - fixed as of 2012-07-30
+ var subjects = va_list ();
+ unowned Subject subject;
+ while ((subject = subjects.arg ()) != null)
+ add_subject (subject);
+ }
+
+ public Event.from_variant (Variant event_variant) throws DataModelError {
+ Utils.assert_sig (event_variant.get_type_string () == "(" +
+ Utils.SIG_EVENT + ")", "Invalid D-Bus signature.");
+
+ VariantIter iter = event_variant.iterator ();
+
+ Utils.assert_sig (iter.n_children () >= 3, "Incomplete event struct.");
+ VariantIter event_array = iter.next_value ().iterator ();
+ VariantIter subjects_array = iter.next_value ().iterator ();
+ Variant payload_variant = iter.next_value ();
+
+ var event_props = event_array.n_children ();
+
+ if (event_props == 0)
+ {
+ throw new DataModelError.NULL_EVENT ("This is an empty event.");
+ }
+
+ Utils.assert_sig (event_props >= 5, "Missing event information.");
+ id = (uint32) uint64.parse (event_array.next_value().get_string ());
+ var str_timestamp = event_array.next_value().get_string ();
+ if (str_timestamp != "")
+ timestamp = int64.parse (str_timestamp);
+ else
+ timestamp = Timestamp.from_now ();
+ interpretation = next_string_or_null (event_array);
+ manifestation = next_string_or_null (event_array);
+ actor = next_string_or_null (event_array);
+ // let's keep this compatible with older clients
+ if (event_props >= 6)
+ origin = next_string_or_null (event_array);
+
+ for (int i = 0; i < subjects_array.n_children (); ++i) {
+ Variant subject_variant = subjects_array.next_value ();
+ subjects.add (new Subject.from_variant (subject_variant));
+ }
+
+ // Parse payload...
+ uint payload_length = (uint) payload_variant.n_children ();
+ if (payload_length > 0)
+ {
+ payload = new ByteArray.sized (payload_length);
+ unowned uint8[] data = (uint8[]?) payload_variant.get_data ();
+ data.length = (int) payload_length;
+ payload.append (data);
+ }
+ }
+
+ public void set_actor_from_info (AppInfo info)
+ {
+ if (info.get_id () != null)
+ {
+ actor = "application://" + info.get_id ();
+ }
+ else
+ {
+ string? path = null;
+ if (info is DesktopAppInfo)
+ path = (info as DesktopAppInfo).filename;
+
+ if (path != null)
+ {
+ actor = "application://" + Path.get_basename (path);
+ }
+ else if (info.get_name () != null)
+ {
+ actor = "application://" + info.get_name () + ".desktop";
+ }
+ }
+ }
+
+ public Variant to_variant ()
+ {
+ var vb = new VariantBuilder (new VariantType ("("+Utils.SIG_EVENT+")"));
+
+ vb.open (new VariantType ("as"));
+ vb.add ("s", id == 0 ? "" : id.to_string ());
+ vb.add ("s", timestamp != 0 ? timestamp.to_string () : "");
+ vb.add ("s", interpretation != null ? interpretation : "");
+ vb.add ("s", manifestation != null ? manifestation : "");
+ vb.add ("s", actor != null ? actor : "");
+ vb.add ("s", origin != null ? origin : "");
+ vb.close ();
+
+ vb.open (new VariantType ("aas"));
+ for (int i = 0; i < subjects.length; ++i) {
+ vb.add_value (subjects[i].to_variant ());
+ }
+ vb.close ();
+
+ if (payload != null)
+ {
+ Variant payload_variant = Variant.new_from_data<ByteArray> (
+ new VariantType ("ay"), payload.data, false, payload);
+ vb.add_value (payload_variant);
+ }
+ else
+ {
+ vb.open (new VariantType ("ay"));
+ vb.close ();
+ }
+
+ Variant event_variant = vb.end ().get_normal_form ();
+ Variant ret = optimize_variant_allocation (event_variant);
+ return ret;
+ }
+
+ private Variant optimize_variant_allocation (Variant event_variant) {
+ // FIXME: this uses g_new0, we dont need the mem to be zero-filled
+ uchar[] data = new uchar[event_variant.get_size ()];
+ event_variant.store (data);
+ unowned uchar[] data_copy = data;
+
+ Variant ret = Variant.new_from_data (
+ new VariantType ("("+Utils.SIG_EVENT+")"),
+ data_copy, true, (owned) data);
+ return ret;
+ }
+
+ public void debug_print ()
+ {
+ stdout.printf ("id: %d\t" +
+ "timestamp: %" + int64.FORMAT + "\n" +
+ "actor: %s\n" +
+ "interpretation: %s\n" +
+ "manifestation: %s\n" +
+ "origin: %s\n" +
+ "num subjects: %d\n",
+ id, timestamp, actor, interpretation,
+ manifestation, origin, subjects.length);
+ for (int i = 0; i < subjects.length; i++)
+ {
+ var s = subjects[i];
+ stdout.printf (" Subject #%d:\n" +
+ " uri: %s\n" +
+ " interpretation: %s\n" +
+ " manifestation: %s\n" +
+ " mimetype: %s\n" +
+ " origin: %s\n" +
+ " text: %s\n" +
+ " current_uri: %s\n" +
+ " current_origin: %s\n" +
+ " storage: %s\n",
+ i, s.uri, s.interpretation, s.manifestation,
+ s.mimetype, s.origin, s.text, s.current_uri,
+ s.current_origin, s.storage);
+ }
+ if (payload != null)
+ stdout.printf ("payload: %u bytes", payload.len);
+ else
+ stdout.printf ("payload: (null)\n");
+ }
+
+
+ public bool matches_template (Event template_event)
+ {
+ /**
+ Return True if this event matches *event_template*. The
+ matching is done where unset fields in the template is
+ interpreted as wild cards. Interpretations and manifestations
+ are also matched if they are children of the types specified
+ in `event_template`. If the template has more than one
+ subject, this event matches if at least one of the subjects
+ on this event matches any single one of the subjects on the
+ template.
+ */
+
+ //Check if interpretation is child of template_event or same
+ if (!check_field_match (this.interpretation, template_event.interpretation, true))
+ return false;
+ //Check if manifestation is child of template_event or same
+ if (!check_field_match (this.manifestation, template_event.manifestation, true))
+ return false;
+ //Check if actor is equal to template_event actor
+ if (!check_field_match (this.actor, template_event.actor, false, true))
+ return false;
+ //Check if origin is equal to template_event origin
+ if (!check_field_match (this.origin, template_event.origin, false, true))
+ return false;
+
+ if (template_event.subjects.length == 0)
+ return true;
+
+ for (int i = 0; i < this.subjects.length; i++)
+ for (int j = 0; j < template_event.subjects.length; j++)
+ if (this.subjects[i].matches_template (template_event.subjects[j]))
+ return true;
+
+ return false;
+ }
+
+}
+
+namespace Events
+{
+
+ public static GenericArray<Event?> from_variant (Variant vevents)
+ throws DataModelError
+ {
+ GenericArray<Event?> events = new GenericArray<Event> ();
+
+ assert (vevents.get_type_string () == "a("+Utils.SIG_EVENT+")");
+ foreach (Variant vevent in vevents)
+ {
+ Event? event = null;
+ try
+ {
+ event = new Event.from_variant (vevent);
+ }
+ catch (DataModelError err)
+ {
+ if (!(err is DataModelError.NULL_EVENT))
+ throw err;
+ }
+ events.add (event);
+ }
+
+ return events;
+ }
+
+ public static Variant to_variant (GenericArray<Event?> events)
+ {
+ var vb = new VariantBuilder(new VariantType("a("+Utils.SIG_EVENT+")"));
+
+ for (int i = 0; i < events.length; ++i)
+ {
+ if (events[i] != null)
+ {
+ vb.add_value (events[i].to_variant ());
+ }
+ else
+ {
+ vb.add_value (get_null_event_variant ());
+ }
+ }
+
+ return vb.end ();
+ }
+
+ /* Same as to_variant but raises an exception if the variant size
+ * exceeds `limit' bytes.
+ * */
+ public static Variant to_variant_with_limit (GenericArray<Event?> events,
+ size_t limit=Utils.MAX_DBUS_RESULT_SIZE) throws DataModelError
+ {
+ var vb = new VariantBuilder(new VariantType("a("+Utils.SIG_EVENT+")"));
+
+ size_t variant_size = 0;
+
+ for (int i = 0; i < events.length; ++i)
+ {
+ Variant event_variant;
+
+ if (events[i] != null)
+ {
+ event_variant = events[i].to_variant ();
+ }
+ else
+ {
+ event_variant = get_null_event_variant ();
+ }
+
+ variant_size += event_variant.get_size();
+ if (variant_size > limit)
+ {
+ size_t avg_event_size = variant_size / (i+1);
+ string error_message = ("Query exceeded size limit of % " +
+ size_t.FORMAT + "MiB (roughly ~%d events).").printf (
+ limit / 1024 / 1024, limit / avg_event_size);
+ warning (error_message);
+ throw new DataModelError.TOO_MANY_RESULTS (error_message);
+ }
+
+ vb.add_value (event_variant);
+ }
+
+ return vb.end ();
+ }
+
+ private static Variant get_null_event_variant ()
+ {
+ var vb = new VariantBuilder (new VariantType ("("+Utils.SIG_EVENT+")"));
+ vb.open (new VariantType ("as"));
+ vb.close ();
+ vb.open (new VariantType ("aas"));
+ vb.close ();
+ vb.open (new VariantType ("ay"));
+ vb.close ();
+ return vb.end ();
+ }
+
+}
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/index.vala b/libzeitgeist/index.vala
new file mode 100644
index 00000000..9878d11d
--- /dev/null
+++ b/libzeitgeist/index.vala
@@ -0,0 +1,207 @@
+/*
+ * Copyright © 2012 Canonical Ltd.
+ * By Siegfried-A. Gevatter <siegfried.gevatter@collabora.co.uk>
+ *
+ * Based upon a C implementation (© 2010-2012 Canonical Ltd) by:
+ * Mikkel Kamstrup Erlandsen <mikkel.kamstrup@canonical.com>
+ * Michal Hruby <michal.hruby@canonical.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/>.
+ *
+ */
+
+namespace Zeitgeist
+{
+
+/**
+ * Query the Zeitgeist Full Text Search Extension
+ *
+ * include: zeitgeist.h
+ */
+public class Index : QueuedProxyWrapper
+{
+ private RemoteSimpleIndexer proxy;
+
+ /**
+ * Create a new index that interfaces with the default event index of the
+ * Zeitgeist daemon.
+ *
+ * Create a new {@link Index} instance. The index will start to connect
+ * to Zeitgeist asynchronously. You can however start calling methods on
+ * the returned instance immediately, any method calls issued before the
+ * connection has been established will simply be queued and executed once
+ * the connection is up.
+ *
+ * Returns: A reference to a newly allocated index. Free with g_object_unref().
+ */
+ public Index ()
+ {
+ Bus.get_proxy<RemoteSimpleIndexer> (BusType.SESSION,
+ Utils.ENGINE_DBUS_NAME, "/org/gnome/zeitgeist/index/activity", 0,
+ null, (obj, res) =>
+ {
+ try
+ {
+ proxy = Bus.get_proxy.end (res);
+ proxy_acquired (proxy);
+ }
+ catch (IOError err)
+ {
+ critical ("Unable to connect to Zeitgeist FTS: %s",
+ err.message);
+ proxy_unavailable (err);
+ }
+ });
+ }
+
+ protected override void on_connection_established ()
+ {
+ }
+
+ protected override void on_connection_lost () {
+ }
+
+ /**
+ * Perform a full text search possibly restricted to a {@link TimeRange}
+ * and/or set of event templates.
+ *
+ * The default boolean operator is %AND. Thus the query
+ * //foo bar// will be interpreted as //foo AND bar//. To exclude a term
+ * from the result set prepend it with a minus sign - eg. //foo -bar//.
+ * Phrase queries can be done by double quoting the string
+ * //"foo is a bar"//. You can truncate terms by appending a *.
+ *
+ * There are a few keys you can prefix to a term or phrase to search within
+ * a specific set of metadata. They are used like //key:value//. The keys
+ * //name// and //title// search strictly within the text field of the
+ * event subjects. The key //app// searches within the application name or
+ * description that is found in the actor attribute of the events. Lastly,
+ * you can use the //site// key to search within the domain name of subject
+ * URIs.
+ *
+ * You can also control the results with the boolean operators //AND// and
+ * //OR// and you may use brackets, ( and ), to control the operator
+ * precedence.
+ *
+ * FIXME: how do we put documentation into _finish?
+ * The total hit count of the query will be available via the returned
+ * result set by calling zeitgeist_result_set_estimated_matches(). This will
+ * often be bigger than the actual number of events held in the result set,
+ * which is limited by the @num_events parameter passed to
+ * zeitgeist_index_search().
+ *
+ * @param query The search string to send to Zeitgeist
+ * @param time_range Restrict matched events to ones within this time
+ * range. If you are not interested in restricting the timerange pass
+ * zeitgeist_time_range_new_anytime() as Zeitgeist will detect
+ * this and optimize the query accordingly
+ * @param event_templates Restrict matches events to ones matching these
+ * templates
+ * @param offset Offset into the result set to read events from
+ * @param num_events Maximal number of events to retrieve
+ * @param result_type The {@link ResultType} determining the sort order.
+ * You may pass {@link ResultType.RELEVANCY} to this
+ * method to have the results ordered by relevancy calculated
+ * in relation to @query
+ * @param cancellable A {@link GLib.Cancellable} used to cancel the
+ * call or %NULL
+ */
+ public async ResultSet search (
+ string query,
+ TimeRange time_range,
+ GenericArray<Event> event_templates,
+ uint32 offset,
+ uint32 num_events,
+ ResultType result_type,
+ Cancellable? cancellable=null) throws Error
+ {
+ yield wait_for_proxy ();
+
+ Variant result;
+ uint matches;
+
+ yield proxy.search (query, time_range.to_variant (),
+ Events.to_variant (event_templates), offset, num_events,
+ result_type, out result, out matches, cancellable);
+
+ return new SimpleResultSet.with_num_matches (
+ Events.from_variant (result), matches);
+ }
+
+ /**
+ * Perform a full text search possibly restricted to a {@link TimeRange}
+ * and/or set of event templates. As opposed to zeitgeist_index_search(),
+ * this call will also return numeric relevancies of the events
+ * in the {@link ResultSet}.
+ *
+ * See zeitgeist_index_search() for more details on how to create the
+ * query.
+ *
+ * @param query The search string to send to Zeitgeist
+ * @param time_range Restrict matched events to ones within this time
+ * range. If you are not interested in restricting the timerange pass
+ * zeitgeist_time_range_new_anytime() as Zeitgeist will detect
+ * this and optimize the query accordingly
+ * @param event_templates Restrict matched events to ones matching these
+ * templates
+ * @param storage_state Filter the events by availability of the storage
+ * medium.
+ * @param offset Offset into the result set to read events from
+ * @param num_events Maximal number of events to retrieve
+ * @param result_type The {@link ResultType} determining the sort order
+ * You may pass {@link ResultType.RELEVANCY} to this method to
+ * have the results ordered by relevancy calculated in relation
+ * to "query"
+ * @param cancellable A {@link Cancellable} used to cancel the call or %NULL
+ */
+ public async ResultSet search_with_relevancies (
+ string query,
+ TimeRange time_range,
+ GenericArray<Event> event_templates,
+ StorageState storage_state,
+ uint32 offset,
+ uint32 num_events,
+ ResultType result_type,
+ Cancellable? cancellable=null,
+ out double[] relevancies) throws Error
+ {
+ yield wait_for_proxy ();
+
+ Variant result;
+ Variant relevancies_variant;
+ uint matches;
+
+ yield proxy.search_with_relevancies (query, time_range.to_variant (),
+ Events.to_variant (event_templates), storage_state, offset,
+ num_events, result_type, out relevancies_variant, out result,
+ out matches, cancellable);
+
+ relevancies = new double[relevancies_variant.n_children ()];
+ VariantIter iter = relevancies_variant.iterator ();
+ for (int i = 0; i < iter.n_children (); ++i)
+ {
+ double relevancy;
+ iter.next ("d", out relevancy);
+ relevancies[i] = relevancy;
+ }
+
+ return new SimpleResultSet.with_num_matches (
+ Events.from_variant (result), matches);
+ }
+
+}
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/log.vala b/libzeitgeist/log.vala
new file mode 100644
index 00000000..fa23efb5
--- /dev/null
+++ b/libzeitgeist/log.vala
@@ -0,0 +1,461 @@
+/*
+ * Copyright © 2012 Canonical Ltd.
+ * By Siegfried-A. Gevatter <siegfried.gevatter@collabora.co.uk>
+ *
+ * Based upon a C implementation (© 2010-2012 Canonical Ltd) by:
+ * Mikkel Kamstrup Erlandsen <mikkel.kamstrup@canonical.com>
+ * Michal Hruby <michal.hruby@canonical.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/>.
+ *
+ */
+
+/**
+ * Zeitgeist is an activity-logging framework to enable the desktop of
+ * the future.
+ *
+ * Its main component is the Zeitgeist engine, a D-Bus service that logs
+ * any events other applications send to it. An event may be anything like:
+ * - The user opened/created/modified/closed a file, or visited a website.
+ * - The user received an e-mail, a phone call or an IM notification.
+ * - Someone modified a remote (eg. Google Drive) document owned by the user.
+ *
+ * This information is then made available to other Zeitgeist-enabled
+ * applications over a powerful querying and monitoring API, and can be used
+ * and analyzed to create intelligent or adaptive interfaces.
+ *
+ * Zeitgeist also comes with a blacklist extension to make sure the user
+ * always stays in control of what information is logged.
+ */
+namespace Zeitgeist
+{
+
+/**
+ * Primary access point for talking to the Zeitgeist daemon
+ *
+ * {@link Log} encapsulates the low level access to the Zeitgeist daemon.
+ * You can use it to manage the log by inserting and deleting entries as well
+ * as do queries on the logged data.
+ *
+ * It's important to realize that the #ZeitgeistLog class does not expose
+ * any API that does synchronous communications with the message bus -
+ * everything is asynchronous. To ease development some of the methods have
+ * variants that are "fire and forget" ignoring the normal return value, so
+ * that callbacks does not have to be set up.
+ */
+public class Log : QueuedProxyWrapper
+{
+ private static Log default_instance;
+
+ private RemoteLog proxy;
+ private Variant? engine_version;
+ private HashTable<Monitor, uint> monitors;
+
+ public Log ()
+ {
+ monitors = new HashTable<Monitor, int>(direct_hash, direct_equal);
+ Bus.get_proxy<RemoteLog> (BusType.SESSION, Utils.ENGINE_DBUS_NAME,
+ Utils.ENGINE_DBUS_PATH, 0, null, (obj, res) =>
+ {
+ try
+ {
+ proxy = Bus.get_proxy.end (res);
+ proxy_acquired (proxy);
+ }
+ catch (IOError err)
+ {
+ critical ("Unable to connect to Zeitgeist: %s",
+ err.message);
+ proxy_unavailable (err);
+ }
+ });
+ }
+
+
+ /**
+ * Get a unique instance of #ZeitgeistLog, that you can share in your
+ * application without caring about memory management.
+ *
+ * See zeitgeist_log_new() for more information.
+ *
+ * @return ZeitgeistLog.
+ */
+ public static Log get_default ()
+ {
+ if (default_instance == null)
+ default_instance = new Log ();
+ return default_instance;
+ }
+
+ protected override void on_connection_established ()
+ {
+ // Reinstate all active monitors
+ foreach (unowned Monitor monitor in monitors.get_keys ())
+ {
+ reinstall_monitor (monitor);
+ }
+
+ // Update our cached version property
+ engine_version = proxy.version;
+ warn_if_fail (engine_version.get_type_string () == "(iii)");
+ }
+
+ protected override void on_connection_lost () {
+ }
+
+ /**
+ * Asynchronously send a set of events to the Zeitgeist daemon, requesting they
+ * be inserted into the log.
+ *
+ * @param event A {@link Event}
+ * @param cancellable:To cancel the operation or NULL
+ */
+ public async Array<uint32> insert_event (Event event,
+ Cancellable? cancellable=null) throws Error
+ {
+ var events = new GenericArray<Event> ();
+ events.add (event);
+ return yield insert_events (events, cancellable);
+ }
+
+
+ /**
+ * Asynchronously send a set of events to the Zeitgeist daemon, requesting they
+ * be inserted into the log.
+ *
+ * @param events An {@link GenericArray} of {@link Event}
+ * @param cancellable To cancel the operation or NULL
+ */
+ public async Array<uint32> insert_events (GenericArray<Event> events,
+ Cancellable? cancellable=null) throws Error
+ {
+ var events_cp = new GenericArray<Event>();
+ for (int i = 0; i < events.length; i++)
+ events_cp.add(events.get(i));
+ yield wait_for_proxy ();
+ uint32[] ids = yield proxy.insert_events (Events.to_variant (events_cp), cancellable);
+ var result = new Array<uint32> ();
+ // Ideally we'd just place "(owned) ids" into the GArray, but .data isn't
+ // in the Vala bindings...
+ for (int i = 0; i < ids.length; ++i)
+ result.append_val (ids[i]);
+ return result;
+ }
+
+ /**
+ * Asynchronously send a set of events to the Zeitgeist daemon, requesting they
+ * be inserted into the log.
+ * This method is &quot;fire and forget&quot; and the caller will never know
+ * whether the events was successfully inserted or not.
+ *
+ * This method is exactly equivalent to calling zeitgeist_log_insert_event()
+ * with NULL set as @cancellable, @callback, and @user_data.
+ *
+ * @param event A {@link Event}
+ */
+ public async void insert_event_no_reply (Event event)
+ throws Error
+ {
+ yield insert_event (event);
+ }
+
+ /**
+ * Asynchronously send a set of events to the Zeitgeist daemon, requesting they
+ * be inserted into the log.
+ * This method is &quot;fire and forget&quot; and the caller will never know
+ * whether the events was successfully inserted or not.
+ *
+ * This method is exactly equivalent to calling zeitgeist_log_insert_event()
+ * with NULL set as @cancellable, @callback, and @user_data.
+ *
+ * @param events An {@link GenericArray} of {@link Event}
+ */
+ public async void insert_events_no_reply (GenericArray<Event> events)
+ throws Error
+ {
+ yield insert_events (events);
+ }
+
+ /**
+ * Send a query matching a collection of {@link Event} templates to the {@link Log}.
+ * The query will match if an event matches any of the templates. If an event
+ * template has more than one {@link Subject} the query will match if any one
+ * of the {@link Subject}s templates match.
+ *
+ * The query will be done via an asynchronous DBus call and this method will
+ * return immediately. The return value will be passed to callback as a list
+ * of {@link Event}s. This list must be the sole argument for the callback.
+ *
+ * If you need to do a query yielding a large (or unpredictable) result set
+ * and you only want to show some of the results at the same time (eg., by
+ * paging them), consider using {@link find_event_ids_for_templates}.
+ *
+ * In order to use this method there needs to be a mainloop runnning.
+ * Both Qt and GLib mainloops are supported.
+ *
+ * @param time_range {@link TimeRange} A time range in which the events should be considered in
+ * @param storage_state {@link StorageState} storage state
+ * @param event_templates An {@link GenericArray} of {@link Event}
+ * @param num_events int represteing the number of events that should be returned
+ * @param result_type {@link ResultType} how the events should be grouped and sorted
+ * @param cancellable To cancel the operation or NULL
+ */
+ public async ResultSet find_events (
+ TimeRange time_range,
+ GenericArray<Event> event_templates,
+ StorageState storage_state,
+ uint32 num_events,
+ ResultType result_type,
+ Cancellable? cancellable=null) throws Error
+ {
+ var event_templates_cp = new GenericArray<Event>();
+ for (int i = 0; i < event_templates.length; i++)
+ event_templates_cp.add(event_templates.get(i));
+ yield wait_for_proxy ();
+ var result = yield proxy.find_events (time_range.to_variant (),
+ Events.to_variant (event_templates_cp), storage_state,
+ num_events, result_type, cancellable);
+ return new SimpleResultSet (Events.from_variant (result));
+ }
+
+
+ /**
+ * Send a query matching a collection of {@link Event} templates to the {@link Log}.
+ * The query will match if an event matches any of the templates. If an event
+ * template has more than one {@link Subject} the query will match if any one
+ * of the {@link Subject}s templates match.
+ *
+ * The query will be done via an asynchronous DBus call and this method will
+ * return immediately. The return value will be passed to callback as a list
+ * of intergers represrting {@link Event} id's.
+ * This list must be the sole argument for the callback.
+ *
+ * In order to use this method there needs to be a mainloop runnning.
+ * Both Qt and GLib mainloops are supported.
+ *
+ * @param time_range {@link TimeRange} A time range in which the events should be considered in
+ * @param storage_state {@link StorageState} storage state
+ * @param event_templates An {@link GenericArray} of {@link Event}
+ * @param num_events int represteing the number of events that should be returned
+ * @param result_type {@link ResultType} how the events should be grouped and sorted
+ * @param cancellable To cancel the operation or NULL
+ */
+ public async uint32[] find_event_ids (
+ TimeRange time_range,
+ GenericArray<Event> event_templates,
+ StorageState storage_state,
+ uint32 num_events,
+ ResultType result_type,
+ Cancellable? cancellable=null) throws Error
+ {
+ var event_templates_cp = new GenericArray<Event>();
+ for (int i = 0; i < event_templates.length; i++)
+ event_templates_cp.add(event_templates.get(i));
+ yield wait_for_proxy ();
+ return yield proxy.find_event_ids (time_range.to_variant (),
+ Events.to_variant (event_templates_cp), storage_state,
+ num_events, result_type, cancellable);
+ }
+
+ /**
+ * Look up a collection of {@link Event} in the {@link Log} given a collection
+ * of event ids. This is useful for looking up the event data for events found
+ * with the find_event_ids_* family of functions.
+ *
+ * Each {@link Evnet} which is not found in the {@link Log} is represented by
+ * NULL in the resulting collection. The query will be done via an asynchronous
+ * DBus call and this method will return immediately. The returned events will
+ * be passed to callback as a list of {@link Event}s, which must be the only
+ * argument of the function.
+ *
+ * In order to use this method there needs to be a mainloop runnning.
+ *
+ * @param Array<int> {@link Event} ids
+ * @param cancellable To cancel the operation or NULL
+ */
+ public async ResultSet get_events (
+ Array<uint32> event_ids,
+ Cancellable? cancellable=null) throws Error
+ {
+ uint32[] simple_event_ids = new uint32[event_ids.length];
+ for (int i = 0; i < event_ids.length; i++)
+ simple_event_ids[i] = event_ids.index (i);
+ yield wait_for_proxy ();
+ var result = yield proxy.get_events (simple_event_ids, cancellable);
+ return new SimpleResultSet(Events.from_variant (result));
+ }
+
+ /**
+ * Warning: This API is EXPERIMENTAL and is not fully supported yet.
+ *
+ * Get a list of URIs of subjects which frequently occur together with events
+ * matching event_templates. Possibly restricting to time_range or to URIs
+ * that occur as subject of events matching result_event_templates.
+ *
+ * @param time_range {@link TimeRange} A time range in which the events should be considered in
+ * @param storage_state {@link StorageState} storage state
+ * @param event_templates An {@link GenericArray} of {@link Event} describing the events to relate to
+ * @param result_templates An {@link GenericArray} of {@link Event} desrcibing the result to be returned
+ * @param num_events int represteing the number of events that should be returned
+ * @param result_type {@link ResultType} how the events should be grouped and sorted
+ * @param cancellable To cancel the operation or NULL
+ */
+ public async string[] find_related_uris (
+ TimeRange time_range,
+ GenericArray<Event> event_templates,
+ GenericArray<Event> result_event_templates,
+ StorageState storage_state,
+ uint32 num_events,
+ ResultType result_type,
+ Cancellable? cancellable=null) throws Error
+ {
+ var events_cp = new GenericArray<Event>();
+ for (int i = 0; i < event_templates.length; i++)
+ events_cp.add(event_templates.get(i));
+
+ var results_cp = new GenericArray<Event>();
+ for (int i = 0; i < result_event_templates.length; i++)
+ results_cp.add(result_event_templates.get(i));
+
+ yield wait_for_proxy ();
+ return yield proxy.find_related_uris (time_range.to_variant (),
+ Events.to_variant (events_cp),
+ Events.to_variant (results_cp),
+ storage_state, num_events, result_type, cancellable);
+ }
+
+
+ /**
+ * Delete a collection of events from the zeitgeist log given their event ids.
+ *
+ * The deletion will be done asynchronously, and this method returns immediately.
+ *
+ * @param event_ids Array<uint32>
+ */
+ public async TimeRange delete_events (Array<uint32> event_ids,
+ Cancellable? cancellable=null) throws Error
+ {
+ uint32[] _ids = new uint32 [event_ids.length];
+ for (int i=0; i<event_ids.length; i++)
+ _ids[i] = event_ids.index(i);
+ yield wait_for_proxy ();
+ Variant time_range = yield proxy.delete_events (_ids, cancellable);
+ return new TimeRange.from_variant(time_range);
+ }
+
+ public async void quit (Cancellable? cancellable=null) throws Error
+ {
+ yield wait_for_proxy ();
+ yield proxy.quit (cancellable);
+ }
+
+ /**
+ *Install a monitor in the Zeitgeist engine that calls back when events matching event_templates are logged. The matching is done exactly as in the find_* family of methods and in Event.matches_template. Furthermore matched events must also have timestamps lying in time_range.
+ *
+ * To remove a monitor call remove_monitor() on the returned Monitor instance.
+ *
+ * @param monitor A {@link Monitor} to report back inserts and deletes
+ */
+ public void install_monitor (Monitor monitor) throws Error
+ {
+ // FIXME
+ //monitor.destroy.connect (() => {});
+
+ // Save the monitor's registration id (0 = not registered)
+ monitors.insert(monitor, 0);
+
+ if (is_connected)
+ reinstall_monitor (monitor);
+ }
+
+ private async void reinstall_monitor (Monitor monitor)
+ requires (is_connected)
+ {
+ if (monitors.lookup (monitor) == 0)
+ {
+ DBusConnection conn = ((DBusProxy) proxy).get_connection ();
+
+ try
+ {
+ uint registration_id = conn.register_object<RemoteMonitor> (
+ monitor.get_path (), monitor);
+ monitors.insert (monitor, registration_id);
+ }
+ catch (GLib.IOError err)
+ {
+ warning ("Error installing monitor: %s", err.message);
+ return;
+ }
+ }
+
+ proxy.install_monitor (
+ monitor.get_path (),
+ monitor.time_range.to_variant (),
+ Events.to_variant (monitor.get_templates ()));
+ }
+
+ /**
+ * Remove a monitor from Zeitgeist engine that calls back when events matching event_templates are logged.
+ *
+ * @param monitor A {@link Monitor} to report back inserts and deletes
+ */
+ public async void remove_monitor (owned Monitor monitor) throws Error
+ {
+ yield wait_for_proxy ();
+
+ try
+ {
+ yield proxy.remove_monitor (monitor.get_path ());
+ }
+ catch (IOError err)
+ {
+ warning ("Failed to remove monitor from Zeitgeist. Retracting" +
+ "%s from the bus nonetheless: %s", monitor.get_path (),
+ err.message);
+ return;
+ }
+
+ uint registration_id = monitors.lookup (monitor);
+ if (registration_id != 0)
+ {
+ var connection = ((DBusProxy) proxy).get_connection ();
+ connection.unregister_object (registration_id);
+ }
+ }
+
+ /**
+ * Gets version of currently running Zeitgeist daemon.
+ *
+ * This method will return the version of Zeitgeist daemon this instance is
+ * connected to. If you call this method right after zeitgeist_log_new(),
+ * only zeros will be returned, a valid version number will only be returned
+ * once this instance successfully connected to the Zeitgeist daemon - ie.
+ * the value of the "is-connected" property must be TRUE (you can connect
+ * to the "notify::is-connected" signal otherwise).
+ *
+ * @param major Location for the major version
+ * @param minor Location for the minor version
+ * @param micro Location for the micro version
+ */
+ public void get_version (out int major, out int minor, out int micro) {
+ major = minor = micro = 0;
+ if (engine_version != null)
+ engine_version.get ("(iii)", &major, &minor, &micro);
+ }
+
+}
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/mimetype.vala b/libzeitgeist/mimetype.vala
new file mode 100644
index 00000000..e6abc7b5
--- /dev/null
+++ b/libzeitgeist/mimetype.vala
@@ -0,0 +1,360 @@
+/* mimetype.vala
+ *
+ * Copyright © 2011 Collabora Ltd.
+ * By Siegfried-Angel Gevatter Pujals <siegfried@gevatter.com>
+ * Copyright © 2010 Canonical, Ltd.
+ * By Mikkel Kamstrup Erlandsen <mikkel.kamstrup@canonical.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/>.
+ *
+ */
+
+using Zeitgeist;
+
+namespace Zeitgeist
+{
+
+ /**
+ * Mime-Type mapping and URI comprehension
+ */
+
+ private static bool mimetypes_loaded = false;
+ private static bool schemes_loaded = false;
+
+ private static HashTable<string, string>? mimetypes = null;
+ private static SList<MimeRegex?> mimetypes_regexs;
+ private static SList<UriScheme?> schemes;
+
+ [Compact]
+ private class MimeRegex
+ {
+ public Regex regex;
+ public string interpretation_uri;
+
+ public MimeRegex (string mimetype_regex, string interpretation_uri)
+ throws RegexError
+ {
+ this.regex = new Regex (mimetype_regex, 0, 0);
+ this.interpretation_uri = interpretation_uri;
+ }
+ }
+
+ [Compact]
+ private class UriScheme
+ {
+ public string uri_scheme;
+ public string manifestation_uri;
+
+ public UriScheme (string uri_scheme, string manifestation_uri)
+ {
+ this.uri_scheme = uri_scheme;
+ this.manifestation_uri = manifestation_uri;
+ }
+ }
+
+ /**
+ * zeitgeist_register_mimetype:
+ *
+ * Associate a MIME-type with a given interpretation type. Registered
+ * MIME-types can be looked up with zeitgeist_interpretation_for_mimetype().
+ *
+ * You can register a regular expression as mimetype if instead of this
+ * function you invoke zeitgeist_register_mimetype_regex().
+ *
+ * MIME-types are first looked up by their exact name and then if none is
+ * found the regular expressions will be checked as fallbacks.
+ *
+ * This library will install a wide range a common mimetypes for you, so
+ * unless you have very specific needs you will normally not have to call
+ * this function.
+ *
+ * @param mimetype A MIME-type string. Eg. //text/plain//
+ * @param interpretation_uri A URI defining the subject interpretation
+ * type to associate with "mimetype"
+ */
+ public void register_mimetype (string mimetype, string interpretation_uri)
+ {
+ if (mimetypes == null)
+ mimetypes = new HashTable<string, string>(str_hash, str_equal);
+
+ mimetypes.insert (mimetype, interpretation_uri);
+ }
+
+ /**
+ * zeitgeist_register_mimetype_regex:
+ *
+ * Associate a range of MIME-types with a given interpretation type.
+ * Registered MIME-types can be looked up with
+ * zeitgeist_interpretation_for_mimetype().
+ *
+ * If you only need to register one specific MIME-type, it is more efficient
+ * to use zeitgeist_register_mimetype() instead of this function.
+ *
+ * MIME-types are first looked up by their exact name and then if none is
+ * found the regular expressions will be checked as fallbacks.
+ *
+ * This library will install a wide range a common mimetypes for you, so
+ * unless you have very specific needs you will normally not have to call
+ * this function.
+ *
+ * @param mimetype_regex A regular expression matching a certain range of
+ * mimetypes. Eg. //text/.* // to match all //text// subtypes.
+ * @param interpretation_uri A URI defining the subject interpretation
+ * type to associate with the matched MIME-types
+ */
+ public void register_mimetype_regex (string mimetype_regex,
+ string interpretation_uri)
+ {
+ try
+ {
+ var entry = new MimeRegex (mimetype_regex, interpretation_uri);
+ mimetypes_regexs.append ((owned) entry);
+ } catch (RegexError e) {
+ warning ("Couldn't register mimetype regex: %s", e.message);
+ }
+ }
+
+ /**
+ * zeitgeist_interpretation_for_mimetype:
+ *
+ * Look up the subject interpretation type associated with @mimetype.
+ *
+ * @param mimetype A MIME-type string. Eg. //text/plain//
+ *
+ * @return A URI defining the subject interpretation type associated with
+ * "mimetype" or %NULL in case "mimetype" is unknown
+ */
+ public unowned string? interpretation_for_mimetype (string? mimetype)
+ {
+ ensure_mimetypes_loaded ();
+
+ if (mimetype == null)
+ return null;
+
+ unowned string? interpretation = mimetypes.lookup (mimetype);
+ if (interpretation != null)
+ return interpretation;
+
+ foreach (unowned MimeRegex mime_regex in mimetypes_regexs)
+ {
+ if (mime_regex.regex.match (mimetype, 0))
+ return mime_regex.interpretation_uri;
+ }
+
+ return null;
+ }
+
+ /**
+ * zeitgeist_register_uri_scheme:
+ *
+ * Associate a URI scheme with a given subject manifestation type.
+ * You can find the manifestation type of a given URI by passing it to
+ * zeitgeist_manifestation_for_uri().
+ *
+ * This library will install a range a common URI schemes for you, so unless
+ * you have very specific needs you will normally not have to call this
+ * function.
+ *
+ * @param uri_scheme A URI scheme such as //http:\/\///
+ * @param manifestation_type A URI defining the subject manifestation type
+ * to associate with "uri_scheme"
+ */
+ public void register_uri_scheme (string uri_scheme,
+ string manifestation_type)
+ {
+ var scheme = new UriScheme (uri_scheme, manifestation_type);
+ schemes.append ((owned) scheme);
+ }
+
+ /**
+ * zeitgeist_manifestation_for_uri
+ *
+ * Look up a subject manifestation type for a given URI. Eg. if you pass in
+ * //file:\/\/\/tmp/foo.txt// you will get back
+ * ZEITGEIST_NFO_FILE_DATA_OBJECT.
+ *
+ * @param uri An URI
+ *
+ * @return A subject manifestation type for @uri or %NULL in case no
+ * suitable manifestation type is known
+ */
+ public unowned string? manifestation_for_uri (string uri) {
+ ensure_schemes_loaded ();
+
+ foreach (unowned UriScheme scheme in schemes)
+ {
+ if (uri.has_prefix (scheme.uri_scheme))
+ return scheme.manifestation_uri;
+ }
+
+ return null;
+ }
+
+ private static void ensure_mimetypes_loaded ()
+ {
+ if (mimetypes_loaded)
+ return;
+
+ register_mimetype ("application/ecmascript", NFO.SOURCE_CODE);
+ register_mimetype ("application/javascript", NFO.SOURCE_CODE);
+ register_mimetype ("application/json", NFO.SOURCE_CODE);
+ register_mimetype ("application/ms-excel", NFO.SPREADSHEET);
+ register_mimetype ("application/ms-powerpoint", NFO.PRESENTATION);
+ register_mimetype ("application/msexcel", NFO.SPREADSHEET);
+ register_mimetype ("application/msword", NFO.PAGINATED_TEXT_DOCUMENT);
+ register_mimetype ("application/ogg", NFO.AUDIO);
+ register_mimetype ("application/pdf", NFO.PAGINATED_TEXT_DOCUMENT);
+ register_mimetype ("application/postscript", NFO.PAGINATED_TEXT_DOCUMENT);
+ register_mimetype ("application/ps", NFO.PAGINATED_TEXT_DOCUMENT);
+ register_mimetype ("application/rtf", NFO.PAGINATED_TEXT_DOCUMENT);
+ register_mimetype ("application/soap+xml", NFO.SOURCE_CODE);
+ register_mimetype ("application/vnd.corel-draw", NFO.VECTOR_IMAGE);
+ register_mimetype ("application/vnd.ms-excel", NFO.SPREADSHEET);
+ register_mimetype ("application/vnd.ms-powerpoint", NFO.PRESENTATION);
+ register_mimetype ("application/x-7z-compressed", NFO.ARCHIVE);
+ register_mimetype ("application/x-abiword", NFO.PAGINATED_TEXT_DOCUMENT);
+ register_mimetype ("application/x-applix-presents", NFO.PRESENTATION);
+ register_mimetype ("application/x-applix-spreadsheet", NFO.SPREADSHEET);
+ register_mimetype ("application/x-applix-word", NFO.PAGINATED_TEXT_DOCUMENT);
+ register_mimetype ("application/x-archive", NFO.ARCHIVE);
+ register_mimetype ("application/x-bzip", NFO.ARCHIVE);
+ register_mimetype ("application/x-bzip-compressed-tar", NFO.ARCHIVE);
+ register_mimetype ("application/x-cd-image", NFO.FILESYSTEM_IMAGE);
+ register_mimetype ("application/x-compressed-tar", NFO.ARCHIVE);
+ register_mimetype ("application/x-csh", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-deb", NFO.SOFTWARE);
+ register_mimetype ("application/x-designer", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-desktop", NFO.SOFTWARE);
+ register_mimetype ("application/x-dia-diagram", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-executable", NFO.SOFTWARE);
+ register_mimetype ("application/x-fluid", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-glade", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-gnucash", NFO.SPREADSHEET);
+ register_mimetype ("application/x-gnumeric", NFO.SPREADSHEET);
+ register_mimetype ("application/x-gzip", NFO.ARCHIVE);
+ register_mimetype ("application/x-java-archive", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-javascript", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-killustrator", NFO.VECTOR_IMAGE);
+ register_mimetype ("application/x-kpresenter", NFO.PRESENTATION);
+ register_mimetype ("application/x-kspread", NFO.SPREADSHEET);
+ register_mimetype ("application/x-kword", NFO.PAGINATED_TEXT_DOCUMENT);
+ register_mimetype ("application/x-lzma", NFO.ARCHIVE);
+ register_mimetype ("application/x-lzma-compressed-tar", NFO.ARCHIVE);
+ register_mimetype ("application/x-m4", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-ms-dos-executable", NFO.SOFTWARE);
+ register_mimetype ("application/x-perl", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-php", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-rpm", NFO.SOFTWARE);
+ register_mimetype ("application/x-ruby", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-shellscript", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-shockwave-flash", NFO.EXECUTABLE);
+ register_mimetype ("application/x-sql", NFO.SOURCE_CODE);
+ register_mimetype ("application/x-stuffit", NFO.ARCHIVE);
+ register_mimetype ("application/xhtml+xml", NFO.SOURCE_CODE);
+ register_mimetype ("application/xml", NFO.SOURCE_CODE);
+ register_mimetype ("application/xml-dtd", NFO.SOURCE_CODE);
+ register_mimetype ("application/zip", NFO.ARCHIVE);
+ register_mimetype ("audio/x-scpls", NFO.MEDIA_LIST);
+ register_mimetype ("image/gif", NFO.RASTER_IMAGE);
+ register_mimetype ("image/jpeg", NFO.RASTER_IMAGE);
+ register_mimetype ("image/pjpeg", NFO.RASTER_IMAGE);
+ register_mimetype ("image/png", NFO.RASTER_IMAGE);
+ register_mimetype ("image/svg+xml", NFO.VECTOR_IMAGE);
+ register_mimetype ("image/tiff", NFO.RASTER_IMAGE);
+ register_mimetype ("image/vnd.microsoft.icon", NFO.ICON);
+ register_mimetype ("image/x-xcf", NFO.RASTER_IMAGE);
+ register_mimetype ("inode/directory", NFO.FOLDER);
+ register_mimetype ("message/alternative", NMO.EMAIL);
+ register_mimetype ("message/partial", NMO.EMAIL);
+ register_mimetype ("message/related", NMO.EMAIL);
+ register_mimetype ("text/css", NFO.SOURCE_CODE);
+ register_mimetype ("text/csv", NFO.TEXT_DOCUMENT);
+ register_mimetype ("text/html", NFO.HTML_DOCUMENT);
+ register_mimetype ("text/javascript", NFO.SOURCE_CODE);
+ register_mimetype ("text/plain", NFO.TEXT_DOCUMENT);
+ register_mimetype ("text/vcard", NCO.CONTACT);
+ register_mimetype ("text/x-c", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-c++", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-c++src", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-chdr", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-copying", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-credits", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-csharp", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-csrc", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-dsrc", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-eiffel", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-gettext-translation", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-gettext-translation-template", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-haskell", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-idl", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-java", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-jquery-tmpl", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-latex", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-lisp", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-lua", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-m4", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-makefile", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-objcsrc", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-ocaml", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-pascal", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-patch", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-python", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-sql", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-tcl", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-tex", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-troff", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-vala", NFO.SOURCE_CODE);
+ register_mimetype ("text/x-vhdl", NFO.SOURCE_CODE);
+ register_mimetype ("text/xml", NFO.SOURCE_CODE);
+
+ register_mimetype_regex (".*/x-dvi", NFO.PAGINATED_TEXT_DOCUMENT);
+ register_mimetype_regex ("application/vnd.ms-excel.*", NFO.SPREADSHEET);
+ register_mimetype_regex ("application/vnd.ms-powerpoint.*", NFO.PRESENTATION);
+ register_mimetype_regex ("application/vnd.oasis.opendocument.graphics.*", NFO.VECTOR_IMAGE);
+ register_mimetype_regex ("application/vnd.oasis.opendocument.presentation.*", NFO.PRESENTATION);
+ register_mimetype_regex ("application/vnd.oasis.opendocument.spreadsheet.*", NFO.SPREADSHEET);
+ register_mimetype_regex ("application/vnd.oasis.opendocument.text.*", NFO.PAGINATED_TEXT_DOCUMENT);
+ register_mimetype_regex ("application/vnd.openxmlformats-officedocument.presentationml.presentation.*", NFO.PRESENTATION);
+ register_mimetype_regex ("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.*", NFO.SPREADSHEET);
+ register_mimetype_regex ("application/vnd.openxmlformats-officedocument.wordprocessingml.document.*", NFO.PAGINATED_TEXT_DOCUMENT);
+ register_mimetype_regex ("application/vnd\\..*", NFO.DOCUMENT);
+ register_mimetype_regex ("application/x-applix-.*", NFO.DOCUMENT);
+ register_mimetype_regex ("audio/.*", NFO.AUDIO);
+ register_mimetype_regex ("image/.*", NFO.IMAGE);
+ register_mimetype_regex ("video/.*", NFO.VIDEO);
+
+ mimetypes_loaded = true;
+ }
+
+ private static void ensure_schemes_loaded ()
+ {
+ if (schemes_loaded)
+ return;
+
+ register_uri_scheme ("file://", NFO.FILE_DATA_OBJECT);
+ register_uri_scheme ("http://", NFO.WEB_DATA_OBJECT);
+ register_uri_scheme ("https://", NFO.WEB_DATA_OBJECT);
+ register_uri_scheme ("ssh://", NFO.REMOTE_DATA_OBJECT);
+ register_uri_scheme ("sftp://", NFO.REMOTE_DATA_OBJECT);
+ register_uri_scheme ("ftp://", NFO.REMOTE_DATA_OBJECT);
+ register_uri_scheme ("dav://", NFO.REMOTE_DATA_OBJECT);
+ register_uri_scheme ("davs://", NFO.REMOTE_DATA_OBJECT);
+ register_uri_scheme ("smb://", NFO.REMOTE_DATA_OBJECT);
+
+ schemes_loaded = true;
+ }
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/monitor.vala b/libzeitgeist/monitor.vala
new file mode 100644
index 00000000..754d9d97
--- /dev/null
+++ b/libzeitgeist/monitor.vala
@@ -0,0 +1,146 @@
+/*
+ * Copyright © 2012 Canonical Ltd.
+ * By Siegfried-A. Gevatter <siegfried.gevatter@collabora.co.uk>
+ *
+ * Based upon a C implementation (© 2010 Canonical Ltd) by:
+ * Mikkel Kamstrup Erlandsen <mikkel.kamstrup@canonical.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/>.
+ *
+ */
+
+namespace Zeitgeist
+{
+
+/**
+ * Listens for updates to the Zeitgeist event log
+ *
+ * A #Monitor listens for updates to the Zeitgeist event log
+ * matching a given set of templates and with timestamps in some predefined
+ * time range.
+ *
+ * A monitor must be installed into the running Zeitgeist daemon by calling
+ * zeitgeist_log_install_monitor(). The monitor will not emit any of the
+ * ::events-added or ::events-deleted signals before this.
+ */
+public class Monitor : Object, RemoteMonitor
+{
+
+ private static int monitor_counter = 0;
+
+ public TimeRange time_range {get; construct set;}
+ public GenericArray<Event> event_templates {get; construct set;}
+
+ // Client side D-Bus path the monitor lives under
+ private ObjectPath monitor_path;
+
+ /**
+ * ZeitgeistMonitor::events-inserted:
+ *
+ * Emitted when events matching the event templates and with timestamps
+ * within the time range of the monitor has been inserted into the log.
+ *
+ * @param time_range A #ZeitgeistTimeRange that specifies the minimum and
+ * maximum of the timestamps in @events
+ * @param events A #ZeitgeistResultSet holding the "ZeitgeistEvent"s that
+ * have been inserted into the log
+ */
+ public signal void events_inserted (TimeRange time_range,
+ ResultSet events);
+
+ /**
+ * ZeitgeistMonitor::events-deleted:
+ *
+ * Emitted when events with timestamps within the time range of this
+ * monitor have been deleted from the log. Note that the deleted events
+ * may not match the event templates for the monitor.
+ *
+ * @param time_range A #ZeitgeistTimeRange that specifies the minimum and
+ * maximum timestamps of the deleted events
+ * @param event_ids A #GArray of #guint32<!-- -->s holding the IDs of the
+ * deleted events
+ */
+ public signal void events_deleted (TimeRange time_range,
+ uint32[] event_ids);
+
+ /**
+ * zeitgeist_monitor_new
+ *
+ * Create a new monitor. Before you can receive signals from the monitor you
+ * need to install it in the running Zeitgeist daemon by calling
+ * zeitgeist_log_install_monitor().
+ *
+ * @param time_range The monitor will only listen for events with
+ * timestamps within this time range. Note that it is legal for
+ * applications to insert events that are "in the past".
+ * @param event_templates A #GPtrArray of #ZeitgeistEvent<!-- -->s.
+ * Only listen for events that match any of these templates.
+ *
+ * @return A reference to a newly allocated monitor
+ */
+ public Monitor (TimeRange time_range, owned GenericArray<Event> event_templates)
+ {
+ this.time_range = time_range;
+ this.event_templates = event_templates;
+ this.monitor_path = new ObjectPath (
+ "/org/gnome/zeitgeist/monitor/%i".printf (monitor_counter++));
+ }
+
+ public GenericArray<Event> get_templates ()
+ {
+ return event_templates;
+ }
+
+ public ObjectPath get_path ()
+ {
+ return monitor_path;
+ }
+
+ public async void notify_insert (
+ Variant time_range,
+ Variant events)
+ {
+ try
+ {
+ SimpleResultSet result_set = new SimpleResultSet (
+ Events.from_variant (events));
+ events_inserted (new TimeRange.from_variant (time_range),
+ result_set);
+ }
+ catch (DataModelError err)
+ {
+ warning ("%s", err.message);
+ }
+ }
+
+ public async void notify_delete (
+ Variant time_range,
+ uint32[] event_ids)
+ {
+ try
+ {
+ events_deleted (new TimeRange.from_variant (time_range),
+ event_ids);
+ }
+ catch (DataModelError err)
+ {
+ warning ("%s", err.message);
+ }
+ }
+
+}
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/ontology-uris.vala b/libzeitgeist/ontology-uris.vala
new file mode 100644
index 00000000..63f97228
--- /dev/null
+++ b/libzeitgeist/ontology-uris.vala
@@ -0,0 +1,1245 @@
+// This file has been auto-generated by the ontology2code script.
+// Do not modify it directly.
+
+/* ontology-uris.vala
+ *
+ * Copyright © 2009-2012 The Zeitgeist Team
+ *
+ * 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/>.
+ *
+ */
+
+namespace Zeitgeist
+{
+
+ namespace NCAL
+ {
+
+ /**
+ * ALARM:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Alarm]]
+ *
+ * Provide a grouping of component properties that define an alarm.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string ALARM = "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Alarm";
+
+ /**
+ * ATTACHMENT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Attachment]]
+ *
+ * An object attached to a calendar entity. This class has been introduced to serve as a structured value of the ncal:attach property. See the documentation of ncal:attach for details.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.ATTACHMENT}
+ */
+ public const string ATTACHMENT = "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Attachment";
+
+ /**
+ * CALENDAR:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Calendar]]
+ *
+ * A calendar. Inspirations for this class can be traced to the VCALENDAR component defined in RFC 2445 sec. 4.4, but it may just as well be used to represent any kind of Calendar.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string CALENDAR = "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Calendar";
+
+ /**
+ * CALENDAR_DATA_OBJECT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#CalendarDataObject]]
+ *
+ * A DataObject found in a calendar. It is usually interpreted as one of the calendar entity types (e.g. Event, Journal, Todo etc.)
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.DATA_OBJECT}
+ */
+ public const string CALENDAR_DATA_OBJECT = "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#CalendarDataObject";
+
+ /**
+ * EVENT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Event]]
+ *
+ * Provide a grouping of component properties that describe an event.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string EVENT = "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Event";
+
+ /**
+ * FREEBUSY:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Freebusy]]
+ *
+ * Provide a grouping of component properties that describe either a request for free/busy time, describe a response to a request for free/busy time or describe a published set of busy time.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string FREEBUSY = "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Freebusy";
+
+ /**
+ * JOURNAL:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Journal]]
+ *
+ * Provide a grouping of component properties that describe a journal entry.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string JOURNAL = "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Journal";
+
+ /**
+ * TIMEZONE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Timezone]]
+ *
+ * Provide a grouping of component properties that defines a time zone.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string TIMEZONE = "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Timezone";
+
+ /**
+ * TODO:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Todo]]
+ *
+ * Provide a grouping of calendar properties that describe a to-do.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string TODO = "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Todo";
+
+ }
+
+ namespace NCO
+ {
+
+ /**
+ * CONTACT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nco#Contact]]
+ *
+ * A Contact. A piece of data that can provide means to identify or communicate with an entity.
+ *
+ * Children: {@link NCO.PERSON_CONTACT}, {@link NCO.ORGANIZATION_CONTACT}
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string CONTACT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#Contact";
+
+ /**
+ * CONTACT_GROUP:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactGroup]]
+ *
+ * A group of Contacts. Could be used to express a group in an addressbook or on a contact list of an IM application. One contact can belong to many groups.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string CONTACT_GROUP = "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactGroup";
+
+ /**
+ * CONTACT_LIST:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactList]]
+ *
+ * A contact list, this class represents an addressbook or a contact list of an IM application. Contacts inside a contact list can belong to contact groups.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string CONTACT_LIST = "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactList";
+
+ /**
+ * CONTACT_LIST_DATA_OBJECT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactListDataObject]]
+ *
+ * An entity occuring on a contact list (usually interpreted as an nco:Contact)
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.DATA_OBJECT}
+ */
+ public const string CONTACT_LIST_DATA_OBJECT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactListDataObject";
+
+ /**
+ * ORGANIZATION_CONTACT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nco#OrganizationContact]]
+ *
+ * A Contact that denotes on Organization.
+ *
+ * Children: None
+ *
+ * Parents: {@link NCO.CONTACT}
+ */
+ public const string ORGANIZATION_CONTACT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#OrganizationContact";
+
+ /**
+ * PERSON_CONTACT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nco#PersonContact]]
+ *
+ * A Contact that denotes a Person. A person can have multiple Affiliations.
+ *
+ * Children: None
+ *
+ * Parents: {@link NCO.CONTACT}
+ */
+ public const string PERSON_CONTACT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#PersonContact";
+
+ }
+
+ namespace NFO
+ {
+
+ /**
+ * APPLICATION:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Application]]
+ *
+ * An application
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.SOFTWARE}
+ */
+ public const string APPLICATION = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Application";
+
+ /**
+ * ARCHIVE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Archive]]
+ *
+ * A compressed file. May contain other files or folder inside.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.DATA_CONTAINER}
+ */
+ public const string ARCHIVE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Archive";
+
+ /**
+ * ARCHIVE_ITEM:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#ArchiveItem]]
+ *
+ * A file entity inside an archive.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.EMBEDDED_FILE_DATA_OBJECT}
+ */
+ public const string ARCHIVE_ITEM = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#ArchiveItem";
+
+ /**
+ * ATTACHMENT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Attachment]]
+ *
+ * A file attached to another data object. Many data formats allow for attachments: emails, vcards, ical events, id3 and exif...
+ *
+ * Children: {@link NCAL.ATTACHMENT}
+ *
+ * Parents: {@link NFO.EMBEDDED_FILE_DATA_OBJECT}
+ */
+ public const string ATTACHMENT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Attachment";
+
+ /**
+ * AUDIO:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Audio]]
+ *
+ * A file containing audio content
+ *
+ * Children: {@link NMM.MUSIC_PIECE}
+ *
+ * Parents: {@link NFO.MEDIA}
+ */
+ public const string AUDIO = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Audio";
+
+ /**
+ * BOOKMARK:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Bookmark]]
+ *
+ * A bookmark of a webbrowser. Use nie:title for the name/label, nie:contentCreated to represent the date when the user added the bookmark, and nie:contentLastModified for modifications. nfo:bookmarks to store the link.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string BOOKMARK = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Bookmark";
+
+ /**
+ * BOOKMARK_FOLDER:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#BookmarkFolder]]
+ *
+ * A folder with bookmarks of a webbrowser. Use nfo:containsBookmark to relate Bookmarks. Folders can contain subfolders, use containsBookmarkFolder to relate them.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string BOOKMARK_FOLDER = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#BookmarkFolder";
+
+ /**
+ * CURSOR:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Cursor]]
+ *
+ * A Cursor.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.RASTER_IMAGE}
+ */
+ public const string CURSOR = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Cursor";
+
+ /**
+ * DATA_CONTAINER:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer]]
+ *
+ * A superclass for all entities, whose primary purpose is to serve as containers for other data object. They usually don't have any "meaning" by themselves. Examples include folders, archives and optical disc images.
+ *
+ * Children: {@link NFO.FILESYSTEM}, {@link NFO.ARCHIVE}, {@link NFO.FOLDER}, {@link NFO.TRASH}
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string DATA_CONTAINER = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer";
+
+ /**
+ * DELETED_RESOURCE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DeletedResource]]
+ *
+ * A file entity that has been deleted from the original source. Usually such entities are stored within various kinds of 'Trash' or 'Recycle Bin' folders.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.FILE_DATA_OBJECT}
+ */
+ public const string DELETED_RESOURCE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DeletedResource";
+
+ /**
+ * DOCUMENT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Document]]
+ *
+ * A generic document. A common superclass for all documents on the desktop.
+ *
+ * Children: {@link NFO.TEXT_DOCUMENT}, {@link NFO.PRESENTATION}, {@link NFO.MIND_MAP}, {@link NFO.SPREADSHEET}
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string DOCUMENT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Document";
+
+ /**
+ * EMBEDDED_FILE_DATA_OBJECT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#EmbeddedFileDataObject]]
+ *
+ * A file embedded in another data object. There are many ways in which a file may be embedded in another one. Use this class directly only in cases if none of the subclasses gives a better description of your case.
+ *
+ * Children: {@link NFO.ARCHIVE_ITEM}, {@link NFO.ATTACHMENT}
+ *
+ * Parents: {@link NFO.FILE_DATA_OBJECT}
+ */
+ public const string EMBEDDED_FILE_DATA_OBJECT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#EmbeddedFileDataObject";
+
+ /**
+ * EXECUTABLE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Executable]]
+ *
+ * An executable file.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string EXECUTABLE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Executable";
+
+ /**
+ * FILESYSTEM:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Filesystem]]
+ *
+ * A filesystem. Examples of filesystems include hard disk partitions, removable media, but also images thereof stored in files such as ISO.
+ *
+ * Children: {@link NFO.FILESYSTEM_IMAGE}
+ *
+ * Parents: {@link NFO.DATA_CONTAINER}
+ */
+ public const string FILESYSTEM = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Filesystem";
+
+ /**
+ * FILESYSTEM_IMAGE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FilesystemImage]]
+ *
+ * An image of a filesystem. Instances of this class may include CD images, DVD images or hard disk partition images created by various pieces of software (e.g. Norton Ghost). Deprecated in favor of nfo:Filesystem.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.FILESYSTEM}
+ */
+ public const string FILESYSTEM_IMAGE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FilesystemImage";
+
+ /**
+ * FILE_DATA_OBJECT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject]]
+ *
+ * A resource containing a finite sequence of bytes with arbitrary information, that is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished.
+ *
+ * Children: {@link NFO.EMBEDDED_FILE_DATA_OBJECT}, {@link NFO.DELETED_RESOURCE}, {@link NFO.REMOTE_DATA_OBJECT}
+ *
+ * Parents: {@link NIE.DATA_OBJECT}
+ */
+ public const string FILE_DATA_OBJECT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject";
+
+ /**
+ * FOLDER:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder]]
+ *
+ * A folder/directory. Examples of folders include folders on a filesystem and message folders in a mailbox.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.DATA_CONTAINER}
+ */
+ public const string FOLDER = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder";
+
+ /**
+ * FONT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Font]]
+ *
+ * A font.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string FONT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Font";
+
+ /**
+ * HARD_DISK_PARTITION:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#HardDiskPartition]]
+ *
+ * A partition on a hard disk
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.DATA_OBJECT}
+ */
+ public const string HARD_DISK_PARTITION = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#HardDiskPartition";
+
+ /**
+ * HTML_DOCUMENT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#HtmlDocument]]
+ *
+ * A HTML document, may contain links to other files.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.PLAIN_TEXT_DOCUMENT}
+ */
+ public const string HTML_DOCUMENT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#HtmlDocument";
+
+ /**
+ * ICON:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Icon]]
+ *
+ * An Icon (regardless of whether it's a raster or a vector icon. A resource representing an icon could have two types (Icon and Raster, or Icon and Vector) if required.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.IMAGE}
+ */
+ public const string ICON = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Icon";
+
+ /**
+ * IMAGE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Image]]
+ *
+ * A file containing an image.
+ *
+ * Children: {@link NFO.ICON}, {@link NFO.VECTOR_IMAGE}, {@link NFO.RASTER_IMAGE}
+ *
+ * Parents: {@link NFO.VISUAL}
+ */
+ public const string IMAGE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Image";
+
+ /**
+ * MEDIA:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Media]]
+ *
+ * A piece of media content. This class may be used to express complex media containers with many streams of various media content (both aural and visual).
+ *
+ * Children: {@link NFO.VISUAL}, {@link NFO.AUDIO}
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string MEDIA = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Media";
+
+ /**
+ * MEDIA_LIST:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MediaList]]
+ *
+ * A file containing a list of media files.e.g. a playlist
+ *
+ * Children: {@link NMM.MUSIC_ALBUM}
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string MEDIA_LIST = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MediaList";
+
+ /**
+ * MEDIA_STREAM:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MediaStream]]
+ *
+ * A stream of multimedia content, usually contained within a media container such as a movie (containing both audio and video) or a DVD (possibly containing many streams of audio and video). Most common interpretations for such a DataObject include Audio and Video.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.DATA_OBJECT}
+ */
+ public const string MEDIA_STREAM = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MediaStream";
+
+ /**
+ * MIND_MAP:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MindMap]]
+ *
+ * A MindMap, created by a mind-mapping utility. Examples might include FreeMind or mind mapper.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.DOCUMENT}
+ */
+ public const string MIND_MAP = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MindMap";
+
+ /**
+ * OPERATING_SYSTEM:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#OperatingSystem]]
+ *
+ * An OperatingSystem
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.SOFTWARE}
+ */
+ public const string OPERATING_SYSTEM = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#OperatingSystem";
+
+ /**
+ * PAGINATED_TEXT_DOCUMENT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PaginatedTextDocument]]
+ *
+ * A file containing a text document, that is unambiguously divided into pages. Examples might include PDF, DOC, PS, DVI etc.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.TEXT_DOCUMENT}
+ */
+ public const string PAGINATED_TEXT_DOCUMENT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PaginatedTextDocument";
+
+ /**
+ * PLAIN_TEXT_DOCUMENT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PlainTextDocument]]
+ *
+ * A file containing plain text (ASCII, Unicode or other encodings). Examples may include TXT, HTML, XML, program source code etc.
+ *
+ * Children: {@link NFO.SOURCE_CODE}, {@link NFO.HTML_DOCUMENT}
+ *
+ * Parents: {@link NFO.TEXT_DOCUMENT}
+ */
+ public const string PLAIN_TEXT_DOCUMENT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PlainTextDocument";
+
+ /**
+ * PRESENTATION:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Presentation]]
+ *
+ * A Presentation made by some presentation software (Corel Presentations, OpenOffice Impress, MS Powerpoint etc.)
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.DOCUMENT}
+ */
+ public const string PRESENTATION = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Presentation";
+
+ /**
+ * RASTER_IMAGE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RasterImage]]
+ *
+ * A raster image.
+ *
+ * Children: {@link NFO.CURSOR}
+ *
+ * Parents: {@link NFO.IMAGE}
+ */
+ public const string RASTER_IMAGE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RasterImage";
+
+ /**
+ * REMOTE_DATA_OBJECT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemoteDataObject]]
+ *
+ * A file data object stored at a remote location. Don't confuse this class with a RemotePortAddress. This one applies to a particular resource, RemotePortAddress applies to an address, that can have various interpretations.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.FILE_DATA_OBJECT}
+ */
+ public const string REMOTE_DATA_OBJECT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemoteDataObject";
+
+ /**
+ * REMOTE_PORT_ADDRESS:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemotePortAddress]]
+ *
+ * An address specifying a remote host and port. Such an address can be interpreted in many ways (examples of such interpretations include mailboxes, websites, remote calendars or filesystems), depending on an interpretation, various kinds of data may be extracted from such an address.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.DATA_OBJECT}
+ */
+ public const string REMOTE_PORT_ADDRESS = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemotePortAddress";
+
+ /**
+ * SOFTWARE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Software]]
+ *
+ * A piece of software. Examples may include applications and the operating system. This interpretation most commonly applies to SoftwareItems.
+ *
+ * Children: {@link NFO.OPERATING_SYSTEM}, {@link NFO.APPLICATION}
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string SOFTWARE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Software";
+
+ /**
+ * SOFTWARE_ITEM:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SoftwareItem]]
+ *
+ * A DataObject representing a piece of software. Examples of interpretations of a SoftwareItem include an Application and an OperatingSystem.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.DATA_OBJECT}
+ */
+ public const string SOFTWARE_ITEM = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SoftwareItem";
+
+ /**
+ * SOFTWARE_SERVICE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SoftwareService]]
+ *
+ * A service published by a piece of software, either by an operating system or an application. Examples of such services may include calendar, addressbook and mailbox managed by a PIM application. This category is introduced to distinguish between data available directly from the applications (Via some Interprocess Communication Mechanisms) and data available from files on a disk. In either case both DataObjects would receive a similar interpretation (e.g. a Mailbox) and wouldn't differ on the content level.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.DATA_OBJECT}
+ */
+ public const string SOFTWARE_SERVICE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SoftwareService";
+
+ /**
+ * SOURCE_CODE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SourceCode]]
+ *
+ * Code in a compilable or interpreted programming language.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.PLAIN_TEXT_DOCUMENT}
+ */
+ public const string SOURCE_CODE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SourceCode";
+
+ /**
+ * SPREADSHEET:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Spreadsheet]]
+ *
+ * A spreadsheet, created by a spreadsheet application. Examples might include Gnumeric, OpenOffice Calc or MS Excel.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.DOCUMENT}
+ */
+ public const string SPREADSHEET = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Spreadsheet";
+
+ /**
+ * TEXT_DOCUMENT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#TextDocument]]
+ *
+ * A text document
+ *
+ * Children: {@link NFO.PAGINATED_TEXT_DOCUMENT}, {@link NFO.PLAIN_TEXT_DOCUMENT}
+ *
+ * Parents: {@link NFO.DOCUMENT}
+ */
+ public const string TEXT_DOCUMENT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#TextDocument";
+
+ /**
+ * TRASH:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Trash]]
+ *
+ * Represents a container for deleted files, a feature common in modern operating systems.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.DATA_CONTAINER}
+ */
+ public const string TRASH = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Trash";
+
+ /**
+ * VECTOR_IMAGE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#VectorImage]]
+ *
+ *
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.IMAGE}
+ */
+ public const string VECTOR_IMAGE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#VectorImage";
+
+ /**
+ * VIDEO:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Video]]
+ *
+ * A video file.
+ *
+ * Children: {@link NMM.TVSHOW}, {@link NMM.MOVIE}
+ *
+ * Parents: {@link NFO.VISUAL}
+ */
+ public const string VIDEO = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Video";
+
+ /**
+ * VISUAL:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Visual]]
+ *
+ * File containing visual content.
+ *
+ * Children: {@link NFO.IMAGE}, {@link NFO.VIDEO}
+ *
+ * Parents: {@link NFO.MEDIA}
+ */
+ public const string VISUAL = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Visual";
+
+ /**
+ * WEBSITE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Website]]
+ *
+ * A website, usually a container for remote resources, that may be interpreted as HTMLDocuments, images or other types of content.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string WEBSITE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Website";
+
+ /**
+ * WEB_DATA_OBJECT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#WebDataObject]]
+ *
+ * An information resources of which representations (files, streams) can be retrieved through a web server. They may be generated at retrieval time. Typical examples are pages served by PHP or AJAX or mp3 streams.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.DATA_OBJECT}
+ */
+ public const string WEB_DATA_OBJECT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#WebDataObject";
+
+ }
+
+ namespace NIE
+ {
+
+ /**
+ * DATA_OBJECT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/01/19/nie#DataObject]]
+ *
+ * A unit of data that is created, annotated and processed on the user desktop. It represents a native structure the user works with. The usage of the term 'native' is important. It means that a DataObject can be directly mapped to a data structure maintained by a native application. This may be a file, a set of files or a part of a file. The granularity depends on the user. This class is not intended to be instantiated by itself. Use more specific subclasses.
+ *
+ * Children: {@link NFO.MEDIA_STREAM}, {@link NFO.FILE_DATA_OBJECT}, {@link NFO.SOFTWARE_SERVICE}, {@link NFO.HARD_DISK_PARTITION}, {@link NCO.CONTACT_LIST_DATA_OBJECT}, {@link ZG.EVENT_MANIFESTATION}, {@link NMO.MAILBOX_DATA_OBJECT}, {@link NFO.WEB_DATA_OBJECT}, {@link NFO.REMOTE_PORT_ADDRESS}, {@link NFO.SOFTWARE_ITEM}, {@link NCAL.CALENDAR_DATA_OBJECT}
+ *
+ * Parents: None
+ */
+ public const string DATA_OBJECT = "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#DataObject";
+
+ /**
+ * INFORMATION_ELEMENT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/01/19/nie#InformationElement]]
+ *
+ * A unit of content the user works with. This is a superclass for all interpretations of a DataObject.
+ *
+ * Children: {@link NFO.EXECUTABLE}, {@link NCAL.JOURNAL}, {@link NMO.MESSAGE}, {@link NFO.WEBSITE}, {@link NCAL.TODO}, {@link NFO.MEDIA_LIST}, {@link NCAL.ALARM}, {@link NCAL.CALENDAR}, {@link NCO.CONTACT}, {@link NCAL.EVENT}, {@link NFO.BOOKMARK_FOLDER}, {@link NFO.BOOKMARK}, {@link NFO.FONT}, {@link NFO.DATA_CONTAINER}, {@link ZG.EVENT_INTERPRETATION}, {@link NFO.DOCUMENT}, {@link NMO.MAILBOX}, {@link NCAL.FREEBUSY}, {@link NCO.CONTACT_LIST}, {@link NMM.TVSERIES}, {@link NCO.CONTACT_GROUP}, {@link NFO.SOFTWARE}, {@link NCAL.TIMEZONE}, {@link NMO.MIME_ENTITY}, {@link NFO.MEDIA}
+ *
+ * Parents: None
+ */
+ public const string INFORMATION_ELEMENT = "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#InformationElement";
+
+ }
+
+ namespace NMM
+ {
+
+ /**
+ * MOVIE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#Movie]]
+ *
+ * A Movie
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.VIDEO}
+ */
+ public const string MOVIE = "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#Movie";
+
+ /**
+ * MUSIC_ALBUM:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#MusicAlbum]]
+ *
+ * The music album as provided by the publisher. Not to be confused with media lists or collections.
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.MEDIA_LIST}
+ */
+ public const string MUSIC_ALBUM = "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#MusicAlbum";
+
+ /**
+ * MUSIC_PIECE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#MusicPiece]]
+ *
+ * Used to assign music-specific properties such a BPM to video and audio
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.AUDIO}
+ */
+ public const string MUSIC_PIECE = "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#MusicPiece";
+
+ /**
+ * TVSERIES:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#TVSeries]]
+ *
+ * A TV Series has multiple seasons and episodes
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string TVSERIES = "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#TVSeries";
+
+ /**
+ * TVSHOW:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#TVShow]]
+ *
+ * A TV Show
+ *
+ * Children: None
+ *
+ * Parents: {@link NFO.VIDEO}
+ */
+ public const string TVSHOW = "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#TVShow";
+
+ }
+
+ namespace NMO
+ {
+
+ /**
+ * EMAIL:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Email]]
+ *
+ * An email.
+ *
+ * Children: None
+ *
+ * Parents: {@link NMO.MESSAGE}
+ */
+ public const string EMAIL = "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Email";
+
+ /**
+ * IMMESSAGE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#IMMessage]]
+ *
+ * A message sent with Instant Messaging software.
+ *
+ * Children: None
+ *
+ * Parents: {@link NMO.MESSAGE}
+ */
+ public const string IMMESSAGE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#IMMessage";
+
+ /**
+ * MAILBOX:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Mailbox]]
+ *
+ * A mailbox - container for MailboxDataObjects.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string MAILBOX = "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Mailbox";
+
+ /**
+ * MAILBOX_DATA_OBJECT:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#MailboxDataObject]]
+ *
+ * An entity encountered in a mailbox. Most common interpretations for such an entity include Message or Folder
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.DATA_OBJECT}
+ */
+ public const string MAILBOX_DATA_OBJECT = "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#MailboxDataObject";
+
+ /**
+ * MESSAGE:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Message]]
+ *
+ * A message. Could be an email, instant messanging message, SMS message etc.
+ *
+ * Children: {@link NMO.EMAIL}, {@link NMO.IMMESSAGE}
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string MESSAGE = "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Message";
+
+ /**
+ * MIME_ENTITY:
+ *
+ * Macro defining the interpretation type [[http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#MimeEntity]]
+ *
+ * A MIME entity, as defined in RFC2045, Section 2.4.
+ *
+ * Children: None
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string MIME_ENTITY = "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#MimeEntity";
+
+ }
+
+ namespace ZG
+ {
+
+ /**
+ * ACCEPT_EVENT:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AcceptEvent]]
+ *
+ * Event triggered when the user accepts a request of some sort. Examples could be answering a phone call, accepting a file transfer, or accepting a friendship request over an IM protocol. See also DenyEvent for when the user denies a similar request
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_INTERPRETATION}
+ */
+ public const string ACCEPT_EVENT = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AcceptEvent";
+
+ /**
+ * ACCESS_EVENT:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AccessEvent]]
+ *
+ * Event triggered by opening, accessing, or starting a resource. Most zg:AccessEvents will have an accompanying zg:LeaveEvent, but this need not always be the case
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_INTERPRETATION}
+ */
+ public const string ACCESS_EVENT = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AccessEvent";
+
+ /**
+ * CREATE_EVENT:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#CreateEvent]]
+ *
+ * Event type triggered when an item is created
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_INTERPRETATION}
+ */
+ public const string CREATE_EVENT = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#CreateEvent";
+
+ /**
+ * DELETE_EVENT:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DeleteEvent]]
+ *
+ * Event triggered because a resource has been deleted or otherwise made permanently unavailable. Fx. when deleting a file. FIXME: How about when moving to trash?
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_INTERPRETATION}
+ */
+ public const string DELETE_EVENT = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DeleteEvent";
+
+ /**
+ * DENY_EVENT:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DenyEvent]]
+ *
+ * Event triggered when the user denies a request of some sort. Examples could be rejecting a phone call, rejecting a file transfer, or denying a friendship request over an IM protocol. See also AcceptEvent for the converse event type
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_INTERPRETATION}
+ */
+ public const string DENY_EVENT = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DenyEvent";
+
+ /**
+ * EVENT_INTERPRETATION:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#EventInterpretation]]
+ *
+ * Base class for event interpretations. Please do no instantiate directly, but use one of the sub classes. The interpretation of an event describes 'what happened' - fx. 'something was created' or 'something was accessed'
+ *
+ * Children: {@link ZG.DENY_EVENT}, {@link ZG.ACCESS_EVENT}, {@link ZG.EXPIRE_EVENT}, {@link ZG.LEAVE_EVENT}, {@link ZG.CREATE_EVENT}, {@link ZG.MOVE_EVENT}, {@link ZG.ACCEPT_EVENT}, {@link ZG.SEND_EVENT}, {@link ZG.MODIFY_EVENT}, {@link ZG.DELETE_EVENT}, {@link ZG.RECEIVE_EVENT}
+ *
+ * Parents: {@link NIE.INFORMATION_ELEMENT}
+ */
+ public const string EVENT_INTERPRETATION = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#EventInterpretation";
+
+ /**
+ * EVENT_MANIFESTATION:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#EventManifestation]]
+ *
+ * Base class for event manifestation types. Please do no instantiate directly, but use one of the sub classes. The manifestation of an event describes 'how it happened'. Fx. 'the user did this' or 'the system notified the user'
+ *
+ * Children: {@link ZG.USER_ACTIVITY}, {@link ZG.WORLD_ACTIVITY}, {@link ZG.HEURISTIC_ACTIVITY}, {@link ZG.SCHEDULED_ACTIVITY}, {@link ZG.SYSTEM_NOTIFICATION}
+ *
+ * Parents: {@link NIE.DATA_OBJECT}
+ */
+ public const string EVENT_MANIFESTATION = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#EventManifestation";
+
+ /**
+ * EXPIRE_EVENT:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ExpireEvent]]
+ *
+ * Event triggered when something expires or times out. These types of events are normally not triggered by the user, but by the operating system or some external party. Examples are a recurring calendar item or task deadline that expires or a when the user fails to respond to an external request such as a phone call
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_INTERPRETATION}
+ */
+ public const string EXPIRE_EVENT = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ExpireEvent";
+
+ /**
+ * HEURISTIC_ACTIVITY:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#HeuristicActivity]]
+ *
+ * An event that is caused indirectly from user activity or deducted via analysis of other events. Fx. if an algorithm divides a user workflow into disjoint 'projects' based on temporal analysis it could insert heuristic events when the user changed project
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_MANIFESTATION}
+ */
+ public const string HEURISTIC_ACTIVITY = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#HeuristicActivity";
+
+ /**
+ * LEAVE_EVENT:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#LeaveEvent]]
+ *
+ * Event triggered by closing, leaving, or stopping a resource. Most zg:LeaveEvents will be following a zg:Access event, but this need not always be the case
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_INTERPRETATION}
+ */
+ public const string LEAVE_EVENT = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#LeaveEvent";
+
+ /**
+ * MODIFY_EVENT:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ModifyEvent]]
+ *
+ * Event triggered by modifying an existing resources. Fx. when editing and saving a file on disk or correcting a typo in the name of a contact
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_INTERPRETATION}
+ */
+ public const string MODIFY_EVENT = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ModifyEvent";
+
+ /**
+ * MOVE_EVENT:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#MoveEvent]]
+ *
+ * Event triggered when a resource has been moved from a location to another. Fx. moving a file from a folder to another.
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_INTERPRETATION}
+ */
+ public const string MOVE_EVENT = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#MoveEvent";
+
+ /**
+ * RECEIVE_EVENT:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ReceiveEvent]]
+ *
+ * Event triggered when something is received from an external party. The event manifestation must be set according to the world view of the receiving party. Most often the item that is being received will be some sort of message - an email, instant message, or broadcasted media such as micro blogging
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_INTERPRETATION}
+ */
+ public const string RECEIVE_EVENT = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ReceiveEvent";
+
+ /**
+ * SCHEDULED_ACTIVITY:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ScheduledActivity]]
+ *
+ * An event that was directly triggered by some user initiated sequence of actions. For example a music player automatically changing to the next song in a playlist
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_MANIFESTATION}
+ */
+ public const string SCHEDULED_ACTIVITY = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ScheduledActivity";
+
+ /**
+ * SEND_EVENT:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SendEvent]]
+ *
+ * Event triggered when something is send to an external party. The event manifestation must be set according to the world view of the sending party. Most often the item that is being send will be some sort of message - an email, instant message, or broadcasted media such as micro blogging
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_INTERPRETATION}
+ */
+ public const string SEND_EVENT = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SendEvent";
+
+ /**
+ * SYSTEM_NOTIFICATION:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SystemNotification]]
+ *
+ * An event send to the user by the operating system. Examples could include when the user inserts a USB stick or when the system warns that the hard disk is full
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_MANIFESTATION}
+ */
+ public const string SYSTEM_NOTIFICATION = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SystemNotification";
+
+ /**
+ * USER_ACTIVITY:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#UserActivity]]
+ *
+ * An event that was actively performed by the user. For example saving or opening a file by clicking on it in the file manager
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_MANIFESTATION}
+ */
+ public const string USER_ACTIVITY = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#UserActivity";
+
+ /**
+ * WORLD_ACTIVITY:
+ *
+ * Macro defining the interpretation type [[http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#WorldActivity]]
+ *
+ * An event that was performed by an entity, usually human or organization, other than the user. An example could be logging the activities of other people in a team
+ *
+ * Children: None
+ *
+ * Parents: {@link ZG.EVENT_MANIFESTATION}
+ */
+ public const string WORLD_ACTIVITY = "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#WorldActivity";
+
+ }
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/ontology-uris.vala.in b/libzeitgeist/ontology-uris.vala.in
new file mode 100644
index 00000000..cbcb8098
--- /dev/null
+++ b/libzeitgeist/ontology-uris.vala.in
@@ -0,0 +1,22 @@
+/* ontology-uris.vala
+ *
+ * Copyright © 2009-2012 The Zeitgeist Team
+ *
+ * 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/>.
+ *
+ */
+
+// *insert-auto-generated-code*
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/ontology.vala b/libzeitgeist/ontology.vala
new file mode 100644
index 00000000..cb8556f4
--- /dev/null
+++ b/libzeitgeist/ontology.vala
@@ -0,0 +1,913 @@
+// This file has been auto-generated by the ontology2code script.
+// Do not modify it directly.
+
+/* ontology.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>
+ *
+ * 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/>.
+ *
+ */
+
+/**
+ * Get information about interpretation/manifestation symbols
+ */
+
+namespace Zeitgeist
+{
+
+ namespace Symbol
+ {
+ private static HashTable<string, Info> all_symbols = null;
+ private static bool initialized = false;
+
+ public static unowned string get_display_name (string symbol_uri)
+ {
+ initialize_symbols ();
+
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return symbol_uri;
+
+ return symbol.display_name;
+ }
+
+ public static unowned string get_description (string symbol_uri)
+ {
+ initialize_symbols ();
+
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return "";
+
+ return symbol.description;
+ }
+
+ public static List<unowned string> get_all_parents (string symbol_uri)
+ {
+ initialize_symbols ();
+
+ var results = new List<string> ();
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return results;
+
+ foreach (unowned string uri in symbol.parents)
+ {
+ results.append (uri);
+ // Recursively get the other parents
+ foreach (string parent_uri in get_all_parents (uri))
+ if (results.index (parent_uri) == -1)
+ results.append (parent_uri);
+ }
+
+ return results;
+ }
+
+ public static List<unowned string> get_all_children (string symbol_uri)
+ {
+ initialize_symbols ();
+
+ var results = new List<string> ();
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return results;
+
+ foreach (unowned string uri in symbol.all_children)
+ results.append (uri);
+
+ return results;
+ }
+
+ public static List<unowned string> get_children (string symbol_uri)
+ {
+ initialize_symbols ();
+ var results = new List<string> ();
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return results;
+
+ foreach (unowned string uri in symbol.children)
+ results.append(uri);
+
+ return results;
+ }
+
+ public static List<unowned string> get_parents (string symbol_uri)
+ {
+ initialize_symbols ();
+
+ var results = new List<string>();
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return results;
+
+ foreach (unowned string uri in symbol.parents)
+ results.append (uri);
+
+ return results;
+ }
+
+ public static bool is_a (string? symbol_uri, string? parent_uri)
+ {
+ if (parent_uri == null || symbol_uri == null) return false;
+ initialize_symbols ();
+
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return false;
+ if (parent_uri == symbol_uri) return true;
+
+ foreach (unowned string uri in get_all_parents (symbol_uri))
+ if (parent_uri == uri)
+ return true;
+ return false;
+ }
+
+ private static void initialize_symbols ()
+ {
+ if (initialized) return;
+ initialized = true;
+ string uri, display_name, description;
+ string[] parents, children, all_children;
+
+ uri = Zeitgeist.NCAL.ALARM;
+ description = "Provide a grouping of component properties that define an alarm.";
+ display_name = "Alarm";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCAL.ATTACHMENT;
+ description = "An object attached to a calendar entity. This class has been introduced to serve as a structured value of the ncal:attach property. See the documentation of ncal:attach for details.";
+ display_name = "Attachment";
+ parents = { NFO.ATTACHMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCAL.CALENDAR;
+ description = "A calendar. Inspirations for this class can be traced to the VCALENDAR component defined in RFC 2445 sec. 4.4, but it may just as well be used to represent any kind of Calendar.";
+ display_name = "Calendar";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCAL.CALENDAR_DATA_OBJECT;
+ description = "A DataObject found in a calendar. It is usually interpreted as one of the calendar entity types (e.g. Event, Journal, Todo etc.)";
+ display_name = "CalendarDataObject";
+ parents = { NIE.DATA_OBJECT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCAL.EVENT;
+ description = "Provide a grouping of component properties that describe an event.";
+ display_name = "Event";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCAL.FREEBUSY;
+ description = "Provide a grouping of component properties that describe either a request for free/busy time, describe a response to a request for free/busy time or describe a published set of busy time.";
+ display_name = "Freebusy";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCAL.JOURNAL;
+ description = "Provide a grouping of component properties that describe a journal entry.";
+ display_name = "Journal";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCAL.TIMEZONE;
+ description = "Provide a grouping of component properties that defines a time zone.";
+ display_name = "Timezone";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCAL.TODO;
+ description = "Provide a grouping of calendar properties that describe a to-do.";
+ display_name = "Todo";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCO.CONTACT;
+ description = "A Contact. A piece of data that can provide means to identify or communicate with an entity.";
+ display_name = "Contact";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { NCO.PERSON_CONTACT, NCO.ORGANIZATION_CONTACT };
+ all_children = { NCO.PERSON_CONTACT, NCO.ORGANIZATION_CONTACT };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCO.CONTACT_GROUP;
+ description = "A group of Contacts. Could be used to express a group in an addressbook or on a contact list of an IM application. One contact can belong to many groups.";
+ display_name = "ContactGroup";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCO.CONTACT_LIST;
+ description = "A contact list, this class represents an addressbook or a contact list of an IM application. Contacts inside a contact list can belong to contact groups.";
+ display_name = "ContactList";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCO.CONTACT_LIST_DATA_OBJECT;
+ description = "An entity occuring on a contact list (usually interpreted as an nco:Contact)";
+ display_name = "ContactListDataObject";
+ parents = { NIE.DATA_OBJECT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCO.ORGANIZATION_CONTACT;
+ description = "A Contact that denotes on Organization.";
+ display_name = "OrganizationContact";
+ parents = { NCO.CONTACT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NCO.PERSON_CONTACT;
+ description = "A Contact that denotes a Person. A person can have multiple Affiliations.";
+ display_name = "PersonContact";
+ parents = { NCO.CONTACT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.APPLICATION;
+ description = "An application";
+ display_name = "Application";
+ parents = { NFO.SOFTWARE };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.ARCHIVE;
+ description = "A compressed file. May contain other files or folder inside.";
+ display_name = "Archive";
+ parents = { NFO.DATA_CONTAINER };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.ARCHIVE_ITEM;
+ description = "A file entity inside an archive.";
+ display_name = "ArchiveItem";
+ parents = { NFO.EMBEDDED_FILE_DATA_OBJECT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.ATTACHMENT;
+ description = "A file attached to another data object. Many data formats allow for attachments: emails, vcards, ical events, id3 and exif...";
+ display_name = "Attachment";
+ parents = { NFO.EMBEDDED_FILE_DATA_OBJECT };
+ children = { NCAL.ATTACHMENT };
+ all_children = { NCAL.ATTACHMENT };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.AUDIO;
+ description = "A file containing audio content";
+ display_name = "Audio";
+ parents = { NFO.MEDIA };
+ children = { NMM.MUSIC_PIECE };
+ all_children = { NMM.MUSIC_PIECE };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.BOOKMARK;
+ description = "A bookmark of a webbrowser. Use nie:title for the name/label, nie:contentCreated to represent the date when the user added the bookmark, and nie:contentLastModified for modifications. nfo:bookmarks to store the link.";
+ display_name = "Bookmark";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.BOOKMARK_FOLDER;
+ description = "A folder with bookmarks of a webbrowser. Use nfo:containsBookmark to relate Bookmarks. Folders can contain subfolders, use containsBookmarkFolder to relate them.";
+ display_name = "Bookmark Folder";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.CURSOR;
+ description = "A Cursor.";
+ display_name = "Cursor";
+ parents = { NFO.RASTER_IMAGE };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.DATA_CONTAINER;
+ description = "A superclass for all entities, whose primary purpose is to serve as containers for other data object. They usually don't have any \"meaning\" by themselves. Examples include folders, archives and optical disc images.";
+ display_name = "DataContainer";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { NFO.FILESYSTEM, NFO.ARCHIVE, NFO.FOLDER, NFO.TRASH };
+ all_children = { NFO.FILESYSTEM, NFO.ARCHIVE, NFO.FOLDER, NFO.TRASH, NFO.FILESYSTEM_IMAGE };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.DELETED_RESOURCE;
+ description = "A file entity that has been deleted from the original source. Usually such entities are stored within various kinds of 'Trash' or 'Recycle Bin' folders.";
+ display_name = "DeletedResource";
+ parents = { NFO.FILE_DATA_OBJECT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.DOCUMENT;
+ description = "A generic document. A common superclass for all documents on the desktop.";
+ display_name = "Document";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { NFO.TEXT_DOCUMENT, NFO.PRESENTATION, NFO.MIND_MAP, NFO.SPREADSHEET };
+ all_children = { NFO.SOURCE_CODE, NFO.SPREADSHEET, NFO.PAGINATED_TEXT_DOCUMENT, NFO.TEXT_DOCUMENT, NFO.HTML_DOCUMENT, NFO.MIND_MAP, NFO.PLAIN_TEXT_DOCUMENT, NFO.PRESENTATION };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.EMBEDDED_FILE_DATA_OBJECT;
+ description = "A file embedded in another data object. There are many ways in which a file may be embedded in another one. Use this class directly only in cases if none of the subclasses gives a better description of your case.";
+ display_name = "EmbeddedFileDataObject";
+ parents = { NFO.FILE_DATA_OBJECT };
+ children = { NFO.ARCHIVE_ITEM, NFO.ATTACHMENT };
+ all_children = { NFO.ARCHIVE_ITEM, NCAL.ATTACHMENT, NFO.ATTACHMENT };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.EXECUTABLE;
+ description = "An executable file.";
+ display_name = "Executable";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.FILESYSTEM;
+ description = "A filesystem. Examples of filesystems include hard disk partitions, removable media, but also images thereof stored in files such as ISO.";
+ display_name = "Filesystem";
+ parents = { NFO.DATA_CONTAINER };
+ children = { NFO.FILESYSTEM_IMAGE };
+ all_children = { NFO.FILESYSTEM_IMAGE };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.FILESYSTEM_IMAGE;
+ description = "An image of a filesystem. Instances of this class may include CD images, DVD images or hard disk partition images created by various pieces of software (e.g. Norton Ghost). Deprecated in favor of nfo:Filesystem.";
+ display_name = "FilesystemImage";
+ parents = { NFO.FILESYSTEM };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.FILE_DATA_OBJECT;
+ description = "A resource containing a finite sequence of bytes with arbitrary information, that is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished.";
+ display_name = "file";
+ parents = { NIE.DATA_OBJECT };
+ children = { NFO.EMBEDDED_FILE_DATA_OBJECT, NFO.DELETED_RESOURCE, NFO.REMOTE_DATA_OBJECT };
+ all_children = { NFO.ARCHIVE_ITEM, NFO.EMBEDDED_FILE_DATA_OBJECT, NCAL.ATTACHMENT, NFO.REMOTE_DATA_OBJECT, NFO.ATTACHMENT, NFO.DELETED_RESOURCE };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.FOLDER;
+ description = "A folder/directory. Examples of folders include folders on a filesystem and message folders in a mailbox.";
+ display_name = "Folder";
+ parents = { NFO.DATA_CONTAINER };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.FONT;
+ description = "A font.";
+ display_name = "Font";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.HARD_DISK_PARTITION;
+ description = "A partition on a hard disk";
+ display_name = "HardDiskPartition";
+ parents = { NIE.DATA_OBJECT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.HTML_DOCUMENT;
+ description = "A HTML document, may contain links to other files.";
+ display_name = "HtmlDocument";
+ parents = { NFO.PLAIN_TEXT_DOCUMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.ICON;
+ description = "An Icon (regardless of whether it's a raster or a vector icon. A resource representing an icon could have two types (Icon and Raster, or Icon and Vector) if required.";
+ display_name = "Icon";
+ parents = { NFO.IMAGE };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.IMAGE;
+ description = "A file containing an image.";
+ display_name = "Image";
+ parents = { NFO.VISUAL };
+ children = { NFO.ICON, NFO.VECTOR_IMAGE, NFO.RASTER_IMAGE };
+ all_children = { NFO.ICON, NFO.VECTOR_IMAGE, NFO.CURSOR, NFO.RASTER_IMAGE };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.MEDIA;
+ description = "A piece of media content. This class may be used to express complex media containers with many streams of various media content (both aural and visual).";
+ display_name = "Media";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { NFO.VISUAL, NFO.AUDIO };
+ all_children = { NMM.TVSHOW, NFO.AUDIO, NMM.MUSIC_PIECE, NFO.VIDEO, NMM.MOVIE, NFO.VISUAL, NFO.CURSOR, NFO.ICON, NFO.RASTER_IMAGE, NFO.IMAGE, NFO.VECTOR_IMAGE };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.MEDIA_LIST;
+ description = "A file containing a list of media files.e.g. a playlist";
+ display_name = "MediaList";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { NMM.MUSIC_ALBUM };
+ all_children = { NMM.MUSIC_ALBUM };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.MEDIA_STREAM;
+ description = "A stream of multimedia content, usually contained within a media container such as a movie (containing both audio and video) or a DVD (possibly containing many streams of audio and video). Most common interpretations for such a DataObject include Audio and Video.";
+ display_name = "MediaStream";
+ parents = { NIE.DATA_OBJECT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.MIND_MAP;
+ description = "A MindMap, created by a mind-mapping utility. Examples might include FreeMind or mind mapper.";
+ display_name = "MindMap";
+ parents = { NFO.DOCUMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.OPERATING_SYSTEM;
+ description = "An OperatingSystem";
+ display_name = "OperatingSystem";
+ parents = { NFO.SOFTWARE };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.PAGINATED_TEXT_DOCUMENT;
+ description = "A file containing a text document, that is unambiguously divided into pages. Examples might include PDF, DOC, PS, DVI etc.";
+ display_name = "PaginatedTextDocument";
+ parents = { NFO.TEXT_DOCUMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.PLAIN_TEXT_DOCUMENT;
+ description = "A file containing plain text (ASCII, Unicode or other encodings). Examples may include TXT, HTML, XML, program source code etc.";
+ display_name = "PlainTextDocument";
+ parents = { NFO.TEXT_DOCUMENT };
+ children = { NFO.SOURCE_CODE, NFO.HTML_DOCUMENT };
+ all_children = { NFO.SOURCE_CODE, NFO.HTML_DOCUMENT };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.PRESENTATION;
+ description = "A Presentation made by some presentation software (Corel Presentations, OpenOffice Impress, MS Powerpoint etc.)";
+ display_name = "Presentation";
+ parents = { NFO.DOCUMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.RASTER_IMAGE;
+ description = "A raster image.";
+ display_name = "RasterImage";
+ parents = { NFO.IMAGE };
+ children = { NFO.CURSOR };
+ all_children = { NFO.CURSOR };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.REMOTE_DATA_OBJECT;
+ description = "A file data object stored at a remote location. Don't confuse this class with a RemotePortAddress. This one applies to a particular resource, RemotePortAddress applies to an address, that can have various interpretations.";
+ display_name = "RemoteDataObject";
+ parents = { NFO.FILE_DATA_OBJECT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.REMOTE_PORT_ADDRESS;
+ description = "An address specifying a remote host and port. Such an address can be interpreted in many ways (examples of such interpretations include mailboxes, websites, remote calendars or filesystems), depending on an interpretation, various kinds of data may be extracted from such an address.";
+ display_name = "RemotePortAddress";
+ parents = { NIE.DATA_OBJECT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.SOFTWARE;
+ description = "A piece of software. Examples may include applications and the operating system. This interpretation most commonly applies to SoftwareItems.";
+ display_name = "Software";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { NFO.OPERATING_SYSTEM, NFO.APPLICATION };
+ all_children = { NFO.APPLICATION, NFO.OPERATING_SYSTEM };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.SOFTWARE_ITEM;
+ description = "A DataObject representing a piece of software. Examples of interpretations of a SoftwareItem include an Application and an OperatingSystem.";
+ display_name = "SoftwareItem";
+ parents = { NIE.DATA_OBJECT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.SOFTWARE_SERVICE;
+ description = "A service published by a piece of software, either by an operating system or an application. Examples of such services may include calendar, addressbook and mailbox managed by a PIM application. This category is introduced to distinguish between data available directly from the applications (Via some Interprocess Communication Mechanisms) and data available from files on a disk. In either case both DataObjects would receive a similar interpretation (e.g. a Mailbox) and wouldn't differ on the content level.";
+ display_name = "SoftwareService";
+ parents = { NIE.DATA_OBJECT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.SOURCE_CODE;
+ description = "Code in a compilable or interpreted programming language.";
+ display_name = "SourceCode";
+ parents = { NFO.PLAIN_TEXT_DOCUMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.SPREADSHEET;
+ description = "A spreadsheet, created by a spreadsheet application. Examples might include Gnumeric, OpenOffice Calc or MS Excel.";
+ display_name = "Spreadsheet";
+ parents = { NFO.DOCUMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.TEXT_DOCUMENT;
+ description = "A text document";
+ display_name = "TextDocument";
+ parents = { NFO.DOCUMENT };
+ children = { NFO.PAGINATED_TEXT_DOCUMENT, NFO.PLAIN_TEXT_DOCUMENT };
+ all_children = { NFO.SOURCE_CODE, NFO.HTML_DOCUMENT, NFO.PAGINATED_TEXT_DOCUMENT, NFO.PLAIN_TEXT_DOCUMENT };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.TRASH;
+ description = "Represents a container for deleted files, a feature common in modern operating systems.";
+ display_name = "Trash";
+ parents = { NFO.DATA_CONTAINER };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.VECTOR_IMAGE;
+ description = "";
+ display_name = "VectorImage";
+ parents = { NFO.IMAGE };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.VIDEO;
+ description = "A video file.";
+ display_name = "Video";
+ parents = { NFO.VISUAL };
+ children = { NMM.TVSHOW, NMM.MOVIE };
+ all_children = { NMM.TVSHOW, NMM.MOVIE };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.VISUAL;
+ description = "File containing visual content.";
+ display_name = "Visual";
+ parents = { NFO.MEDIA };
+ children = { NFO.IMAGE, NFO.VIDEO };
+ all_children = { NMM.TVSHOW, NFO.VECTOR_IMAGE, NFO.VIDEO, NMM.MOVIE, NFO.CURSOR, NFO.ICON, NFO.IMAGE, NFO.RASTER_IMAGE };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.WEBSITE;
+ description = "A website, usually a container for remote resources, that may be interpreted as HTMLDocuments, images or other types of content.";
+ display_name = "Website";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NFO.WEB_DATA_OBJECT;
+ description = "An information resources of which representations (files, streams) can be retrieved through a web server. They may be generated at retrieval time. Typical examples are pages served by PHP or AJAX or mp3 streams.";
+ display_name = "web data object";
+ parents = { NIE.DATA_OBJECT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NIE.DATA_OBJECT;
+ description = "A unit of data that is created, annotated and processed on the user desktop. It represents a native structure the user works with. The usage of the term 'native' is important. It means that a DataObject can be directly mapped to a data structure maintained by a native application. This may be a file, a set of files or a part of a file. The granularity depends on the user. This class is not intended to be instantiated by itself. Use more specific subclasses.";
+ display_name = "DataObject";
+ parents = { };
+ children = { NFO.MEDIA_STREAM, NFO.FILE_DATA_OBJECT, NFO.SOFTWARE_SERVICE, NFO.HARD_DISK_PARTITION, NCO.CONTACT_LIST_DATA_OBJECT, ZG.EVENT_MANIFESTATION, NMO.MAILBOX_DATA_OBJECT, NFO.WEB_DATA_OBJECT, NFO.REMOTE_PORT_ADDRESS, NFO.SOFTWARE_ITEM, NCAL.CALENDAR_DATA_OBJECT };
+ all_children = { NCAL.ATTACHMENT, ZG.EVENT_MANIFESTATION, NFO.SOFTWARE_SERVICE, ZG.HEURISTIC_ACTIVITY, NCO.CONTACT_LIST_DATA_OBJECT, NFO.SOFTWARE_ITEM, NFO.FILE_DATA_OBJECT, NFO.HARD_DISK_PARTITION, NFO.EMBEDDED_FILE_DATA_OBJECT, NFO.DELETED_RESOURCE, NMO.MAILBOX_DATA_OBJECT, NFO.WEB_DATA_OBJECT, NCAL.CALENDAR_DATA_OBJECT, ZG.SYSTEM_NOTIFICATION, NFO.MEDIA_STREAM, NFO.ARCHIVE_ITEM, ZG.SCHEDULED_ACTIVITY, NFO.REMOTE_DATA_OBJECT, NFO.ATTACHMENT, ZG.USER_ACTIVITY, NFO.REMOTE_PORT_ADDRESS, ZG.WORLD_ACTIVITY };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NIE.INFORMATION_ELEMENT;
+ description = "A unit of content the user works with. This is a superclass for all interpretations of a DataObject.";
+ display_name = "InformationElement";
+ parents = { };
+ children = { NFO.EXECUTABLE, NCAL.JOURNAL, NMO.MESSAGE, NFO.WEBSITE, NCAL.TODO, NFO.MEDIA_LIST, NCAL.ALARM, NCAL.CALENDAR, NCO.CONTACT, NCAL.EVENT, NFO.BOOKMARK_FOLDER, NFO.BOOKMARK, NFO.FONT, NFO.DATA_CONTAINER, ZG.EVENT_INTERPRETATION, NFO.DOCUMENT, NMO.MAILBOX, NCAL.FREEBUSY, NCO.CONTACT_LIST, NMM.TVSERIES, NCO.CONTACT_GROUP, NFO.SOFTWARE, NCAL.TIMEZONE, NMO.MIME_ENTITY, NFO.MEDIA };
+ all_children = { NFO.EXECUTABLE, NCAL.JOURNAL, ZG.MODIFY_EVENT, NMO.IMMESSAGE, NMO.MESSAGE, NFO.WEBSITE, NCAL.TODO, NFO.SPREADSHEET, ZG.CREATE_EVENT, NFO.MEDIA_LIST, NFO.FILESYSTEM, NCAL.ALARM, NCO.PERSON_CONTACT, NCAL.CALENDAR, NFO.BOOKMARK, NFO.TRASH, NCAL.EVENT, ZG.LEAVE_EVENT, NFO.ARCHIVE, ZG.ACCESS_EVENT, NFO.VECTOR_IMAGE, NFO.HTML_DOCUMENT, NFO.VIDEO, NFO.BOOKMARK_FOLDER, ZG.ACCEPT_EVENT, NCO.CONTACT, ZG.EXPIRE_EVENT, NFO.FONT, NFO.DATA_CONTAINER, NFO.RASTER_IMAGE, NFO.IMAGE, NFO.PLAIN_TEXT_DOCUMENT, ZG.EVENT_INTERPRETATION, NMO.MIME_ENTITY, NFO.APPLICATION, NFO.DOCUMENT, NMM.MUSIC_PIECE, NMO.MAILBOX, NMO.EMAIL, NFO.TEXT_DOCUMENT, NFO.FILESYSTEM_IMAGE, NFO.ICON, NFO.PRESENTATION, NCO.ORGANIZATION_CONTACT, NMM.MUSIC_ALBUM, NFO.SOURCE_CODE, NFO.VISUAL, ZG.DENY_EVENT, NFO.PAGINATED_TEXT_DOCUMENT, NMM.TVSHOW, NCO.CONTACT_LIST, NMM.TVSERIES, NFO.AUDIO, NCO.CONTACT_GROUP, NFO.OPERATING_SYSTEM, NFO.SOFTWARE, NMM.MOVIE, ZG.MOVE_EVENT, NCAL.TIMEZONE, NFO.MIND_MAP, NFO.FOLDER, ZG.SEND_EVENT, NFO.CURSOR, NCAL.FREEBUSY, NFO.MEDIA, ZG.DELETE_EVENT, ZG.RECEIVE_EVENT };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NMM.MOVIE;
+ description = "A Movie";
+ display_name = "movie";
+ parents = { NFO.VIDEO };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NMM.MUSIC_ALBUM;
+ description = "The music album as provided by the publisher. Not to be confused with media lists or collections.";
+ display_name = "music album";
+ parents = { NFO.MEDIA_LIST };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NMM.MUSIC_PIECE;
+ description = "Used to assign music-specific properties such a BPM to video and audio";
+ display_name = "music";
+ parents = { NFO.AUDIO };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NMM.TVSERIES;
+ description = "A TV Series has multiple seasons and episodes";
+ display_name = "tv series";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NMM.TVSHOW;
+ description = "A TV Show";
+ display_name = "tv show";
+ parents = { NFO.VIDEO };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NMO.EMAIL;
+ description = "An email.";
+ display_name = "Email";
+ parents = { NMO.MESSAGE };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NMO.IMMESSAGE;
+ description = "A message sent with Instant Messaging software.";
+ display_name = "IMMessage";
+ parents = { NMO.MESSAGE };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NMO.MAILBOX;
+ description = "A mailbox - container for MailboxDataObjects.";
+ display_name = "Mailbox";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NMO.MAILBOX_DATA_OBJECT;
+ description = "An entity encountered in a mailbox. Most common interpretations for such an entity include Message or Folder";
+ display_name = "MailboxDataObject";
+ parents = { NIE.DATA_OBJECT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NMO.MESSAGE;
+ description = "A message. Could be an email, instant messanging message, SMS message etc.";
+ display_name = "Message";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { NMO.EMAIL, NMO.IMMESSAGE };
+ all_children = { NMO.EMAIL, NMO.IMMESSAGE };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.NMO.MIME_ENTITY;
+ description = "A MIME entity, as defined in RFC2045, Section 2.4.";
+ display_name = "MimeEntity";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.ACCEPT_EVENT;
+ description = "Event triggered when the user accepts a request of some sort. Examples could be answering a phone call, accepting a file transfer, or accepting a friendship request over an IM protocol. See also DenyEvent for when the user denies a similar request";
+ display_name = "ACCEPT_EVENT";
+ parents = { ZG.EVENT_INTERPRETATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.ACCESS_EVENT;
+ description = "Event triggered by opening, accessing, or starting a resource. Most zg:AccessEvents will have an accompanying zg:LeaveEvent, but this need not always be the case";
+ display_name = "ACCESS_EVENT";
+ parents = { ZG.EVENT_INTERPRETATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.CREATE_EVENT;
+ description = "Event type triggered when an item is created";
+ display_name = "CREATE_EVENT";
+ parents = { ZG.EVENT_INTERPRETATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.DELETE_EVENT;
+ description = "Event triggered because a resource has been deleted or otherwise made permanently unavailable. Fx. when deleting a file. FIXME: How about when moving to trash?";
+ display_name = "DELETE_EVENT";
+ parents = { ZG.EVENT_INTERPRETATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.DENY_EVENT;
+ description = "Event triggered when the user denies a request of some sort. Examples could be rejecting a phone call, rejecting a file transfer, or denying a friendship request over an IM protocol. See also AcceptEvent for the converse event type";
+ display_name = "DENY_EVENT";
+ parents = { ZG.EVENT_INTERPRETATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.EVENT_INTERPRETATION;
+ description = "Base class for event interpretations. Please do no instantiate directly, but use one of the sub classes. The interpretation of an event describes 'what happened' - fx. 'something was created' or 'something was accessed'";
+ display_name = "EVENT_INTERPRETATION";
+ parents = { NIE.INFORMATION_ELEMENT };
+ children = { ZG.DENY_EVENT, ZG.ACCESS_EVENT, ZG.EXPIRE_EVENT, ZG.LEAVE_EVENT, ZG.CREATE_EVENT, ZG.MOVE_EVENT, ZG.ACCEPT_EVENT, ZG.SEND_EVENT, ZG.MODIFY_EVENT, ZG.DELETE_EVENT, ZG.RECEIVE_EVENT };
+ all_children = { ZG.DENY_EVENT, ZG.ACCESS_EVENT, ZG.EXPIRE_EVENT, ZG.LEAVE_EVENT, ZG.CREATE_EVENT, ZG.MOVE_EVENT, ZG.ACCEPT_EVENT, ZG.SEND_EVENT, ZG.MODIFY_EVENT, ZG.DELETE_EVENT, ZG.RECEIVE_EVENT };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.EVENT_MANIFESTATION;
+ description = "Base class for event manifestation types. Please do no instantiate directly, but use one of the sub classes. The manifestation of an event describes 'how it happened'. Fx. 'the user did this' or 'the system notified the user'";
+ display_name = "EVENT_MANIFESTATION";
+ parents = { NIE.DATA_OBJECT };
+ children = { ZG.USER_ACTIVITY, ZG.WORLD_ACTIVITY, ZG.HEURISTIC_ACTIVITY, ZG.SCHEDULED_ACTIVITY, ZG.SYSTEM_NOTIFICATION };
+ all_children = { ZG.USER_ACTIVITY, ZG.SYSTEM_NOTIFICATION, ZG.HEURISTIC_ACTIVITY, ZG.SCHEDULED_ACTIVITY, ZG.WORLD_ACTIVITY };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.EXPIRE_EVENT;
+ description = "Event triggered when something expires or times out. These types of events are normally not triggered by the user, but by the operating system or some external party. Examples are a recurring calendar item or task deadline that expires or a when the user fails to respond to an external request such as a phone call";
+ display_name = "EXPIRE_EVENT";
+ parents = { ZG.EVENT_INTERPRETATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.HEURISTIC_ACTIVITY;
+ description = "An event that is caused indirectly from user activity or deducted via analysis of other events. Fx. if an algorithm divides a user workflow into disjoint 'projects' based on temporal analysis it could insert heuristic events when the user changed project";
+ display_name = "HEURISTIC_ACTIVITY";
+ parents = { ZG.EVENT_MANIFESTATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.LEAVE_EVENT;
+ description = "Event triggered by closing, leaving, or stopping a resource. Most zg:LeaveEvents will be following a zg:Access event, but this need not always be the case";
+ display_name = "LEAVE_EVENT";
+ parents = { ZG.EVENT_INTERPRETATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.MODIFY_EVENT;
+ description = "Event triggered by modifying an existing resources. Fx. when editing and saving a file on disk or correcting a typo in the name of a contact";
+ display_name = "MODIFY_EVENT";
+ parents = { ZG.EVENT_INTERPRETATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.MOVE_EVENT;
+ description = "Event triggered when a resource has been moved from a location to another. Fx. moving a file from a folder to another.";
+ display_name = "MOVE_EVENT";
+ parents = { ZG.EVENT_INTERPRETATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.RECEIVE_EVENT;
+ description = "Event triggered when something is received from an external party. The event manifestation must be set according to the world view of the receiving party. Most often the item that is being received will be some sort of message - an email, instant message, or broadcasted media such as micro blogging";
+ display_name = "RECEIVE_EVENT";
+ parents = { ZG.EVENT_INTERPRETATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.SCHEDULED_ACTIVITY;
+ description = "An event that was directly triggered by some user initiated sequence of actions. For example a music player automatically changing to the next song in a playlist";
+ display_name = "SCHEDULED_ACTIVITY";
+ parents = { ZG.EVENT_MANIFESTATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.SEND_EVENT;
+ description = "Event triggered when something is send to an external party. The event manifestation must be set according to the world view of the sending party. Most often the item that is being send will be some sort of message - an email, instant message, or broadcasted media such as micro blogging";
+ display_name = "SEND_EVENT";
+ parents = { ZG.EVENT_INTERPRETATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.SYSTEM_NOTIFICATION;
+ description = "An event send to the user by the operating system. Examples could include when the user inserts a USB stick or when the system warns that the hard disk is full";
+ display_name = "SYSTEM_NOTIFICATION";
+ parents = { ZG.EVENT_MANIFESTATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.USER_ACTIVITY;
+ description = "An event that was actively performed by the user. For example saving or opening a file by clicking on it in the file manager";
+ display_name = "USER_ACTIVITY";
+ parents = { ZG.EVENT_MANIFESTATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+
+ uri = Zeitgeist.ZG.WORLD_ACTIVITY;
+ description = "An event that was performed by an entity, usually human or organization, other than the user. An example could be logging the activities of other people in a team";
+ display_name = "WORLD_ACTIVITY";
+ parents = { ZG.EVENT_MANIFESTATION };
+ children = { };
+ all_children = { };
+ Symbol.Info.register (uri, display_name, description, parents, children, all_children);
+ }
+
+ }
+
+ private class Symbol.Info
+ {
+ public List<string> parents;
+ public List<string> children;
+ public List<string> all_children;
+ public string uri;
+ public string display_name;
+ public string description;
+
+ private Info (string uri, string display_name, string description,
+ string[] parents, string[] children, string[] all_children)
+ {
+ this.uri = uri;
+ this.display_name = display_name;
+ this.description = description;
+ this.parents = new List<string> ();
+ for (int i = 0; i < parents.length; i++)
+ this.parents.append (parents[i]);
+ this.children = new List<string> ();
+ for (int i = 0; i < children.length; i++)
+ this.children.append (children[i]);
+ this.all_children = new List<string> ();
+ for (int i = 0; i < all_children.length; i++)
+ this.all_children.append (all_children[i]);
+ }
+
+ internal static void register (string uri, string display_name,
+ string description, string[] parents, string[] children,
+ string[] all_children)
+ {
+ if (all_symbols == null)
+ all_symbols = new HashTable<string, Info> (str_hash, str_equal);
+ Info symbol = new Info (uri, display_name, description,
+ parents, children, all_children);
+ all_symbols.insert (uri, symbol);
+ }
+
+ }
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/ontology.vala.in b/libzeitgeist/ontology.vala.in
new file mode 100644
index 00000000..63171701
--- /dev/null
+++ b/libzeitgeist/ontology.vala.in
@@ -0,0 +1,181 @@
+/* ontology.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>
+ *
+ * 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/>.
+ *
+ */
+
+/**
+ * Get information about interpretation/manifestation symbols
+ */
+
+namespace Zeitgeist
+{
+
+ namespace Symbol
+ {
+ private static HashTable<string, Info> all_symbols = null;
+ private static bool initialized = false;
+
+ public static unowned string get_display_name (string symbol_uri)
+ {
+ initialize_symbols ();
+
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return symbol_uri;
+
+ return symbol.display_name;
+ }
+
+ public static unowned string get_description (string symbol_uri)
+ {
+ initialize_symbols ();
+
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return "";
+
+ return symbol.description;
+ }
+
+ public static List<unowned string> get_all_parents (string symbol_uri)
+ {
+ initialize_symbols ();
+
+ var results = new List<string> ();
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return results;
+
+ foreach (unowned string uri in symbol.parents)
+ {
+ results.append (uri);
+ // Recursively get the other parents
+ foreach (string parent_uri in get_all_parents (uri))
+ if (results.index (parent_uri) == -1)
+ results.append (parent_uri);
+ }
+
+ return results;
+ }
+
+ public static List<unowned string> get_all_children (string symbol_uri)
+ {
+ initialize_symbols ();
+
+ var results = new List<string> ();
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return results;
+
+ foreach (unowned string uri in symbol.all_children)
+ results.append (uri);
+
+ return results;
+ }
+
+ public static List<unowned string> get_children (string symbol_uri)
+ {
+ initialize_symbols ();
+ var results = new List<string> ();
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return results;
+
+ foreach (unowned string uri in symbol.children)
+ results.append(uri);
+
+ return results;
+ }
+
+ public static List<unowned string> get_parents (string symbol_uri)
+ {
+ initialize_symbols ();
+
+ var results = new List<string>();
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return results;
+
+ foreach (unowned string uri in symbol.parents)
+ results.append (uri);
+
+ return results;
+ }
+
+ public static bool is_a (string? symbol_uri, string? parent_uri)
+ {
+ if (parent_uri == null || symbol_uri == null) return false;
+ initialize_symbols ();
+
+ var symbol = all_symbols.lookup (symbol_uri);
+ if (symbol == null) return false;
+ if (parent_uri == symbol_uri) return true;
+
+ foreach (unowned string uri in get_all_parents (symbol_uri))
+ if (parent_uri == uri)
+ return true;
+ return false;
+ }
+
+ private static void initialize_symbols ()
+ {
+ if (initialized) return;
+ initialized = true;
+ // *insert-auto-generated-code*
+ }
+
+ }
+
+ private class Symbol.Info
+ {
+ public List<string> parents;
+ public List<string> children;
+ public List<string> all_children;
+ public string uri;
+ public string display_name;
+ public string description;
+
+ private Info (string uri, string display_name, string description,
+ string[] parents, string[] children, string[] all_children)
+ {
+ this.uri = uri;
+ this.display_name = display_name;
+ this.description = description;
+ this.parents = new List<string> ();
+ for (int i = 0; i < parents.length; i++)
+ this.parents.append (parents[i]);
+ this.children = new List<string> ();
+ for (int i = 0; i < children.length; i++)
+ this.children.append (children[i]);
+ this.all_children = new List<string> ();
+ for (int i = 0; i < all_children.length; i++)
+ this.all_children.append (all_children[i]);
+ }
+
+ internal static void register (string uri, string display_name,
+ string description, string[] parents, string[] children,
+ string[] all_children)
+ {
+ if (all_symbols == null)
+ all_symbols = new HashTable<string, Info> (str_hash, str_equal);
+ Info symbol = new Info (uri, display_name, description,
+ parents, children, all_children);
+ all_symbols.insert (uri, symbol);
+ }
+
+ }
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/queued-proxy-wrapper.vala b/libzeitgeist/queued-proxy-wrapper.vala
new file mode 100644
index 00000000..7bebe52a
--- /dev/null
+++ b/libzeitgeist/queued-proxy-wrapper.vala
@@ -0,0 +1,112 @@
+/*
+ * Copyright © 2012 Canonical Ltd.
+ * By Siegfried-A. Gevatter <siegfried.gevatter@collabora.co.uk>
+ *
+ * Based upon a C implementation (© 2010-2012 Canonical Ltd) by:
+ * Mikkel Kamstrup Erlandsen <mikkel.kamstrup@canonical.com>
+ * Michal Hruby <michal.hruby@canonical.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/>.
+ *
+ */
+
+/**
+ * FOR INTERNAL USE ONLY.
+ */
+
+namespace Zeitgeist
+{
+
+// FIXME: private or something
+protected abstract class QueuedProxyWrapper : Object
+{
+ public bool proxy_created { get; private set; default = false; }
+ public bool is_connected { get; private set; default = false; }
+
+ private SList<QueuedMethod> method_dispatch_queue;
+ private IOError? log_error;
+ private DBusProxy dbus_proxy;
+
+ protected class QueuedMethod
+ {
+
+ public SourceFunc queued_method { public get; private owned set; }
+
+ public QueuedMethod (owned SourceFunc callback)
+ {
+ queued_method = (owned) callback;
+ }
+
+ }
+
+ protected void proxy_acquired (Object proxy)
+ {
+ is_connected = true;
+ proxy_created = true;
+ dbus_proxy = proxy as DBusProxy;
+ proxy.notify["g-name-owner"].connect (name_owner_changed);
+ on_connection_established ();
+ process_queued_methods ();
+ }
+
+ protected void proxy_unavailable (IOError err)
+ {
+ // Zeitgeist couldn't be auto-started. We'll run the callbacks
+ // anyway giving them an error.
+ log_error = err;
+ process_queued_methods ();
+ }
+
+ protected void process_queued_methods ()
+ {
+ method_dispatch_queue.reverse ();
+ foreach (QueuedMethod m in method_dispatch_queue)
+ m.queued_method ();
+ method_dispatch_queue = null;
+ }
+
+ protected void name_owner_changed (ParamSpec pspec)
+ {
+ string? name_owner = dbus_proxy.get_name_owner ();
+ this.is_connected = name_owner != null;
+
+ if (this.is_connected)
+ on_connection_established ();
+ else
+ on_connection_lost ();
+ }
+
+ protected abstract void on_connection_established ();
+ protected abstract void on_connection_lost ();
+
+ protected async void wait_for_proxy () throws Error
+ {
+ if (likely (proxy_created))
+ return;
+
+ if (method_dispatch_queue == null)
+ method_dispatch_queue = new SList<QueuedMethod> ();
+ method_dispatch_queue.prepend (new QueuedMethod (wait_for_proxy.callback));
+
+ yield;
+
+ if (log_error != null)
+ throw log_error;
+ }
+
+}
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/remote.vala b/libzeitgeist/remote.vala
new file mode 100644
index 00000000..cccaa7ec
--- /dev/null
+++ b/libzeitgeist/remote.vala
@@ -0,0 +1,159 @@
+/* remote.vala
+ *
+ * Copyright © 2011-2012 Collabora Ltd.
+ * By Siegfried-Angel Gevatter Pujals <siegfried@gevatter.com>
+ * Copyright © 2011 Michal Hruby <michal.mhr@gmail.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/>.
+ *
+ */
+
+namespace Zeitgeist
+{
+ public struct VersionStruct
+ {
+ int major;
+ int minor;
+ int micro;
+ }
+
+ [DBus (name = "org.gnome.zeitgeist.Log")]
+ protected interface RemoteLog : Object
+ {
+
+ [DBus (signature = "(xx)")]
+ public async abstract Variant delete_events (
+ uint32[] event_ids,
+ Cancellable? cancellable=null,
+ BusName? sender=null
+ ) throws Error;
+
+ public async abstract uint32[] find_event_ids (
+ [DBus (signature = "(xx)")] Variant time_range,
+ [DBus (signature = "a(asaasay)")] Variant event_templates,
+ uint storage_state, uint num_events, uint result_type,
+ Cancellable? cancellable=null, BusName? sender=null
+ ) throws Error;
+
+ [DBus (signature = "a(asaasay)")]
+ public async abstract Variant find_events (
+ [DBus (signature = "(xx)")] Variant time_range,
+ [DBus (signature = "a(asaasay)")] Variant event_templates,
+ uint storage_state, uint num_events, uint result_type,
+ Cancellable? cancellable=null, BusName? sender=null
+ ) throws Error;
+
+ public async abstract string[] find_related_uris (
+ [DBus (signature = "(xx)")] Variant time_range,
+ [DBus (signature = "a(asaasay)")] Variant event_templates,
+ [DBus (signature = "a(asaasay)")] Variant result_event_templates,
+ uint storage_state, uint num_events, uint result_type,
+ Cancellable? cancellable=null, BusName? sender=null
+ ) throws Error;
+
+ [DBus (signature = "a(asaasay)")]
+ public async abstract Variant get_events (
+ uint32[] event_ids,
+ Cancellable? cancellable=null,
+ BusName? sender=null
+ ) throws Error;
+
+ public async abstract uint32[] insert_events (
+ [DBus (signature = "a(asaasay)")] Variant events,
+ Cancellable? cancellable=null,
+ BusName? sender=null
+ ) throws Error;
+
+ public async abstract void install_monitor (
+ ObjectPath monitor_path,
+ [DBus (signature = "(xx)")] Variant time_range,
+ [DBus (signature = "a(asaasay)")] Variant event_templates,
+ BusName? owner=null
+ ) throws Error;
+
+ public async abstract void remove_monitor (
+ ObjectPath monitor_path,
+ BusName? owner=null
+ ) throws Error;
+
+ public async abstract void quit (
+ Cancellable? cancellable=null
+ ) throws Error;
+
+ [DBus (name = "extensions")]
+ public abstract string[] extensions { owned get; }
+
+ [DBus (name = "version")]
+ public abstract VersionStruct version { owned get; }
+
+ }
+
+ [DBus (name = "org.gnome.zeitgeist.Monitor")]
+ protected interface RemoteMonitor : Object
+ {
+
+ public async abstract void notify_insert (
+ [DBus (signature = "(xx)")] Variant time_range,
+ [DBus (signature = "a(asaasay)")] Variant events
+ ) throws Error;
+
+ public async abstract void notify_delete (
+ [DBus (signature = "(xx)")] Variant time_range,
+ uint32[] event_ids
+ ) throws IOError;
+
+ }
+
+ [DBus (name = "org.gnome.zeitgeist.Index")]
+ protected interface RemoteSimpleIndexer : Object
+ {
+ public abstract async void search (
+ string query_string,
+ [DBus (signature = "(xx)")] Variant time_range,
+ [DBus (signature = "a(asaasay)")] Variant filter_templates,
+ uint offset, uint count, uint result_type,
+ [DBus (signature = "a(asaasay)")] out Variant events,
+ out uint matches, Cancellable? cancellable=null) throws Error;
+ public abstract async void search_with_relevancies (
+ string query_string,
+ [DBus (signature = "(xx)")] Variant time_range,
+ [DBus (signature = "a(asaasay)")] Variant filter_templates,
+ uint storage_state, uint offset, uint count, uint result_type,
+ [DBus (signature = "a(asaasay)")] out Variant events,
+ out double[] relevancies, out uint matches,
+ Cancellable? cancellable=null) throws Error;
+ }
+
+ /* FIXME: Remove this! Only here because of a bug
+ in Vala (Vala Bug #661361) */
+ [DBus (name = "org.freedesktop.NetworkManager")]
+ protected interface NetworkManagerDBus : Object
+ {
+ [DBus (name = "state")]
+ public abstract uint32 state () throws IOError;
+ public signal void state_changed (uint32 state);
+ }
+
+ /* FIXME: Remove this! Only here because of a bug
+ in Vala (Vala Bug #661361) */
+ [DBus (name = "net.connman.Manager")]
+ protected interface ConnmanManagerDBus : Object
+ {
+ public abstract string get_state () throws IOError;
+ public signal void state_changed (string state);
+ }
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/result-set.vala b/libzeitgeist/result-set.vala
new file mode 100644
index 00000000..d89a95ba
--- /dev/null
+++ b/libzeitgeist/result-set.vala
@@ -0,0 +1,113 @@
+/*
+ * Copyright © 2012 Canonical Ltd.
+ * By Siegfried-A. Gevatter <siegfried.gevatter@collabora.co.uk>
+ *
+ * Based upon a C implementation (© 2009 Canonical Ltd) by:
+ * Mikkel Kamstrup Erlandsen <mikkel.kamstrup@canonical.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/>.
+ *
+ */
+
+namespace Zeitgeist
+{
+
+/**
+ * Cursor-like interface for results sets
+ *
+ * include: zeitgeist.h
+ *
+ * Interface for results returned by zeitgeist_log_find_events(),
+ * zeitgeist_log_get_events(), and zeitgeist_index_search().
+ *
+ * This interface utilizes a cursor-like metaphor. You advance the cursor
+ * by calling zeitgeist_result_set_next() or adjust it manually by calling
+ * zeitgeist_result_set_seek().
+ *
+ * Calling zeitgeist_result_set_next() will also return the event at the
+ * current cursor position. You may retrieve the current event without advancing
+ * the cursor by calling zeitgeist_result_set_peek().
+ *
+ */
+public interface ResultSet : Object
+{
+
+ /**
+ * Get the number of #ZeitgeistEvent<!-- -->s held in a #ZeitgeistResultSet.
+ * Unlike the number obtained from zeitgeist_result_set_estimated_matches() the
+ * size of the result set is always equal to the number of times you can call
+ * zeitgeist_result_set_next().
+ *
+ * @return The number of events held in the result set
+ */
+ public abstract uint size ();
+
+ /**
+ * Get the total number of matches that would have been for the query
+ * that generated the result set had it not been restricted in size.
+ * For FTS the number of matches is estimated.
+ *
+ * For zeitgeist_log_find_events() and zeitgeist_log_get_events() this will
+ * always be the same as zeitgeist_result_set_size(). For cases like
+ * zeitgeist_index_search() where you specify a subset of the hits to retrieve
+ * the estimated match count will often be bigger than the result set size.
+ *
+ * @return The number of events that matched the query
+ */
+ public abstract uint estimated_matches ();
+
+ /**
+ * Get the current event from the result set and advance the cursor. To
+ * ensure that calls to this method will succeed you can call
+ * zeitgeist_result_set_has_next().
+ *
+ * @return The #ZeitgeistEvent at the current cursor position, or NULL
+ * if there are no events left.
+ */
+ public abstract Event? next_value ();
+
+ /**
+ * Check if a call to zeitgeist_result_set_next() will succeed.
+ *
+ * @return TRUE if and only if more events can be retrieved
+ * by calling zeitgeist_result_set_next()
+ */
+ public abstract bool has_next ();
+
+ /**
+ * Get the current position of the cursor.
+ *
+ * @return The current position of the cursor
+ */
+ public abstract uint tell ();
+
+ /**
+ * Resets the result set to start iterating it again from scratch.
+ *
+ */
+ public abstract void reset ();
+
+ /**
+ * Do not use this method! It is only for use by Vala.
+ */
+ public ResultSet iterator ()
+ {
+ // Damn you Vala. Why is Iterator<> in Gee?
+ return this;
+ }
+}
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/simple-result-set.vala b/libzeitgeist/simple-result-set.vala
new file mode 100644
index 00000000..a2d56472
--- /dev/null
+++ b/libzeitgeist/simple-result-set.vala
@@ -0,0 +1,85 @@
+/* simple-result-set.vala
+ *
+ * Copyright © 2012 Canonical Ltd.
+ * By Siegfried-A. Gevatter <siegfried.gevatter@collabora.co.uk>
+ *
+ * Based upon a C implementation (© 2009 Canonical Ltd) by:
+ * Mikkel Kamstrup Erlandsen <mikkel.kamstrup@canonical.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/>.
+ *
+ */
+
+namespace Zeitgeist
+{
+
+internal class SimpleResultSet : Object, ResultSet
+{
+
+ private GenericArray<Event> events;
+ private uint num_estimated_matches;
+ private uint cursor;
+
+ internal SimpleResultSet (GenericArray<Event> events)
+ {
+ this.events = events;
+ num_estimated_matches = events.length;
+ cursor = 0;
+ }
+
+ internal SimpleResultSet.with_num_matches (
+ GenericArray<Event> events, uint matches)
+ {
+ this.events = events;
+ num_estimated_matches = matches;
+ cursor = 0;
+ }
+
+ public uint size ()
+ {
+ return events.length;
+ }
+
+ public uint estimated_matches ()
+ {
+ return num_estimated_matches;
+ }
+
+ public uint tell ()
+ {
+ return cursor;
+ }
+
+ public bool has_next ()
+ {
+ return cursor < events.length;
+ }
+
+ public Event? next_value ()
+ {
+ if (!has_next ())
+ return null;
+ return events.get (cursor++);
+ }
+
+ public void reset ()
+ {
+ cursor = 0;
+ }
+
+}
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/subject.vala b/libzeitgeist/subject.vala
new file mode 100644
index 00000000..b6536b86
--- /dev/null
+++ b/libzeitgeist/subject.vala
@@ -0,0 +1,189 @@
+/* subject.vala
+ *
+ * Copyright © 2011-2012 Collabora Ltd.
+ * By Seif Lotfy <seif@lotfy.com>
+ * By Siegfried-Angel Gevatter Pujals <siegfried@gevatter.com>
+ * Copyright © 2011 Manish Sinha <manishsinha@ubuntu.com>
+ * Copyright © 2011 Michal Hruby <michal.mhr@gmail.com>
+ * Copyright © 2012 Canonical Ltd.
+ * By Siegfried-A. Gevatter <siegfried.gevatter@collabora.co.uk>
+ *
+ * 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/>.
+ *
+ */
+
+using Zeitgeist;
+
+namespace Zeitgeist
+{
+
+/**
+ * Subject objects abstract Zeitgeist subjects
+ *
+ * In Zeitgeist terminology, a //subject// is something (a file, web page,
+ * person, conversation, etc.) that was somehow involved or affected by
+ * a {@link Event}.
+ */
+public class Subject : Object
+{
+ private static StringChunk url_store;
+
+ public string? uri { get; set; }
+ public string? origin { get; set; }
+ public string? text { get; set; }
+ public string? storage { get; set; }
+ // FIXME: current_{uri,origin} are often the same as uri, we don't
+ // need to waste memory for them
+ public string? current_uri { get; set; }
+ public string? current_origin { get; set; }
+
+ public string? mimetype
+ {
+ get { return _mimetype; }
+ set { _mimetype = (value != null) ? url_store.insert_const (value) : null; }
+ }
+ public string? interpretation
+ {
+ get { return _interpretation; }
+ set { _interpretation = (value != null) ? url_store.insert_const (value) : null; }
+ }
+ public string? manifestation
+ {
+ get { return _manifestation; }
+ set { _manifestation = (value != null) ? url_store.insert_const (value) : null; }
+ }
+
+ private unowned string? _mimetype;
+ private unowned string? _interpretation;
+ private unowned string? _manifestation;
+
+ static construct
+ {
+ url_store = new StringChunk (4096);
+ }
+
+ public Subject.full (string? uri=null,
+ string? interpretation=null, string? manifestation=null,
+ string? mimetype=null, string? origin=null, string? text=null,
+ string? storage=null)
+ {
+ this.uri = uri;
+ this.interpretation = interpretation;
+ this.manifestation = manifestation;
+ this.mimetype = mimetype;
+ this.origin = origin;
+ this.text = text;
+ this.storage = storage;
+ }
+
+ public Subject.move_event (
+ string? source_uri=null, string? source_origin=null,
+ string? destination_uri=null, string? destination_origin=null,
+ string? interpretation, string? manifestation=null,
+ string? mimetype=null, string? text=null, string? storage=null)
+ {
+ this.uri = source_uri;
+ this.origin = source_origin;
+ this.current_uri = destination_uri;
+ this.current_origin = destination_origin;
+ this.interpretation = interpretation;
+ this.manifestation = manifestation;
+ this.mimetype = mimetype;
+ this.text = text;
+ this.storage = storage;
+ }
+
+ public Subject.from_variant (Variant subject_variant)
+ throws DataModelError
+ {
+ VariantIter iter = subject_variant.iterator();
+
+ var subject_props = iter.n_children ();
+ Utils.assert_sig (subject_props >= 7, "Missing subject information");
+ uri = next_string_or_null (iter);
+ interpretation = next_string_or_null (iter);
+ manifestation = next_string_or_null (iter);
+ origin = next_string_or_null (iter);
+ mimetype = next_string_or_null (iter);
+ text = next_string_or_null (iter);
+ storage = next_string_or_null (iter);
+ // let's keep this compatible with older clients
+ if (subject_props >= 8)
+ current_uri = next_string_or_null (iter);
+ if (subject_props >= 9)
+ current_origin = next_string_or_null (iter);
+ }
+
+ public Variant to_variant ()
+ {
+ /* The FAST version */
+ char* ptr_arr[9];
+ ptr_arr[0] = uri != null ? uri : "";
+ ptr_arr[1] = interpretation != null ? interpretation : "";
+ ptr_arr[2] = manifestation != null ? manifestation : "";
+ ptr_arr[3] = origin != null ? origin : "";
+ ptr_arr[4] = mimetype != null ? mimetype : "";
+ ptr_arr[5] = text != null ? text : "";
+ ptr_arr[6] = storage != null ? storage : "";
+ ptr_arr[7] = current_uri != null ? current_uri : "";
+ ptr_arr[8] = current_origin != null ? current_origin : "";
+ return new Variant.strv ((string[]) ptr_arr);
+ /* The NICE version */
+ /*
+ var vb = new VariantBuilder (new VariantType ("as"));
+ vb.add ("s", uri ?? "");
+ vb.add ("s", interpretation ?? "");
+ vb.add ("s", manifestation ?? "");
+ vb.add ("s", origin ?? "");
+ vb.add ("s", mimetype ?? "");
+ vb.add ("s", text ?? "");
+ vb.add ("s", storage ?? "");
+ vb.add ("s", current_uri ?? "");
+ vb.add ("s", current_origin ?? "");
+
+ return vb.end ();
+ */
+ }
+
+ public bool matches_template (Subject template_subject)
+ {
+ /**
+ Return True if this Subject matches *subject_template*. Empty
+ fields in the template are treated as wildcards.
+ Interpretations and manifestations are also matched if they are
+ children of the types specified in `subject_template`.
+ */
+ if (!check_field_match (this.uri, template_subject.uri, false, true))
+ return false;
+ if (!check_field_match (this.current_uri, template_subject.current_uri, false, true))
+ return false;
+ if (!check_field_match (this.interpretation, template_subject.interpretation, true))
+ return false;
+ if (!check_field_match (this.manifestation, template_subject.manifestation, true))
+ return false;
+ if (!check_field_match (this.origin, template_subject.origin, false, true))
+ return false;
+ if (!check_field_match (this.current_origin, template_subject.current_origin, false, true))
+ return false;
+ if (!check_field_match (this.mimetype, template_subject.mimetype, false, true))
+ return false;
+
+ return true;
+ }
+
+}
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/timerange.vala b/libzeitgeist/timerange.vala
new file mode 100644
index 00000000..4b0a6c54
--- /dev/null
+++ b/libzeitgeist/timerange.vala
@@ -0,0 +1,150 @@
+/* timerange.vala
+ *
+ * Copyright © 2011-2012 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 © 2012 Canonical Ltd.
+ * By Siegfried-A. Gevatter <siegfried.gevatter@collabora.co.uk>
+ *
+ * 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/>.
+ *
+ */
+
+using Zeitgeist;
+
+namespace Zeitgeist
+{
+
+/**
+ * Immutable representation of an interval in time, marked by a
+ * beginning and an end
+ *
+ * A light, immutable, encapsulation of an interval in time, marked by
+ * a beginning and an end.
+ */
+[CCode (type_signature = "(xx)")]
+public class TimeRange: Object
+{
+ public int64 start { get; private set; }
+ public int64 end { get; private set; }
+
+ /**
+ * @param start_msec starting timestamp in number of milliseconds
+ * since the Unix Epoch
+ * @param end_msec ending timestamp in number of milliseconds
+ * since the Unix Epoch
+ * @param a newly allocated ZeitgeistTimeRange. Free with
+ * g_object_unref()
+ */
+ public TimeRange (int64 start_msec, int64 end_msec)
+ {
+ start = start_msec;
+ end = end_msec;
+ }
+
+ /**
+ * @return a new time range starting from the beginning of the Unix
+ * Epoch stretching to the end of time
+ */
+ public TimeRange.anytime ()
+ {
+ this (0, int64.MAX);
+ }
+
+ /**
+ * @return a new time range starting from the beggining of the
+ * Unix Epoch ending a the moment of invocation
+ */
+ public TimeRange.to_now ()
+ {
+ this (0, Timestamp.from_now ());
+ }
+
+ /**
+ * @return a new time range starting from the moment of invocation
+ * to the end of time
+ */
+ public TimeRange.from_now ()
+ {
+ this (Timestamp.from_now (), int64.MAX);
+ }
+
+ /**
+ * Create a #TimeRange from a variant.
+ *
+ * @param variant a variant representing a #TimeRange
+ * @return a new time range starting from the moment of invocation
+ * to the end of time
+ */
+ public TimeRange.from_variant (Variant variant)
+ throws DataModelError
+ {
+ Utils.assert_sig (variant.get_type_string () == "(xx)",
+ "Invalid D-Bus signature.");
+
+ int64 start_msec = 0;
+ int64 end_msec = 0;
+
+ variant.get ("(xx)", &start_msec, &end_msec);
+
+ this (start_msec, end_msec);
+ }
+
+ /**
+ * @param a #TimeRange
+ * @return a new variant holding the time range
+ */
+ public Variant to_variant ()
+ {
+ return new Variant ("(xx)", start, end);
+ }
+
+ /**
+ * Check whether two time ranges are intersecting.
+ *
+ * @param time_range the second time range to compare with
+ * @return a new time range representing the intersection
+ */
+ public TimeRange? intersect (TimeRange time_range)
+ {
+ var result = new TimeRange(0,0);
+ if (start < time_range.start)
+ if (end < time_range.start)
+ return null;
+ else
+ result.start = time_range.start;
+ else
+ if (start > time_range.end)
+ return null;
+ else
+ result.start = start;
+
+ if (end < time_range.end)
+ if (end < time_range.start)
+ return null;
+ else
+ result.end = end;
+ else
+ if (start > time_range.end)
+ return null;
+ else
+ result.end = time_range.end;
+ return result;
+ }
+}
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/timestamp.vala b/libzeitgeist/timestamp.vala
new file mode 100644
index 00000000..039ac45d
--- /dev/null
+++ b/libzeitgeist/timestamp.vala
@@ -0,0 +1,236 @@
+/* timestamp.vala
+ *
+ * Copyright © 2012 Collabora Ltd.
+ * By Siegfried-Angel Gevatter Pujals <siegfried@gevatter.com>
+ * Copyright © 2010 Canonical, Ltd.
+ * By Mikkel Kamstrup Erlandsen <mikkel.kamstrup@canonical.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/>.
+ *
+ */
+
+using Zeitgeist;
+
+/**
+ * Convenience functions for dealing with timestamps and dates
+ *
+ * include: zeitgeist.h
+ *
+ * A suite of convenience functions for dealing with timestamps and dates.
+ *
+ * Zeitgeist timestamps are represented as ''gint64''s with the number
+ * of milliseconds since the Unix Epoch.
+ */
+namespace Zeitgeist.Timestamp
+{
+ /**
+ * A second represented as a Zeitgeist timestamp (ie. 1000ms)
+ */
+ public const int64 SECOND = 1000;
+
+ /**
+ * A minute represented as a Zeitgeist timestamp (ie. 60000ms)
+ */
+ public const int64 MINUTE = 60000;
+
+ /**
+ * An hour represented as a Zeitgeist timestamp (ie. 3600000ms)
+ */
+ public const int64 HOUR = 3600000;
+
+ /**
+ * A day represented as a Zeitgeist timestamp (ie. 86400000ms)
+ */
+ public const int64 DAY = 86400000;
+
+ /**
+ * A week represented as a Zeitgeist timestamp (ie. 604800000ms)
+ */
+ public const int64 WEEK = 604800000;
+
+ /**
+ * A year represented as a Zeitgeist timestamp (ie. 31556952000ms).
+ * Be warned that a year is not 365 days, but in fact 365.2425 days,
+ * to account for leap years.
+ */
+ public const int64 YEAR = 31556952000;
+
+ /**
+ * Convert a {@link GLib.TimeVal} to an amount of milliseconds since
+ * the Unix Epoch
+ *
+ * @param timeval time to convert
+ *
+ * @return number of milliseconds since the Unix Epoch
+ */
+ public int64 from_timeval (TimeVal timeval)
+ {
+ var m_seconds = (int64) (timeval.tv_sec) * 1000;
+ return m_seconds + ((int64) timeval.tv_usec / 1000);
+ }
+
+ /**
+ * Write a Zeitgeist timestamp to a {@link GLib.TimeVal} instance.
+ * Note that Zeitgeist uses only a millisecond resolution, whereas
+ * {@link GLib.TimeVal} has microsecond resolution. This means that
+ * the lower three digits of @tv.tv_usec will always be 0.
+ *
+ * @param timestamp to convert
+ *
+ * @return the equivalent {@link GLib.TimeVal} instance.
+ */
+ public TimeVal to_timeval (int64 timestamp)
+ {
+ TimeVal timeval = TimeVal();
+ timeval.tv_sec = (long) (timestamp / 1000);
+ timeval.tv_usec = (long) ((timestamp % 1000) * 1000);
+ return timeval;
+ }
+
+ /**
+ * Return the current timestamp in milliseconds.
+ *
+ * @return the timestamp for the current system time, in milliseconds
+ * since the Unix Epoch
+ */
+ public int64 from_now ()
+ {
+ return get_real_time () / 1000;
+ }
+
+ /**
+ * Parse a timestamp from an ISO8601-encoded string.
+ *
+ * @param datetime a string containing an ISO8601-conforming datetime
+ *
+ * @return the timestamp represented by the given string, or -1 if
+ * it can't be parsed
+ */
+ public int64 from_iso8601 (string datetime)
+ {
+ TimeVal timeval = TimeVal();
+ if (timeval.from_iso8601 (datetime))
+ return from_timeval (timeval);
+ else
+ return -1;
+ }
+
+ /**
+ * Convert a timestamp to a human-readable ISO8601 format
+ *
+ * @param timestamp a timestamp in milliseconds since the Unix Epoch
+ *
+ * @return a newly allocated string containing the ISO8601 version of
+ * the given timestamp
+ */
+ public string to_iso8601 (int64 timestamp)
+ {
+ TimeVal timeval = to_timeval (timestamp);
+ return timeval.to_iso8601 ();
+ }
+
+ /**
+ * Convert a ''GDate'' to a Zeitgeist timestamp
+ *
+ * @param date the date to convert
+ *
+ * @return the given date expressed as a timestamp in milliseconds since
+ * the Epoch. The timestamp is guaranteed to be roudned off to the
+ * midnight of the given date.
+ */
+ public int64 from_date (Date date)
+ {
+ int64 julian = date.get_julian ();
+ return prev_midnight (julian*DAY - 1969*YEAR);
+ }
+
+ /**
+ * Convert a day, month, year tuple into a Zeitgeist timestamp
+ *
+ * @param day the day of the month
+ * @param month the month of the year
+ * @param year the year
+ *
+ * @return the given date (rounded off to the midnight), expressed as
+ * a timestamp in milliseconds since the Epoch, or -1 in case
+ * the provided parameters don't constitute a valid date.
+ */
+ public int64 from_dmy (DateDay day, DateMonth month, DateYear year)
+ {
+ Date date = Date ();
+ date.set_dmy (day, month, year);
+ return from_date (date);
+ }
+
+ /**
+ * Write a timestamp to a {@link GLib.Date} structure
+ *
+ * @param timestamp to convert
+ * @return {@link GLib.Date} initialized to the given timestamp
+ */
+ public Date to_date (int64 timestamp)
+ {
+ Date date = Date ();
+ TimeVal timeval = to_timeval (timestamp);
+ date.set_time_val (timeval);
+ return date;
+ }
+
+ /**
+ * Calculate the timestamp for the next midnight after the given timestamp.
+ *
+ * If is is already midnight (down to the millisecond), this method will
+ * return the value for the next midnight. In other words, you can call
+ * this method recursively in order to iterate, forwards in time, over
+ * midnights.
+ *
+ * @param timestamp the Zeitgeist timestamp to find the next midnight for
+ *
+ * @return the timestamp for the next midnight after the given timestamp
+ */
+ public int64 next_midnight (int64 timestamp)
+ {
+ int64 remainder = timestamp % DAY;
+ if (remainder == 0)
+ return timestamp + DAY;
+ else
+ return (timestamp - remainder) + DAY;
+ }
+
+ /**
+ * Calculate the timestamp for the midnight just before the given
+ * timestamp.
+ *
+ * If is is already midnight (down to the millisecond), this method will
+ * return the value for the previous midnight. In other words, you can
+ * call this method recursively in order to iterate, backwards in time,
+ * over midnights.
+ *
+ * @param timestamp the Zeitgeist timestamp to find the previous
+ * midnight for
+ *
+ * @return the timestamp for the midnight just before the given timestamp
+ */
+ public int64 prev_midnight (int64 timestamp)
+ {
+ int64 remainder = timestamp % DAY;
+ if (remainder == 0)
+ return timestamp - DAY;
+ else
+ return (timestamp - remainder);
+ }
+
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/utils.vala b/libzeitgeist/utils.vala
new file mode 100644
index 00000000..31141982
--- /dev/null
+++ b/libzeitgeist/utils.vala
@@ -0,0 +1,212 @@
+/* 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 == "";
+ }
+
+ internal void assert_sig (bool condition, string error_message)
+ throws DataModelError
+ {
+ if (unlikely (!condition))
+ throw new DataModelError.INVALID_SIGNATURE (error_message);
+ }
+
+ }
+}
+
+// vim:expandtab:ts=4:sw=4
diff --git a/libzeitgeist/zeitgeist-2.0.pc b/libzeitgeist/zeitgeist-2.0.pc
new file mode 100644
index 00000000..90fe0205
--- /dev/null
+++ b/libzeitgeist/zeitgeist-2.0.pc
@@ -0,0 +1,11 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: libzeigeist
+Description: C bindings for Zeitgeist
+Requires: glib-2.0
+Version: 2.0.0
+Libs: -L${libdir} -lzeitgeist-2.0
+Cflags: -I${includedir}/zeitgeist-2.0
diff --git a/libzeitgeist/zeitgeist-2.0.pc.in b/libzeitgeist/zeitgeist-2.0.pc.in
new file mode 100644
index 00000000..8c06455a
--- /dev/null
+++ b/libzeitgeist/zeitgeist-2.0.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libzeigeist
+Description: C bindings for Zeitgeist
+Requires: glib-2.0
+Version: @LIBZEITGEIST_VERSION@
+Libs: -L${libdir} -lzeitgeist-2.0
+Cflags: -I${includedir}/zeitgeist-2.0
diff --git a/libzeitgeist/zeitgeist-2.0.vapi b/libzeitgeist/zeitgeist-2.0.vapi
new file mode 100644
index 00000000..d4bf7831
--- /dev/null
+++ b/libzeitgeist/zeitgeist-2.0.vapi
@@ -0,0 +1,579 @@
+/* zeitgeist-2.0.vapi generated by valac 0.18.0.72-2db4, do not modify. */
+
+namespace Zeitgeist {
+ namespace DataSources {
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string SIG_DATASOURCES;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static GLib.GenericArray<Zeitgeist.DataSource> from_variant (GLib.Variant sources_variant) throws Zeitgeist.DataModelError;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static GLib.Variant to_variant (GLib.HashTable<string,Zeitgeist.DataSource> sources);
+ }
+ namespace Events {
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static GLib.GenericArray<Zeitgeist.Event?> from_variant (GLib.Variant vevents) throws Zeitgeist.DataModelError;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static GLib.Variant to_variant (GLib.GenericArray<Zeitgeist.Event?> events);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static GLib.Variant to_variant_with_limit (GLib.GenericArray<Zeitgeist.Event?> events, size_t limit = Utils.MAX_DBUS_RESULT_SIZE) throws Zeitgeist.DataModelError;
+ }
+ namespace NCAL {
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string ALARM;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string ATTACHMENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string CALENDAR;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string CALENDAR_DATA_OBJECT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string FREEBUSY;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string JOURNAL;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string TIMEZONE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string TODO;
+ }
+ namespace NCO {
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string CONTACT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string CONTACT_GROUP;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string CONTACT_LIST;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string CONTACT_LIST_DATA_OBJECT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string ORGANIZATION_CONTACT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string PERSON_CONTACT;
+ }
+ namespace NFO {
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string APPLICATION;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string ARCHIVE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string ARCHIVE_ITEM;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string ATTACHMENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string AUDIO;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string BOOKMARK;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string BOOKMARK_FOLDER;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string CURSOR;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string DATA_CONTAINER;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string DELETED_RESOURCE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string DOCUMENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string EMBEDDED_FILE_DATA_OBJECT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string EXECUTABLE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string FILESYSTEM;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string FILESYSTEM_IMAGE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string FILE_DATA_OBJECT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string FOLDER;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string FONT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string HARD_DISK_PARTITION;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string HTML_DOCUMENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string ICON;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string IMAGE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MEDIA;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MEDIA_LIST;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MEDIA_STREAM;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MIND_MAP;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string OPERATING_SYSTEM;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string PAGINATED_TEXT_DOCUMENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string PLAIN_TEXT_DOCUMENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string PRESENTATION;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string RASTER_IMAGE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string REMOTE_DATA_OBJECT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string REMOTE_PORT_ADDRESS;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string SOFTWARE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string SOFTWARE_ITEM;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string SOFTWARE_SERVICE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string SOURCE_CODE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string SPREADSHEET;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string TEXT_DOCUMENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string TRASH;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string VECTOR_IMAGE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string VIDEO;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string VISUAL;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string WEBSITE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string WEB_DATA_OBJECT;
+ }
+ namespace NIE {
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string DATA_OBJECT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string INFORMATION_ELEMENT;
+ }
+ namespace NMM {
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MOVIE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MUSIC_ALBUM;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MUSIC_PIECE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string TVSERIES;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string TVSHOW;
+ }
+ namespace NMO {
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string EMAIL;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string IMMESSAGE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MAILBOX;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MAILBOX_DATA_OBJECT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MESSAGE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MIME_ENTITY;
+ }
+ namespace Symbol {
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static GLib.List<weak string> get_all_children (string symbol_uri);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static GLib.List<weak string> get_all_parents (string symbol_uri);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static GLib.List<weak string> get_children (string symbol_uri);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static unowned string get_description (string symbol_uri);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static unowned string get_display_name (string symbol_uri);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static GLib.List<weak string> get_parents (string symbol_uri);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static bool is_a (string? symbol_uri, string? parent_uri);
+ }
+ namespace Timestamp {
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const int64 DAY;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const int64 HOUR;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const int64 MINUTE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const int64 SECOND;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const int64 WEEK;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const int64 YEAR;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static int64 from_date (GLib.Date date);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static int64 from_dmy (GLib.DateDay day, GLib.DateMonth month, GLib.DateYear year);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static int64 from_iso8601 (string datetime);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static int64 from_now ();
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static int64 from_timeval (GLib.TimeVal timeval);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static int64 next_midnight (int64 timestamp);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static int64 prev_midnight (int64 timestamp);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static GLib.Date to_date (int64 timestamp);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static string to_iso8601 (int64 timestamp);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static GLib.TimeVal to_timeval (int64 timestamp);
+ }
+ namespace Utils {
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const uint CACHE_SIZE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string ENGINE_DBUS_NAME;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string ENGINE_DBUS_PATH;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const size_t MAX_DBUS_RESULT_SIZE;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string SIG_EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static void backup_database () throws GLib.Error;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static unowned string get_data_path ();
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static unowned string get_database_file_backup_path ();
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static unowned string get_database_file_path ();
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static string get_database_file_retire_name ();
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static string get_default_data_path ();
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static unowned string get_local_extensions_path ();
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static bool is_empty_string (string? s);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static bool parse_negation (ref string val);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static bool parse_noexpand (ref string val);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static bool parse_wildcard (ref string val);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static bool using_in_memory_database ();
+ }
+ namespace ZG {
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string ACCEPT_EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string ACCESS_EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string CREATE_EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string DELETE_EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string DENY_EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string EVENT_INTERPRETATION;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string EVENT_MANIFESTATION;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string EXPIRE_EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string HEURISTIC_ACTIVITY;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string LEAVE_EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MODIFY_EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string MOVE_EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string RECEIVE_EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string SCHEDULED_ACTIVITY;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string SEND_EVENT;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string SYSTEM_NOTIFICATION;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string USER_ACTIVITY;
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public const string WORLD_ACTIVITY;
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public class DataSource : GLib.Object {
+ public DataSource ();
+ public DataSource.from_variant (GLib.Variant variant, bool reset_running = false) throws Zeitgeist.DataModelError;
+ public DataSource.full (string unique_id, string name, string description, GLib.GenericArray<Zeitgeist.Event>? templates);
+ public GLib.Variant to_variant ();
+ public string description { get; set; }
+ public bool enabled { get; set; }
+ public GLib.GenericArray<Zeitgeist.Event>? event_templates { get; set; }
+ public string name { get; set; }
+ public bool running { get; set; }
+ public int64 timestamp { get; set; }
+ public string unique_id { get; set; }
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public class DataSourceRegistry : Zeitgeist.QueuedProxyWrapper {
+ public DataSourceRegistry ();
+ public async Zeitgeist.DataSource get_data_source_from_id (string unique_id, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public async GLib.GenericArray<Zeitgeist.DataSource> get_data_sources (GLib.Cancellable? cancellable = null) throws GLib.Error;
+ protected override void on_connection_established ();
+ protected override void on_connection_lost ();
+ public async bool register_data_source (Zeitgeist.DataSource data_source, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public async void set_data_source_enabled (string unique_id, bool enabled, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public signal void source_disconnected (Zeitgeist.DataSource data_source);
+ public signal void source_enabled (string unique_id, bool enabled);
+ public signal void source_registered (Zeitgeist.DataSource data_source);
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public class Event : GLib.Object {
+ public const string SIGNATURE;
+ public Event ();
+ public void add_subject (Zeitgeist.Subject subject);
+ public void debug_print ();
+ public Event.from_variant (GLib.Variant event_variant) throws Zeitgeist.DataModelError;
+ public Event.full (string? interpretation = null, string? manifestation = null, string? actor = null, string? origin = null, ...);
+ public Zeitgeist.Subject get_subject (int index);
+ public bool matches_template (Zeitgeist.Event template_event);
+ public int num_subjects ();
+ public void set_actor_from_info (GLib.AppInfo info);
+ public void take_subject (owned Zeitgeist.Subject subject);
+ public GLib.Variant to_variant ();
+ public string? actor { get; set; }
+ public uint32 id { get; set; }
+ public string? interpretation { get; set; }
+ public string? manifestation { get; set; }
+ public string? origin { get; set; }
+ public GLib.ByteArray? payload { get; set; }
+ public GLib.GenericArray<Zeitgeist.Subject> subjects { get; set; }
+ public int64 timestamp { get; set; }
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public class Index : Zeitgeist.QueuedProxyWrapper {
+ public Index ();
+ protected override void on_connection_established ();
+ protected override void on_connection_lost ();
+ public async Zeitgeist.ResultSet search (string query, Zeitgeist.TimeRange time_range, GLib.GenericArray<Zeitgeist.Event> event_templates, uint32 offset, uint32 num_events, Zeitgeist.ResultType result_type, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public async Zeitgeist.ResultSet search_with_relevancies (string query, Zeitgeist.TimeRange time_range, GLib.GenericArray<Zeitgeist.Event> event_templates, Zeitgeist.StorageState storage_state, uint32 offset, uint32 num_events, Zeitgeist.ResultType result_type, GLib.Cancellable? cancellable = null, out double[] relevancies) throws GLib.Error;
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public class Log : Zeitgeist.QueuedProxyWrapper {
+ public Log ();
+ public async Zeitgeist.TimeRange delete_events (GLib.Array<uint32> event_ids, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public async uint32[] find_event_ids (Zeitgeist.TimeRange time_range, GLib.GenericArray<Zeitgeist.Event> event_templates, Zeitgeist.StorageState storage_state, uint32 num_events, Zeitgeist.ResultType result_type, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public async Zeitgeist.ResultSet find_events (Zeitgeist.TimeRange time_range, GLib.GenericArray<Zeitgeist.Event> event_templates, Zeitgeist.StorageState storage_state, uint32 num_events, Zeitgeist.ResultType result_type, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public async string[] find_related_uris (Zeitgeist.TimeRange time_range, GLib.GenericArray<Zeitgeist.Event> event_templates, GLib.GenericArray<Zeitgeist.Event> result_event_templates, Zeitgeist.StorageState storage_state, uint32 num_events, Zeitgeist.ResultType result_type, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public static Zeitgeist.Log get_default ();
+ public async Zeitgeist.ResultSet get_events (GLib.Array<uint32> event_ids, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public void get_version (out int major, out int minor, out int micro);
+ public async GLib.Array<uint32> insert_event (Zeitgeist.Event event, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public async void insert_event_no_reply (Zeitgeist.Event event) throws GLib.Error;
+ public async GLib.Array<uint32> insert_events (GLib.GenericArray<Zeitgeist.Event> events, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public async void insert_events_no_reply (GLib.GenericArray<Zeitgeist.Event> events) throws GLib.Error;
+ public void install_monitor (Zeitgeist.Monitor monitor) throws GLib.Error;
+ protected override void on_connection_established ();
+ protected override void on_connection_lost ();
+ public async void quit (GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public async void remove_monitor (owned Zeitgeist.Monitor monitor) throws GLib.Error;
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public class Monitor : GLib.Object, Zeitgeist.RemoteMonitor {
+ public Monitor (Zeitgeist.TimeRange time_range, owned GLib.GenericArray<Zeitgeist.Event> event_templates);
+ public GLib.ObjectPath get_path ();
+ public GLib.GenericArray<Zeitgeist.Event> get_templates ();
+ public GLib.GenericArray<Zeitgeist.Event> event_templates { get; set construct; }
+ public Zeitgeist.TimeRange time_range { get; set construct; }
+ public signal void events_deleted (Zeitgeist.TimeRange time_range, uint32[] event_ids);
+ public signal void events_inserted (Zeitgeist.TimeRange time_range, Zeitgeist.ResultSet events);
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ protected abstract class QueuedProxyWrapper : GLib.Object {
+ protected class QueuedMethod {
+ public QueuedMethod (owned GLib.SourceFunc callback);
+ public GLib.SourceFunc queued_method { get; private owned set; }
+ }
+ public QueuedProxyWrapper ();
+ protected void name_owner_changed (GLib.ParamSpec pspec);
+ protected abstract void on_connection_established ();
+ protected abstract void on_connection_lost ();
+ protected void process_queued_methods ();
+ protected void proxy_acquired (GLib.Object proxy);
+ protected void proxy_unavailable (GLib.IOError err);
+ protected async void wait_for_proxy () throws GLib.Error;
+ public bool is_connected { get; private set; }
+ public bool proxy_created { get; private set; }
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public class Subject : GLib.Object {
+ public Subject ();
+ public Subject.from_variant (GLib.Variant subject_variant) throws Zeitgeist.DataModelError;
+ public Subject.full (string? uri = null, string? interpretation = null, string? manifestation = null, string? mimetype = null, string? origin = null, string? text = null, string? storage = null);
+ public bool matches_template (Zeitgeist.Subject template_subject);
+ public Subject.move_event (string? source_uri = null, string? source_origin = null, string? destination_uri = null, string? destination_origin = null, string? interpretation, string? manifestation = null, string? mimetype = null, string? text = null, string? storage = null);
+ public GLib.Variant to_variant ();
+ public string? current_origin { get; set; }
+ public string? current_uri { get; set; }
+ public string? interpretation { get; set; }
+ public string? manifestation { get; set; }
+ public string? mimetype { get; set; }
+ public string? origin { get; set; }
+ public string? storage { get; set; }
+ public string? text { get; set; }
+ public string? uri { get; set; }
+ }
+ [CCode (cheader_filename = "zeitgeist.h", type_signature = "(xx)")]
+ public class TimeRange : GLib.Object {
+ public TimeRange (int64 start_msec, int64 end_msec);
+ public TimeRange.anytime ();
+ public TimeRange.from_now ();
+ public TimeRange.from_variant (GLib.Variant variant) throws Zeitgeist.DataModelError;
+ public Zeitgeist.TimeRange? intersect (Zeitgeist.TimeRange time_range);
+ public TimeRange.to_now ();
+ public GLib.Variant to_variant ();
+ public int64 end { get; private set; }
+ public int64 start { get; private set; }
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ [DBus (name = "net.connman.Manager")]
+ protected interface ConnmanManagerDBus : GLib.Object {
+ public abstract string get_state () throws GLib.IOError;
+ public signal void state_changed (string state);
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ [DBus (name = "org.freedesktop.NetworkManager")]
+ protected interface NetworkManagerDBus : GLib.Object {
+ [DBus (name = "state")]
+ public abstract uint32 state () throws GLib.IOError;
+ public signal void state_changed (uint32 state);
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ [DBus (name = "org.gnome.zeitgeist.Log")]
+ protected interface RemoteLog : GLib.Object {
+ [DBus (signature = "(xx)")]
+ public abstract async GLib.Variant delete_events (uint32[] event_ids, GLib.Cancellable? cancellable = null, GLib.BusName? sender = null) throws GLib.Error;
+ public abstract async uint32[] find_event_ids ([DBus (signature = "(xx)")] GLib.Variant time_range, [DBus (signature = "a(asaasay)")] GLib.Variant event_templates, uint storage_state, uint num_events, uint result_type, GLib.Cancellable? cancellable = null, GLib.BusName? sender = null) throws GLib.Error;
+ [DBus (signature = "a(asaasay)")]
+ public abstract async GLib.Variant find_events ([DBus (signature = "(xx)")] GLib.Variant time_range, [DBus (signature = "a(asaasay)")] GLib.Variant event_templates, uint storage_state, uint num_events, uint result_type, GLib.Cancellable? cancellable = null, GLib.BusName? sender = null) throws GLib.Error;
+ public abstract async string[] find_related_uris ([DBus (signature = "(xx)")] GLib.Variant time_range, [DBus (signature = "a(asaasay)")] GLib.Variant event_templates, [DBus (signature = "a(asaasay)")] GLib.Variant result_event_templates, uint storage_state, uint num_events, uint result_type, GLib.Cancellable? cancellable = null, GLib.BusName? sender = null) throws GLib.Error;
+ [DBus (signature = "a(asaasay)")]
+ public abstract async GLib.Variant get_events (uint32[] event_ids, GLib.Cancellable? cancellable = null, GLib.BusName? sender = null) throws GLib.Error;
+ public abstract async uint32[] insert_events ([DBus (signature = "a(asaasay)")] GLib.Variant events, GLib.Cancellable? cancellable = null, GLib.BusName? sender = null) throws GLib.Error;
+ public abstract async void install_monitor (GLib.ObjectPath monitor_path, [DBus (signature = "(xx)")] GLib.Variant time_range, [DBus (signature = "a(asaasay)")] GLib.Variant event_templates, GLib.BusName? owner = null) throws GLib.Error;
+ public abstract async void quit (GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public abstract async void remove_monitor (GLib.ObjectPath monitor_path, GLib.BusName? owner = null) throws GLib.Error;
+ [DBus (name = "extensions")]
+ public abstract string[] extensions { owned get; }
+ [DBus (name = "version")]
+ public abstract Zeitgeist.VersionStruct version { get; }
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ [DBus (name = "org.gnome.zeitgeist.Monitor")]
+ protected interface RemoteMonitor : GLib.Object {
+ public abstract async void notify_delete ([DBus (signature = "(xx)")] GLib.Variant time_range, uint32[] event_ids) throws GLib.IOError;
+ public abstract async void notify_insert ([DBus (signature = "(xx)")] GLib.Variant time_range, [DBus (signature = "a(asaasay)")] GLib.Variant events) throws GLib.Error;
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ [DBus (name = "org.gnome.zeitgeist.DataSourceRegistry")]
+ protected interface RemoteRegistry : GLib.Object {
+ [DBus (signature = "(sssa(asaasay)bxb)")]
+ public abstract async GLib.Variant get_data_source_from_id (string unique_id, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ [DBus (signature = "a(sssa(asaasay)bxb)")]
+ public abstract async GLib.Variant get_data_sources (GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public abstract async bool register_data_source (string unique_id, string name, string description, [DBus (signature = "a(asaasay)")] GLib.Variant event_templates, GLib.Cancellable? cancellable = null, GLib.BusName? sender = null) throws GLib.Error;
+ public abstract async void set_data_source_enabled (string unique_id, bool enabled, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public signal void data_source_disconnected ([DBus (signature = "(sssa(asaasay)bxb)")] GLib.Variant data_source);
+ public signal void data_source_enabled (string unique_id, bool enabled);
+ public signal void data_source_registered ([DBus (signature = "(sssa(asaasay)bxb)")] GLib.Variant data_source);
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ [DBus (name = "org.gnome.zeitgeist.Index")]
+ protected interface RemoteSimpleIndexer : GLib.Object {
+ public abstract async void search (string query_string, [DBus (signature = "(xx)")] GLib.Variant time_range, [DBus (signature = "a(asaasay)")] GLib.Variant filter_templates, uint offset, uint count, uint result_type, [DBus (signature = "a(asaasay)")] out GLib.Variant events, out uint matches, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ public abstract async void search_with_relevancies (string query_string, [DBus (signature = "(xx)")] GLib.Variant time_range, [DBus (signature = "a(asaasay)")] GLib.Variant filter_templates, uint storage_state, uint offset, uint count, uint result_type, [DBus (signature = "a(asaasay)")] out GLib.Variant events, out double[] relevancies, out uint matches, GLib.Cancellable? cancellable = null) throws GLib.Error;
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public interface ResultSet : GLib.Object {
+ public abstract uint estimated_matches ();
+ public abstract bool has_next ();
+ public Zeitgeist.ResultSet iterator ();
+ public abstract Zeitgeist.Event? next_value ();
+ public abstract void reset ();
+ public abstract uint size ();
+ public abstract uint tell ();
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public struct VersionStruct {
+ public int major;
+ public int minor;
+ public int micro;
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public enum RelevantResultType {
+ RECENT,
+ RELATED
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public enum ResultType {
+ MOST_RECENT_EVENTS,
+ LEAST_RECENT_EVENTS,
+ MOST_RECENT_SUBJECTS,
+ LEAST_RECENT_SUBJECTS,
+ MOST_POPULAR_SUBJECTS,
+ LEAST_POPULAR_SUBJECTS,
+ MOST_POPULAR_ACTOR,
+ LEAST_POPULAR_ACTOR,
+ MOST_RECENT_ACTOR,
+ LEAST_RECENT_ACTOR,
+ MOST_RECENT_ORIGIN,
+ LEAST_RECENT_ORIGIN,
+ MOST_POPULAR_ORIGIN,
+ LEAST_POPULAR_ORIGIN,
+ OLDEST_ACTOR,
+ MOST_RECENT_SUBJECT_INTERPRETATION,
+ LEAST_RECENT_SUBJECT_INTERPRETATION,
+ MOST_POPULAR_SUBJECT_INTERPRETATION,
+ LEAST_POPULAR_SUBJECT_INTERPRETATION,
+ MOST_RECENT_MIMETYPE,
+ LEAST_RECENT_MIMETYPE,
+ MOST_POPULAR_MIMETYPE,
+ LEAST_POPULAR_MIMETYPE,
+ MOST_RECENT_CURRENT_URI,
+ LEAST_RECENT_CURRENT_URI,
+ MOST_POPULAR_CURRENT_URI,
+ LEAST_POPULAR_CURRENT_URI,
+ MOST_RECENT_EVENT_ORIGIN,
+ LEAST_RECENT_EVENT_ORIGIN,
+ MOST_POPULAR_EVENT_ORIGIN,
+ LEAST_POPULAR_EVENT_ORIGIN,
+ MOST_RECENT_CURRENT_ORIGIN,
+ LEAST_RECENT_CURRENT_ORIGIN,
+ MOST_POPULAR_CURRENT_ORIGIN,
+ LEAST_POPULAR_CURRENT_ORIGIN,
+ RELEVANCY;
+ public static bool is_sort_order_asc (Zeitgeist.ResultType result_type);
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public enum StorageState {
+ NOT_AVAILABLE,
+ AVAILABLE,
+ ANY
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ [DBus (name = "org.gnome.zeitgeist.DataModelError")]
+ public errordomain DataModelError {
+ INVALID_SIGNATURE,
+ NULL_EVENT,
+ TOO_MANY_RESULTS
+ }
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static unowned string? interpretation_for_mimetype (string? mimetype);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static unowned string? manifestation_for_uri (string uri);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static void register_mimetype (string mimetype, string interpretation_uri);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static void register_mimetype_regex (string mimetype_regex, string interpretation_uri);
+ [CCode (cheader_filename = "zeitgeist.h")]
+ public static void register_uri_scheme (string uri_scheme, string manifestation_type);
+}
diff --git a/libzeitgeist/zeitgeist-private.h b/libzeitgeist/zeitgeist-private.h
new file mode 100644
index 00000000..4ddbfe1a
--- /dev/null
+++ b/libzeitgeist/zeitgeist-private.h
@@ -0,0 +1,951 @@
+/* zeitgeist-private.h generated by valac 0.18.0.72-2db4, the Vala compiler, do not modify */
+
+
+#ifndef __ZEITGEIST_PRIVATE_H__
+#define __ZEITGEIST_PRIVATE_H__
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <float.h>
+#include <math.h>
+
+G_BEGIN_DECLS
+
+
+#define ZEITGEIST_TYPE_DATA_SOURCE (zeitgeist_data_source_get_type ())
+#define ZEITGEIST_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_DATA_SOURCE, ZeitgeistDataSource))
+#define ZEITGEIST_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_DATA_SOURCE, ZeitgeistDataSourceClass))
+#define ZEITGEIST_IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_DATA_SOURCE))
+#define ZEITGEIST_IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_DATA_SOURCE))
+#define ZEITGEIST_DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_DATA_SOURCE, ZeitgeistDataSourceClass))
+
+typedef struct _ZeitgeistDataSource ZeitgeistDataSource;
+typedef struct _ZeitgeistDataSourceClass ZeitgeistDataSourceClass;
+typedef struct _ZeitgeistDataSourcePrivate ZeitgeistDataSourcePrivate;
+
+#define ZEITGEIST_TYPE_EVENT (zeitgeist_event_get_type ())
+#define ZEITGEIST_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_EVENT, ZeitgeistEvent))
+#define ZEITGEIST_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_EVENT, ZeitgeistEventClass))
+#define ZEITGEIST_IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_EVENT))
+#define ZEITGEIST_IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_EVENT))
+#define ZEITGEIST_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_EVENT, ZeitgeistEventClass))
+
+typedef struct _ZeitgeistEvent ZeitgeistEvent;
+typedef struct _ZeitgeistEventClass ZeitgeistEventClass;
+
+#define ZEITGEIST_TYPE_REMOTE_REGISTRY (zeitgeist_remote_registry_get_type ())
+#define ZEITGEIST_REMOTE_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_REMOTE_REGISTRY, ZeitgeistRemoteRegistry))
+#define ZEITGEIST_IS_REMOTE_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_REMOTE_REGISTRY))
+#define ZEITGEIST_REMOTE_REGISTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_REMOTE_REGISTRY, ZeitgeistRemoteRegistryIface))
+
+typedef struct _ZeitgeistRemoteRegistry ZeitgeistRemoteRegistry;
+typedef struct _ZeitgeistRemoteRegistryIface ZeitgeistRemoteRegistryIface;
+
+#define ZEITGEIST_TYPE_REMOTE_REGISTRY_PROXY (zeitgeist_remote_registry_proxy_get_type ())
+
+#define ZEITGEIST_TYPE_QUEUED_PROXY_WRAPPER (zeitgeist_queued_proxy_wrapper_get_type ())
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_QUEUED_PROXY_WRAPPER, ZeitgeistQueuedProxyWrapper))
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_QUEUED_PROXY_WRAPPER, ZeitgeistQueuedProxyWrapperClass))
+#define ZEITGEIST_IS_QUEUED_PROXY_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_QUEUED_PROXY_WRAPPER))
+#define ZEITGEIST_IS_QUEUED_PROXY_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_QUEUED_PROXY_WRAPPER))
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_QUEUED_PROXY_WRAPPER, ZeitgeistQueuedProxyWrapperClass))
+
+typedef struct _ZeitgeistQueuedProxyWrapper ZeitgeistQueuedProxyWrapper;
+typedef struct _ZeitgeistQueuedProxyWrapperClass ZeitgeistQueuedProxyWrapperClass;
+typedef struct _ZeitgeistQueuedProxyWrapperPrivate ZeitgeistQueuedProxyWrapperPrivate;
+
+#define ZEITGEIST_TYPE_DATA_SOURCE_REGISTRY (zeitgeist_data_source_registry_get_type ())
+#define ZEITGEIST_DATA_SOURCE_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_DATA_SOURCE_REGISTRY, ZeitgeistDataSourceRegistry))
+#define ZEITGEIST_DATA_SOURCE_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_DATA_SOURCE_REGISTRY, ZeitgeistDataSourceRegistryClass))
+#define ZEITGEIST_IS_DATA_SOURCE_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_DATA_SOURCE_REGISTRY))
+#define ZEITGEIST_IS_DATA_SOURCE_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_DATA_SOURCE_REGISTRY))
+#define ZEITGEIST_DATA_SOURCE_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_DATA_SOURCE_REGISTRY, ZeitgeistDataSourceRegistryClass))
+
+typedef struct _ZeitgeistDataSourceRegistry ZeitgeistDataSourceRegistry;
+typedef struct _ZeitgeistDataSourceRegistryClass ZeitgeistDataSourceRegistryClass;
+typedef struct _ZeitgeistDataSourceRegistryPrivate ZeitgeistDataSourceRegistryPrivate;
+typedef struct _ZeitgeistMimeRegex ZeitgeistMimeRegex;
+typedef struct _ZeitgeistUriScheme ZeitgeistUriScheme;
+
+#define ZEITGEIST_TYPE_RESULT_TYPE (zeitgeist_result_type_get_type ())
+
+#define ZEITGEIST_TYPE_RELEVANT_RESULT_TYPE (zeitgeist_relevant_result_type_get_type ())
+
+#define ZEITGEIST_TYPE_STORAGE_STATE (zeitgeist_storage_state_get_type ())
+typedef struct _ZeitgeistEventPrivate ZeitgeistEventPrivate;
+
+#define ZEITGEIST_TYPE_SUBJECT (zeitgeist_subject_get_type ())
+#define ZEITGEIST_SUBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_SUBJECT, ZeitgeistSubject))
+#define ZEITGEIST_SUBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_SUBJECT, ZeitgeistSubjectClass))
+#define ZEITGEIST_IS_SUBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_SUBJECT))
+#define ZEITGEIST_IS_SUBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_SUBJECT))
+#define ZEITGEIST_SUBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_SUBJECT, ZeitgeistSubjectClass))
+
+typedef struct _ZeitgeistSubject ZeitgeistSubject;
+typedef struct _ZeitgeistSubjectClass ZeitgeistSubjectClass;
+typedef struct _ZeitgeistSubjectPrivate ZeitgeistSubjectPrivate;
+
+#define ZEITGEIST_TYPE_TIME_RANGE (zeitgeist_time_range_get_type ())
+#define ZEITGEIST_TIME_RANGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_TIME_RANGE, ZeitgeistTimeRange))
+#define ZEITGEIST_TIME_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_TIME_RANGE, ZeitgeistTimeRangeClass))
+#define ZEITGEIST_IS_TIME_RANGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_TIME_RANGE))
+#define ZEITGEIST_IS_TIME_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_TIME_RANGE))
+#define ZEITGEIST_TIME_RANGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_TIME_RANGE, ZeitgeistTimeRangeClass))
+
+typedef struct _ZeitgeistTimeRange ZeitgeistTimeRange;
+typedef struct _ZeitgeistTimeRangeClass ZeitgeistTimeRangeClass;
+typedef struct _ZeitgeistTimeRangePrivate ZeitgeistTimeRangePrivate;
+
+#define ZEITGEIST_TYPE_INDEX (zeitgeist_index_get_type ())
+#define ZEITGEIST_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_INDEX, ZeitgeistIndex))
+#define ZEITGEIST_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_INDEX, ZeitgeistIndexClass))
+#define ZEITGEIST_IS_INDEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_INDEX))
+#define ZEITGEIST_IS_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_INDEX))
+#define ZEITGEIST_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_INDEX, ZeitgeistIndexClass))
+
+typedef struct _ZeitgeistIndex ZeitgeistIndex;
+typedef struct _ZeitgeistIndexClass ZeitgeistIndexClass;
+typedef struct _ZeitgeistIndexPrivate ZeitgeistIndexPrivate;
+
+#define ZEITGEIST_TYPE_RESULT_SET (zeitgeist_result_set_get_type ())
+#define ZEITGEIST_RESULT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_RESULT_SET, ZeitgeistResultSet))
+#define ZEITGEIST_IS_RESULT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_RESULT_SET))
+#define ZEITGEIST_RESULT_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_RESULT_SET, ZeitgeistResultSetIface))
+
+typedef struct _ZeitgeistResultSet ZeitgeistResultSet;
+typedef struct _ZeitgeistResultSetIface ZeitgeistResultSetIface;
+
+#define ZEITGEIST_TYPE_LOG (zeitgeist_log_get_type ())
+#define ZEITGEIST_LOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_LOG, ZeitgeistLog))
+#define ZEITGEIST_LOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_LOG, ZeitgeistLogClass))
+#define ZEITGEIST_IS_LOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_LOG))
+#define ZEITGEIST_IS_LOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_LOG))
+#define ZEITGEIST_LOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_LOG, ZeitgeistLogClass))
+
+typedef struct _ZeitgeistLog ZeitgeistLog;
+typedef struct _ZeitgeistLogClass ZeitgeistLogClass;
+typedef struct _ZeitgeistLogPrivate ZeitgeistLogPrivate;
+
+#define ZEITGEIST_TYPE_MONITOR (zeitgeist_monitor_get_type ())
+#define ZEITGEIST_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_MONITOR, ZeitgeistMonitor))
+#define ZEITGEIST_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_MONITOR, ZeitgeistMonitorClass))
+#define ZEITGEIST_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_MONITOR))
+#define ZEITGEIST_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_MONITOR))
+#define ZEITGEIST_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_MONITOR, ZeitgeistMonitorClass))
+
+typedef struct _ZeitgeistMonitor ZeitgeistMonitor;
+typedef struct _ZeitgeistMonitorClass ZeitgeistMonitorClass;
+
+#define ZEITGEIST_TYPE_REMOTE_MONITOR (zeitgeist_remote_monitor_get_type ())
+#define ZEITGEIST_REMOTE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_REMOTE_MONITOR, ZeitgeistRemoteMonitor))
+#define ZEITGEIST_IS_REMOTE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_REMOTE_MONITOR))
+#define ZEITGEIST_REMOTE_MONITOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_REMOTE_MONITOR, ZeitgeistRemoteMonitorIface))
+
+typedef struct _ZeitgeistRemoteMonitor ZeitgeistRemoteMonitor;
+typedef struct _ZeitgeistRemoteMonitorIface ZeitgeistRemoteMonitorIface;
+
+#define ZEITGEIST_TYPE_REMOTE_MONITOR_PROXY (zeitgeist_remote_monitor_proxy_get_type ())
+typedef struct _ZeitgeistMonitorPrivate ZeitgeistMonitorPrivate;
+
+#define ZEITGEIST_SYMBOL_TYPE_INFO (zeitgeist_symbol_info_get_type ())
+#define ZEITGEIST_SYMBOL_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_SYMBOL_TYPE_INFO, ZeitgeistSymbolInfo))
+#define ZEITGEIST_SYMBOL_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_SYMBOL_TYPE_INFO, ZeitgeistSymbolInfoClass))
+#define ZEITGEIST_SYMBOL_IS_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_SYMBOL_TYPE_INFO))
+#define ZEITGEIST_SYMBOL_IS_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_SYMBOL_TYPE_INFO))
+#define ZEITGEIST_SYMBOL_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_SYMBOL_TYPE_INFO, ZeitgeistSymbolInfoClass))
+
+typedef struct _ZeitgeistSymbolInfo ZeitgeistSymbolInfo;
+typedef struct _ZeitgeistSymbolInfoClass ZeitgeistSymbolInfoClass;
+typedef struct _ZeitgeistSymbolInfoPrivate ZeitgeistSymbolInfoPrivate;
+
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_TYPE_QUEUED_METHOD (zeitgeist_queued_proxy_wrapper_queued_method_get_type ())
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_QUEUED_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_QUEUED_PROXY_WRAPPER_TYPE_QUEUED_METHOD, ZeitgeistQueuedProxyWrapperQueuedMethod))
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_QUEUED_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_QUEUED_PROXY_WRAPPER_TYPE_QUEUED_METHOD, ZeitgeistQueuedProxyWrapperQueuedMethodClass))
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_IS_QUEUED_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_QUEUED_PROXY_WRAPPER_TYPE_QUEUED_METHOD))
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_IS_QUEUED_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_QUEUED_PROXY_WRAPPER_TYPE_QUEUED_METHOD))
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_QUEUED_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_QUEUED_PROXY_WRAPPER_TYPE_QUEUED_METHOD, ZeitgeistQueuedProxyWrapperQueuedMethodClass))
+
+typedef struct _ZeitgeistQueuedProxyWrapperQueuedMethod ZeitgeistQueuedProxyWrapperQueuedMethod;
+typedef struct _ZeitgeistQueuedProxyWrapperQueuedMethodClass ZeitgeistQueuedProxyWrapperQueuedMethodClass;
+typedef struct _ZeitgeistQueuedProxyWrapperQueuedMethodPrivate ZeitgeistQueuedProxyWrapperQueuedMethodPrivate;
+
+#define ZEITGEIST_TYPE_VERSION_STRUCT (zeitgeist_version_struct_get_type ())
+typedef struct _ZeitgeistVersionStruct ZeitgeistVersionStruct;
+
+#define ZEITGEIST_TYPE_REMOTE_LOG (zeitgeist_remote_log_get_type ())
+#define ZEITGEIST_REMOTE_LOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_REMOTE_LOG, ZeitgeistRemoteLog))
+#define ZEITGEIST_IS_REMOTE_LOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_REMOTE_LOG))
+#define ZEITGEIST_REMOTE_LOG_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_REMOTE_LOG, ZeitgeistRemoteLogIface))
+
+typedef struct _ZeitgeistRemoteLog ZeitgeistRemoteLog;
+typedef struct _ZeitgeistRemoteLogIface ZeitgeistRemoteLogIface;
+
+#define ZEITGEIST_TYPE_REMOTE_LOG_PROXY (zeitgeist_remote_log_proxy_get_type ())
+
+#define ZEITGEIST_TYPE_REMOTE_SIMPLE_INDEXER (zeitgeist_remote_simple_indexer_get_type ())
+#define ZEITGEIST_REMOTE_SIMPLE_INDEXER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_REMOTE_SIMPLE_INDEXER, ZeitgeistRemoteSimpleIndexer))
+#define ZEITGEIST_IS_REMOTE_SIMPLE_INDEXER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_REMOTE_SIMPLE_INDEXER))
+#define ZEITGEIST_REMOTE_SIMPLE_INDEXER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_REMOTE_SIMPLE_INDEXER, ZeitgeistRemoteSimpleIndexerIface))
+
+typedef struct _ZeitgeistRemoteSimpleIndexer ZeitgeistRemoteSimpleIndexer;
+typedef struct _ZeitgeistRemoteSimpleIndexerIface ZeitgeistRemoteSimpleIndexerIface;
+
+#define ZEITGEIST_TYPE_REMOTE_SIMPLE_INDEXER_PROXY (zeitgeist_remote_simple_indexer_proxy_get_type ())
+
+#define ZEITGEIST_TYPE_NETWORK_MANAGER_DBUS (zeitgeist_network_manager_dbus_get_type ())
+#define ZEITGEIST_NETWORK_MANAGER_DBUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_NETWORK_MANAGER_DBUS, ZeitgeistNetworkManagerDBus))
+#define ZEITGEIST_IS_NETWORK_MANAGER_DBUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_NETWORK_MANAGER_DBUS))
+#define ZEITGEIST_NETWORK_MANAGER_DBUS_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_NETWORK_MANAGER_DBUS, ZeitgeistNetworkManagerDBusIface))
+
+typedef struct _ZeitgeistNetworkManagerDBus ZeitgeistNetworkManagerDBus;
+typedef struct _ZeitgeistNetworkManagerDBusIface ZeitgeistNetworkManagerDBusIface;
+
+#define ZEITGEIST_TYPE_NETWORK_MANAGER_DBUS_PROXY (zeitgeist_network_manager_dbus_proxy_get_type ())
+
+#define ZEITGEIST_TYPE_CONNMAN_MANAGER_DBUS (zeitgeist_connman_manager_dbus_get_type ())
+#define ZEITGEIST_CONNMAN_MANAGER_DBUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_CONNMAN_MANAGER_DBUS, ZeitgeistConnmanManagerDBus))
+#define ZEITGEIST_IS_CONNMAN_MANAGER_DBUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_CONNMAN_MANAGER_DBUS))
+#define ZEITGEIST_CONNMAN_MANAGER_DBUS_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_CONNMAN_MANAGER_DBUS, ZeitgeistConnmanManagerDBusIface))
+
+typedef struct _ZeitgeistConnmanManagerDBus ZeitgeistConnmanManagerDBus;
+typedef struct _ZeitgeistConnmanManagerDBusIface ZeitgeistConnmanManagerDBusIface;
+
+#define ZEITGEIST_TYPE_CONNMAN_MANAGER_DBUS_PROXY (zeitgeist_connman_manager_dbus_proxy_get_type ())
+
+#define ZEITGEIST_TYPE_SIMPLE_RESULT_SET (zeitgeist_simple_result_set_get_type ())
+#define ZEITGEIST_SIMPLE_RESULT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_SIMPLE_RESULT_SET, ZeitgeistSimpleResultSet))
+#define ZEITGEIST_SIMPLE_RESULT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_SIMPLE_RESULT_SET, ZeitgeistSimpleResultSetClass))
+#define ZEITGEIST_IS_SIMPLE_RESULT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_SIMPLE_RESULT_SET))
+#define ZEITGEIST_IS_SIMPLE_RESULT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_SIMPLE_RESULT_SET))
+#define ZEITGEIST_SIMPLE_RESULT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_SIMPLE_RESULT_SET, ZeitgeistSimpleResultSetClass))
+
+typedef struct _ZeitgeistSimpleResultSet ZeitgeistSimpleResultSet;
+typedef struct _ZeitgeistSimpleResultSetClass ZeitgeistSimpleResultSetClass;
+typedef struct _ZeitgeistSimpleResultSetPrivate ZeitgeistSimpleResultSetPrivate;
+
+struct _ZeitgeistDataSource {
+ GObject parent_instance;
+ ZeitgeistDataSourcePrivate * priv;
+};
+
+struct _ZeitgeistDataSourceClass {
+ GObjectClass parent_class;
+};
+
+typedef enum {
+ ZEITGEIST_DATA_MODEL_ERROR_INVALID_SIGNATURE,
+ ZEITGEIST_DATA_MODEL_ERROR_NULL_EVENT,
+ ZEITGEIST_DATA_MODEL_ERROR_TOO_MANY_RESULTS
+} ZeitgeistDataModelError;
+#define ZEITGEIST_DATA_MODEL_ERROR zeitgeist_data_model_error_quark ()
+struct _ZeitgeistRemoteRegistryIface {
+ GTypeInterface parent_iface;
+ void (*get_data_sources) (ZeitgeistRemoteRegistry* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ GVariant* (*get_data_sources_finish) (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+ void (*register_data_source) (ZeitgeistRemoteRegistry* self, const gchar* unique_id, const gchar* name, const gchar* description, GVariant* event_templates, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ gboolean (*register_data_source_finish) (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+ void (*set_data_source_enabled) (ZeitgeistRemoteRegistry* self, const gchar* unique_id, gboolean enabled, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*set_data_source_enabled_finish) (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+ void (*get_data_source_from_id) (ZeitgeistRemoteRegistry* self, const gchar* unique_id, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ GVariant* (*get_data_source_from_id_finish) (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+};
+
+struct _ZeitgeistQueuedProxyWrapper {
+ GObject parent_instance;
+ ZeitgeistQueuedProxyWrapperPrivate * priv;
+};
+
+struct _ZeitgeistQueuedProxyWrapperClass {
+ GObjectClass parent_class;
+ void (*on_connection_established) (ZeitgeistQueuedProxyWrapper* self);
+ void (*on_connection_lost) (ZeitgeistQueuedProxyWrapper* self);
+};
+
+struct _ZeitgeistDataSourceRegistry {
+ ZeitgeistQueuedProxyWrapper parent_instance;
+ ZeitgeistDataSourceRegistryPrivate * priv;
+};
+
+struct _ZeitgeistDataSourceRegistryClass {
+ ZeitgeistQueuedProxyWrapperClass parent_class;
+};
+
+struct _ZeitgeistMimeRegex {
+ GRegex* regex;
+ gchar* interpretation_uri;
+};
+
+struct _ZeitgeistUriScheme {
+ gchar* uri_scheme;
+ gchar* manifestation_uri;
+};
+
+typedef enum {
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS = 0,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_EVENTS = 1,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_SUBJECTS = 2,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_SUBJECTS = 3,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_SUBJECTS = 4,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_SUBJECTS = 5,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_ACTOR = 6,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_ACTOR = 7,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_ACTOR = 8,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_ACTOR = 9,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_ORIGIN = 10,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_ORIGIN = 11,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_ORIGIN = 12,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_ORIGIN = 13,
+ ZEITGEIST_RESULT_TYPE_OLDEST_ACTOR = 14,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_SUBJECT_INTERPRETATION = 15,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_SUBJECT_INTERPRETATION = 16,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_SUBJECT_INTERPRETATION = 17,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_SUBJECT_INTERPRETATION = 18,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_MIMETYPE = 19,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_MIMETYPE = 20,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_MIMETYPE = 21,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_MIMETYPE = 22,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_CURRENT_URI = 23,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_CURRENT_URI = 24,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_CURRENT_URI = 25,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_CURRENT_URI = 26,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENT_ORIGIN = 27,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_EVENT_ORIGIN = 28,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_EVENT_ORIGIN = 29,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_EVENT_ORIGIN = 30,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_CURRENT_ORIGIN = 31,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_CURRENT_ORIGIN = 32,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_CURRENT_ORIGIN = 33,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_CURRENT_ORIGIN = 34,
+ ZEITGEIST_RESULT_TYPE_RELEVANCY = 100
+} ZeitgeistResultType;
+
+typedef enum {
+ ZEITGEIST_RELEVANT_RESULT_TYPE_RECENT = 0,
+ ZEITGEIST_RELEVANT_RESULT_TYPE_RELATED = 1
+} ZeitgeistRelevantResultType;
+
+typedef enum {
+ ZEITGEIST_STORAGE_STATE_NOT_AVAILABLE = 0,
+ ZEITGEIST_STORAGE_STATE_AVAILABLE = 1,
+ ZEITGEIST_STORAGE_STATE_ANY = 2
+} ZeitgeistStorageState;
+
+struct _ZeitgeistEvent {
+ GObject parent_instance;
+ ZeitgeistEventPrivate * priv;
+};
+
+struct _ZeitgeistEventClass {
+ GObjectClass parent_class;
+};
+
+struct _ZeitgeistSubject {
+ GObject parent_instance;
+ ZeitgeistSubjectPrivate * priv;
+};
+
+struct _ZeitgeistSubjectClass {
+ GObjectClass parent_class;
+};
+
+struct _ZeitgeistTimeRange {
+ GObject parent_instance;
+ ZeitgeistTimeRangePrivate * priv;
+};
+
+struct _ZeitgeistTimeRangeClass {
+ GObjectClass parent_class;
+};
+
+struct _ZeitgeistIndex {
+ ZeitgeistQueuedProxyWrapper parent_instance;
+ ZeitgeistIndexPrivate * priv;
+};
+
+struct _ZeitgeistIndexClass {
+ ZeitgeistQueuedProxyWrapperClass parent_class;
+};
+
+struct _ZeitgeistResultSetIface {
+ GTypeInterface parent_iface;
+ guint (*size) (ZeitgeistResultSet* self);
+ guint (*estimated_matches) (ZeitgeistResultSet* self);
+ ZeitgeistEvent* (*next_value) (ZeitgeistResultSet* self);
+ gboolean (*has_next) (ZeitgeistResultSet* self);
+ guint (*tell) (ZeitgeistResultSet* self);
+ void (*reset) (ZeitgeistResultSet* self);
+};
+
+struct _ZeitgeistLog {
+ ZeitgeistQueuedProxyWrapper parent_instance;
+ ZeitgeistLogPrivate * priv;
+};
+
+struct _ZeitgeistLogClass {
+ ZeitgeistQueuedProxyWrapperClass parent_class;
+};
+
+struct _ZeitgeistRemoteMonitorIface {
+ GTypeInterface parent_iface;
+ void (*notify_insert) (ZeitgeistRemoteMonitor* self, GVariant* time_range, GVariant* events, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*notify_insert_finish) (ZeitgeistRemoteMonitor* self, GAsyncResult* _res_, GError** error);
+ void (*notify_delete) (ZeitgeistRemoteMonitor* self, GVariant* time_range, guint32* event_ids, int event_ids_length1, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*notify_delete_finish) (ZeitgeistRemoteMonitor* self, GAsyncResult* _res_, GError** error);
+};
+
+struct _ZeitgeistMonitor {
+ GObject parent_instance;
+ ZeitgeistMonitorPrivate * priv;
+};
+
+struct _ZeitgeistMonitorClass {
+ GObjectClass parent_class;
+};
+
+struct _ZeitgeistSymbolInfo {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ZeitgeistSymbolInfoPrivate * priv;
+ GList* parents;
+ GList* children;
+ GList* all_children;
+ gchar* uri;
+ gchar* display_name;
+ gchar* description;
+};
+
+struct _ZeitgeistSymbolInfoClass {
+ GTypeClass parent_class;
+ void (*finalize) (ZeitgeistSymbolInfo *self);
+};
+
+struct _ZeitgeistQueuedProxyWrapperQueuedMethod {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ZeitgeistQueuedProxyWrapperQueuedMethodPrivate * priv;
+};
+
+struct _ZeitgeistQueuedProxyWrapperQueuedMethodClass {
+ GTypeClass parent_class;
+ void (*finalize) (ZeitgeistQueuedProxyWrapperQueuedMethod *self);
+};
+
+struct _ZeitgeistVersionStruct {
+ gint major;
+ gint minor;
+ gint micro;
+};
+
+struct _ZeitgeistRemoteLogIface {
+ GTypeInterface parent_iface;
+ void (*delete_events) (ZeitgeistRemoteLog* self, guint32* event_ids, int event_ids_length1, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ GVariant* (*delete_events_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+ void (*find_event_ids) (ZeitgeistRemoteLog* self, GVariant* time_range, GVariant* event_templates, guint storage_state, guint num_events, guint result_type, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ guint32* (*find_event_ids_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+ void (*find_events) (ZeitgeistRemoteLog* self, GVariant* time_range, GVariant* event_templates, guint storage_state, guint num_events, guint result_type, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ GVariant* (*find_events_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+ void (*find_related_uris) (ZeitgeistRemoteLog* self, GVariant* time_range, GVariant* event_templates, GVariant* result_event_templates, guint storage_state, guint num_events, guint result_type, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ gchar** (*find_related_uris_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+ void (*get_events) (ZeitgeistRemoteLog* self, guint32* event_ids, int event_ids_length1, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ GVariant* (*get_events_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+ void (*insert_events) (ZeitgeistRemoteLog* self, GVariant* events, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ guint32* (*insert_events_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+ void (*install_monitor) (ZeitgeistRemoteLog* self, const char* monitor_path, GVariant* time_range, GVariant* event_templates, const char* owner, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*install_monitor_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+ void (*remove_monitor) (ZeitgeistRemoteLog* self, const char* monitor_path, const char* owner, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*remove_monitor_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+ void (*quit) (ZeitgeistRemoteLog* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*quit_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+ gchar** (*get_extensions) (ZeitgeistRemoteLog* self, int* result_length1);
+ void (*get_version) (ZeitgeistRemoteLog* self, ZeitgeistVersionStruct* value);
+};
+
+struct _ZeitgeistRemoteSimpleIndexerIface {
+ GTypeInterface parent_iface;
+ void (*search) (ZeitgeistRemoteSimpleIndexer* self, const gchar* query_string, GVariant* time_range, GVariant* filter_templates, guint offset, guint count, guint result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*search_finish) (ZeitgeistRemoteSimpleIndexer* self, GAsyncResult* _res_, GVariant** events, guint* matches, GError** error);
+ void (*search_with_relevancies) (ZeitgeistRemoteSimpleIndexer* self, const gchar* query_string, GVariant* time_range, GVariant* filter_templates, guint storage_state, guint offset, guint count, guint result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*search_with_relevancies_finish) (ZeitgeistRemoteSimpleIndexer* self, GAsyncResult* _res_, GVariant** events, gdouble** relevancies, int* relevancies_length1, guint* matches, GError** error);
+};
+
+struct _ZeitgeistNetworkManagerDBusIface {
+ GTypeInterface parent_iface;
+ guint32 (*state) (ZeitgeistNetworkManagerDBus* self, GError** error);
+};
+
+struct _ZeitgeistConnmanManagerDBusIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_state) (ZeitgeistConnmanManagerDBus* self, GError** error);
+};
+
+struct _ZeitgeistSimpleResultSet {
+ GObject parent_instance;
+ ZeitgeistSimpleResultSetPrivate * priv;
+};
+
+struct _ZeitgeistSimpleResultSetClass {
+ GObjectClass parent_class;
+};
+
+
+GType zeitgeist_data_source_get_type (void) G_GNUC_CONST;
+ZeitgeistDataSource* zeitgeist_data_source_new (void);
+ZeitgeistDataSource* zeitgeist_data_source_construct (GType object_type);
+GType zeitgeist_event_get_type (void) G_GNUC_CONST;
+ZeitgeistDataSource* zeitgeist_data_source_new_full (const gchar* unique_id, const gchar* name, const gchar* description, GPtrArray* templates);
+ZeitgeistDataSource* zeitgeist_data_source_construct_full (GType object_type, const gchar* unique_id, const gchar* name, const gchar* description, GPtrArray* templates);
+GQuark zeitgeist_data_model_error_quark (void);
+ZeitgeistDataSource* zeitgeist_data_source_new_from_variant (GVariant* variant, gboolean reset_running, GError** error);
+ZeitgeistDataSource* zeitgeist_data_source_construct_from_variant (GType object_type, GVariant* variant, gboolean reset_running, GError** error);
+GVariant* zeitgeist_data_source_to_variant (ZeitgeistDataSource* self);
+const gchar* zeitgeist_data_source_get_unique_id (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_unique_id (ZeitgeistDataSource* self, const gchar* value);
+const gchar* zeitgeist_data_source_get_name (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_name (ZeitgeistDataSource* self, const gchar* value);
+const gchar* zeitgeist_data_source_get_description (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_description (ZeitgeistDataSource* self, const gchar* value);
+GPtrArray* zeitgeist_data_source_get_event_templates (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_event_templates (ZeitgeistDataSource* self, GPtrArray* value);
+gboolean zeitgeist_data_source_get_enabled (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_enabled (ZeitgeistDataSource* self, gboolean value);
+gboolean zeitgeist_data_source_get_running (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_running (ZeitgeistDataSource* self, gboolean value);
+gint64 zeitgeist_data_source_get_timestamp (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_timestamp (ZeitgeistDataSource* self, gint64 value);
+#define ZEITGEIST_DATA_SOURCES_SIG_DATASOURCES "a(sssa(" ZEITGEIST_UTILS_SIG_EVENT ")bxb)"
+GPtrArray* zeitgeist_data_sources_from_variant (GVariant* sources_variant, GError** error);
+GVariant* zeitgeist_data_sources_to_variant (GHashTable* sources);
+GType zeitgeist_remote_registry_proxy_get_type (void) G_GNUC_CONST;
+guint zeitgeist_remote_registry_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+GType zeitgeist_remote_registry_get_type (void) G_GNUC_CONST;
+void zeitgeist_remote_registry_get_data_sources (ZeitgeistRemoteRegistry* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GVariant* zeitgeist_remote_registry_get_data_sources_finish (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_registry_register_data_source (ZeitgeistRemoteRegistry* self, const gchar* unique_id, const gchar* name, const gchar* description, GVariant* event_templates, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gboolean zeitgeist_remote_registry_register_data_source_finish (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_registry_set_data_source_enabled (ZeitgeistRemoteRegistry* self, const gchar* unique_id, gboolean enabled, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_registry_set_data_source_enabled_finish (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_registry_get_data_source_from_id (ZeitgeistRemoteRegistry* self, const gchar* unique_id, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GVariant* zeitgeist_remote_registry_get_data_source_from_id_finish (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+GType zeitgeist_queued_proxy_wrapper_get_type (void) G_GNUC_CONST;
+GType zeitgeist_data_source_registry_get_type (void) G_GNUC_CONST;
+ZeitgeistDataSourceRegistry* zeitgeist_data_source_registry_new (void);
+ZeitgeistDataSourceRegistry* zeitgeist_data_source_registry_construct (GType object_type);
+void zeitgeist_data_source_registry_get_data_sources (ZeitgeistDataSourceRegistry* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GPtrArray* zeitgeist_data_source_registry_get_data_sources_finish (ZeitgeistDataSourceRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_data_source_registry_get_data_source_from_id (ZeitgeistDataSourceRegistry* self, const gchar* unique_id, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ZeitgeistDataSource* zeitgeist_data_source_registry_get_data_source_from_id_finish (ZeitgeistDataSourceRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_data_source_registry_register_data_source (ZeitgeistDataSourceRegistry* self, ZeitgeistDataSource* data_source, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gboolean zeitgeist_data_source_registry_register_data_source_finish (ZeitgeistDataSourceRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_data_source_registry_set_data_source_enabled (ZeitgeistDataSourceRegistry* self, const gchar* unique_id, gboolean enabled, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_data_source_registry_set_data_source_enabled_finish (ZeitgeistDataSourceRegistry* self, GAsyncResult* _res_, GError** error);
+extern gboolean zeitgeist_mimetypes_loaded;
+extern gboolean zeitgeist_schemes_loaded;
+extern GHashTable* zeitgeist_mimetypes;
+void zeitgeist_mime_regex_free (ZeitgeistMimeRegex* self);
+extern GSList* zeitgeist_mimetypes_regexs;
+void zeitgeist_uri_scheme_free (ZeitgeistUriScheme* self);
+extern GSList* zeitgeist_schemes;
+ZeitgeistMimeRegex* zeitgeist_mime_regex_new (const gchar* mimetype_regex, const gchar* interpretation_uri, GError** error);
+ZeitgeistMimeRegex* zeitgeist_mime_regex_new (const gchar* mimetype_regex, const gchar* interpretation_uri, GError** error);
+ZeitgeistUriScheme* zeitgeist_uri_scheme_new (const gchar* uri_scheme, const gchar* manifestation_uri);
+ZeitgeistUriScheme* zeitgeist_uri_scheme_new (const gchar* uri_scheme, const gchar* manifestation_uri);
+void zeitgeist_register_mimetype (const gchar* mimetype, const gchar* interpretation_uri);
+void zeitgeist_register_mimetype_regex (const gchar* mimetype_regex, const gchar* interpretation_uri);
+const gchar* zeitgeist_interpretation_for_mimetype (const gchar* mimetype);
+void zeitgeist_register_uri_scheme (const gchar* uri_scheme, const gchar* manifestation_type);
+const gchar* zeitgeist_manifestation_for_uri (const gchar* uri);
+void zeitgeist_ensure_mimetypes_loaded (void);
+void zeitgeist_ensure_schemes_loaded (void);
+GType zeitgeist_result_type_get_type (void) G_GNUC_CONST;
+gboolean zeitgeist_result_type_is_sort_order_asc (ZeitgeistResultType result_type);
+GType zeitgeist_relevant_result_type_get_type (void) G_GNUC_CONST;
+GType zeitgeist_storage_state_get_type (void) G_GNUC_CONST;
+gchar* zeitgeist_next_string_or_null (GVariantIter* iter);
+gboolean zeitgeist_check_field_match (const gchar* property, const gchar* template_property, gboolean is_symbol, gboolean can_wildcard);
+#define ZEITGEIST_EVENT_SIGNATURE "asaasay"
+GType zeitgeist_subject_get_type (void) G_GNUC_CONST;
+ZeitgeistSubject* zeitgeist_event_get_subject (ZeitgeistEvent* self, gint index);
+gint zeitgeist_event_num_subjects (ZeitgeistEvent* self);
+void zeitgeist_event_add_subject (ZeitgeistEvent* self, ZeitgeistSubject* subject);
+void zeitgeist_event_take_subject (ZeitgeistEvent* self, ZeitgeistSubject* subject);
+ZeitgeistEvent* zeitgeist_event_new_full (const gchar* interpretation, const gchar* manifestation, const gchar* actor, const gchar* origin, ...);
+ZeitgeistEvent* zeitgeist_event_construct_full (GType object_type, const gchar* interpretation, const gchar* manifestation, const gchar* actor, const gchar* origin, ...);
+static ZeitgeistEvent* zeitgeist_event_constructv_full (GType object_type, const gchar* interpretation, const gchar* manifestation, const gchar* actor, const gchar* origin, va_list _vala_va_list);
+ZeitgeistEvent* zeitgeist_event_new_from_variant (GVariant* event_variant, GError** error);
+ZeitgeistEvent* zeitgeist_event_construct_from_variant (GType object_type, GVariant* event_variant, GError** error);
+void zeitgeist_event_set_actor_from_info (ZeitgeistEvent* self, GAppInfo* info);
+GVariant* zeitgeist_event_to_variant (ZeitgeistEvent* self);
+void zeitgeist_event_debug_print (ZeitgeistEvent* self);
+gboolean zeitgeist_event_matches_template (ZeitgeistEvent* self, ZeitgeistEvent* template_event);
+ZeitgeistEvent* zeitgeist_event_new (void);
+ZeitgeistEvent* zeitgeist_event_construct (GType object_type);
+guint32 zeitgeist_event_get_id (ZeitgeistEvent* self);
+void zeitgeist_event_set_id (ZeitgeistEvent* self, guint32 value);
+gint64 zeitgeist_event_get_timestamp (ZeitgeistEvent* self);
+void zeitgeist_event_set_timestamp (ZeitgeistEvent* self, gint64 value);
+const gchar* zeitgeist_event_get_origin (ZeitgeistEvent* self);
+void zeitgeist_event_set_origin (ZeitgeistEvent* self, const gchar* value);
+const gchar* zeitgeist_event_get_actor (ZeitgeistEvent* self);
+void zeitgeist_event_set_actor (ZeitgeistEvent* self, const gchar* value);
+const gchar* zeitgeist_event_get_interpretation (ZeitgeistEvent* self);
+void zeitgeist_event_set_interpretation (ZeitgeistEvent* self, const gchar* value);
+const gchar* zeitgeist_event_get_manifestation (ZeitgeistEvent* self);
+void zeitgeist_event_set_manifestation (ZeitgeistEvent* self, const gchar* value);
+GPtrArray* zeitgeist_event_get_subjects (ZeitgeistEvent* self);
+void zeitgeist_event_set_subjects (ZeitgeistEvent* self, GPtrArray* value);
+GByteArray* zeitgeist_event_get_payload (ZeitgeistEvent* self);
+void zeitgeist_event_set_payload (ZeitgeistEvent* self, GByteArray* value);
+GPtrArray* zeitgeist_events_from_variant (GVariant* vevents, GError** error);
+GVariant* zeitgeist_events_to_variant (GPtrArray* events);
+GVariant* zeitgeist_events_to_variant_with_limit (GPtrArray* events, gsize limit, GError** error);
+GVariant* zeitgeist_events_get_null_event_variant (void);
+ZeitgeistSubject* zeitgeist_subject_new_full (const gchar* uri, const gchar* interpretation, const gchar* manifestation, const gchar* mimetype, const gchar* origin, const gchar* text, const gchar* storage);
+ZeitgeistSubject* zeitgeist_subject_construct_full (GType object_type, const gchar* uri, const gchar* interpretation, const gchar* manifestation, const gchar* mimetype, const gchar* origin, const gchar* text, const gchar* storage);
+ZeitgeistSubject* zeitgeist_subject_new_move_event (const gchar* source_uri, const gchar* source_origin, const gchar* destination_uri, const gchar* destination_origin, const gchar* interpretation, const gchar* manifestation, const gchar* mimetype, const gchar* text, const gchar* storage);
+ZeitgeistSubject* zeitgeist_subject_construct_move_event (GType object_type, const gchar* source_uri, const gchar* source_origin, const gchar* destination_uri, const gchar* destination_origin, const gchar* interpretation, const gchar* manifestation, const gchar* mimetype, const gchar* text, const gchar* storage);
+ZeitgeistSubject* zeitgeist_subject_new_from_variant (GVariant* subject_variant, GError** error);
+ZeitgeistSubject* zeitgeist_subject_construct_from_variant (GType object_type, GVariant* subject_variant, GError** error);
+GVariant* zeitgeist_subject_to_variant (ZeitgeistSubject* self);
+gboolean zeitgeist_subject_matches_template (ZeitgeistSubject* self, ZeitgeistSubject* template_subject);
+ZeitgeistSubject* zeitgeist_subject_new (void);
+ZeitgeistSubject* zeitgeist_subject_construct (GType object_type);
+const gchar* zeitgeist_subject_get_uri (ZeitgeistSubject* self);
+void zeitgeist_subject_set_uri (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_origin (ZeitgeistSubject* self);
+void zeitgeist_subject_set_origin (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_text (ZeitgeistSubject* self);
+void zeitgeist_subject_set_text (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_storage (ZeitgeistSubject* self);
+void zeitgeist_subject_set_storage (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_current_uri (ZeitgeistSubject* self);
+void zeitgeist_subject_set_current_uri (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_current_origin (ZeitgeistSubject* self);
+void zeitgeist_subject_set_current_origin (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_mimetype (ZeitgeistSubject* self);
+void zeitgeist_subject_set_mimetype (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_interpretation (ZeitgeistSubject* self);
+void zeitgeist_subject_set_interpretation (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_manifestation (ZeitgeistSubject* self);
+void zeitgeist_subject_set_manifestation (ZeitgeistSubject* self, const gchar* value);
+GType zeitgeist_time_range_get_type (void) G_GNUC_CONST;
+ZeitgeistTimeRange* zeitgeist_time_range_new (gint64 start_msec, gint64 end_msec);
+ZeitgeistTimeRange* zeitgeist_time_range_construct (GType object_type, gint64 start_msec, gint64 end_msec);
+ZeitgeistTimeRange* zeitgeist_time_range_new_anytime (void);
+ZeitgeistTimeRange* zeitgeist_time_range_construct_anytime (GType object_type);
+ZeitgeistTimeRange* zeitgeist_time_range_new_to_now (void);
+ZeitgeistTimeRange* zeitgeist_time_range_construct_to_now (GType object_type);
+ZeitgeistTimeRange* zeitgeist_time_range_new_from_now (void);
+ZeitgeistTimeRange* zeitgeist_time_range_construct_from_now (GType object_type);
+ZeitgeistTimeRange* zeitgeist_time_range_new_from_variant (GVariant* variant, GError** error);
+ZeitgeistTimeRange* zeitgeist_time_range_construct_from_variant (GType object_type, GVariant* variant, GError** error);
+GVariant* zeitgeist_time_range_to_variant (ZeitgeistTimeRange* self);
+ZeitgeistTimeRange* zeitgeist_time_range_intersect (ZeitgeistTimeRange* self, ZeitgeistTimeRange* time_range);
+gint64 zeitgeist_time_range_get_start (ZeitgeistTimeRange* self);
+gint64 zeitgeist_time_range_get_end (ZeitgeistTimeRange* self);
+GType zeitgeist_index_get_type (void) G_GNUC_CONST;
+ZeitgeistIndex* zeitgeist_index_new (void);
+ZeitgeistIndex* zeitgeist_index_construct (GType object_type);
+void zeitgeist_index_search (ZeitgeistIndex* self, const gchar* query, ZeitgeistTimeRange* time_range, GPtrArray* event_templates, guint32 offset, guint32 num_events, ZeitgeistResultType result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GType zeitgeist_result_set_get_type (void) G_GNUC_CONST;
+ZeitgeistResultSet* zeitgeist_index_search_finish (ZeitgeistIndex* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_index_search_with_relevancies (ZeitgeistIndex* self, const gchar* query, ZeitgeistTimeRange* time_range, GPtrArray* event_templates, ZeitgeistStorageState storage_state, guint32 offset, guint32 num_events, ZeitgeistResultType result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ZeitgeistResultSet* zeitgeist_index_search_with_relevancies_finish (ZeitgeistIndex* self, GAsyncResult* _res_, gdouble** relevancies, int* relevancies_length1, GError** error);
+GType zeitgeist_log_get_type (void) G_GNUC_CONST;
+ZeitgeistLog* zeitgeist_log_new (void);
+ZeitgeistLog* zeitgeist_log_construct (GType object_type);
+ZeitgeistLog* zeitgeist_log_get_default (void);
+void zeitgeist_log_insert_event (ZeitgeistLog* self, ZeitgeistEvent* event, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GArray* zeitgeist_log_insert_event_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_insert_events (ZeitgeistLog* self, GPtrArray* events, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GArray* zeitgeist_log_insert_events_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_insert_event_no_reply (ZeitgeistLog* self, ZeitgeistEvent* event, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_log_insert_event_no_reply_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_insert_events_no_reply (ZeitgeistLog* self, GPtrArray* events, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_log_insert_events_no_reply_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_find_events (ZeitgeistLog* self, ZeitgeistTimeRange* time_range, GPtrArray* event_templates, ZeitgeistStorageState storage_state, guint32 num_events, ZeitgeistResultType result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ZeitgeistResultSet* zeitgeist_log_find_events_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_find_event_ids (ZeitgeistLog* self, ZeitgeistTimeRange* time_range, GPtrArray* event_templates, ZeitgeistStorageState storage_state, guint32 num_events, ZeitgeistResultType result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+guint32* zeitgeist_log_find_event_ids_finish (ZeitgeistLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+void zeitgeist_log_get_events (ZeitgeistLog* self, GArray* event_ids, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ZeitgeistResultSet* zeitgeist_log_get_events_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_find_related_uris (ZeitgeistLog* self, ZeitgeistTimeRange* time_range, GPtrArray* event_templates, GPtrArray* result_event_templates, ZeitgeistStorageState storage_state, guint32 num_events, ZeitgeistResultType result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gchar** zeitgeist_log_find_related_uris_finish (ZeitgeistLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+void zeitgeist_log_delete_events (ZeitgeistLog* self, GArray* event_ids, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ZeitgeistTimeRange* zeitgeist_log_delete_events_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_quit (ZeitgeistLog* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_log_quit_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+GType zeitgeist_monitor_get_type (void) G_GNUC_CONST;
+void zeitgeist_log_install_monitor (ZeitgeistLog* self, ZeitgeistMonitor* monitor, GError** error);
+void zeitgeist_log_remove_monitor (ZeitgeistLog* self, ZeitgeistMonitor* monitor, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_log_remove_monitor_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_get_version (ZeitgeistLog* self, gint* major, gint* minor, gint* micro);
+#define ZEITGEIST_TIMESTAMP_SECOND ((gint64) 1000)
+#define ZEITGEIST_TIMESTAMP_MINUTE ((gint64) 60000)
+#define ZEITGEIST_TIMESTAMP_HOUR ((gint64) 3600000)
+#define ZEITGEIST_TIMESTAMP_DAY ((gint64) 86400000)
+#define ZEITGEIST_TIMESTAMP_WEEK ((gint64) 604800000)
+#define ZEITGEIST_TIMESTAMP_YEAR 31556952000LL
+gint64 zeitgeist_timestamp_from_timeval (GTimeVal* timeval);
+void zeitgeist_timestamp_to_timeval (gint64 timestamp, GTimeVal* result);
+gint64 zeitgeist_timestamp_from_now (void);
+gint64 zeitgeist_timestamp_from_iso8601 (const gchar* datetime);
+gchar* zeitgeist_timestamp_to_iso8601 (gint64 timestamp);
+gint64 zeitgeist_timestamp_from_date (GDate* date);
+gint64 zeitgeist_timestamp_from_dmy (GDateDay day, GDateMonth month, GDateYear year);
+void zeitgeist_timestamp_to_date (gint64 timestamp, GDate* result);
+gint64 zeitgeist_timestamp_next_midnight (gint64 timestamp);
+gint64 zeitgeist_timestamp_prev_midnight (gint64 timestamp);
+GType zeitgeist_remote_monitor_proxy_get_type (void) G_GNUC_CONST;
+guint zeitgeist_remote_monitor_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+GType zeitgeist_remote_monitor_get_type (void) G_GNUC_CONST;
+ZeitgeistMonitor* zeitgeist_monitor_new (ZeitgeistTimeRange* time_range, GPtrArray* event_templates);
+ZeitgeistMonitor* zeitgeist_monitor_construct (GType object_type, ZeitgeistTimeRange* time_range, GPtrArray* event_templates);
+GPtrArray* zeitgeist_monitor_get_templates (ZeitgeistMonitor* self);
+char* zeitgeist_monitor_get_path (ZeitgeistMonitor* self);
+ZeitgeistTimeRange* zeitgeist_monitor_get_time_range (ZeitgeistMonitor* self);
+void zeitgeist_monitor_set_time_range (ZeitgeistMonitor* self, ZeitgeistTimeRange* value);
+GPtrArray* zeitgeist_monitor_get_event_templates (ZeitgeistMonitor* self);
+void zeitgeist_monitor_set_event_templates (ZeitgeistMonitor* self, GPtrArray* value);
+#define ZEITGEIST_NCAL_ALARM "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Alarm"
+#define ZEITGEIST_NCAL_ATTACHMENT "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Attachment"
+#define ZEITGEIST_NCAL_CALENDAR "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Calendar"
+#define ZEITGEIST_NCAL_CALENDAR_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#CalendarData" \
+"Object"
+#define ZEITGEIST_NCAL_EVENT "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Event"
+#define ZEITGEIST_NCAL_FREEBUSY "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Freebusy"
+#define ZEITGEIST_NCAL_JOURNAL "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Journal"
+#define ZEITGEIST_NCAL_TIMEZONE "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Timezone"
+#define ZEITGEIST_NCAL_TODO "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Todo"
+#define ZEITGEIST_NCO_CONTACT "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#Contact"
+#define ZEITGEIST_NCO_CONTACT_GROUP "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactGroup"
+#define ZEITGEIST_NCO_CONTACT_LIST "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactList"
+#define ZEITGEIST_NCO_CONTACT_LIST_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactListDa" \
+"taObject"
+#define ZEITGEIST_NCO_ORGANIZATION_CONTACT "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#OrganizationC" \
+"ontact"
+#define ZEITGEIST_NCO_PERSON_CONTACT "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#PersonContact"
+#define ZEITGEIST_NFO_APPLICATION "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Application"
+#define ZEITGEIST_NFO_ARCHIVE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Archive"
+#define ZEITGEIST_NFO_ARCHIVE_ITEM "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#ArchiveItem"
+#define ZEITGEIST_NFO_ATTACHMENT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Attachment"
+#define ZEITGEIST_NFO_AUDIO "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Audio"
+#define ZEITGEIST_NFO_BOOKMARK "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Bookmark"
+#define ZEITGEIST_NFO_BOOKMARK_FOLDER "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#BookmarkFolde" \
+"r"
+#define ZEITGEIST_NFO_CURSOR "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Cursor"
+#define ZEITGEIST_NFO_DATA_CONTAINER "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer"
+#define ZEITGEIST_NFO_DELETED_RESOURCE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DeletedResour" \
+"ce"
+#define ZEITGEIST_NFO_DOCUMENT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Document"
+#define ZEITGEIST_NFO_EMBEDDED_FILE_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#EmbeddedFileD" \
+"ataObject"
+#define ZEITGEIST_NFO_EXECUTABLE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Executable"
+#define ZEITGEIST_NFO_FILESYSTEM "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Filesystem"
+#define ZEITGEIST_NFO_FILESYSTEM_IMAGE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FilesystemIma" \
+"ge"
+#define ZEITGEIST_NFO_FILE_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObjec" \
+"t"
+#define ZEITGEIST_NFO_FOLDER "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder"
+#define ZEITGEIST_NFO_FONT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Font"
+#define ZEITGEIST_NFO_HARD_DISK_PARTITION "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#HardDiskParti" \
+"tion"
+#define ZEITGEIST_NFO_HTML_DOCUMENT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#HtmlDocument"
+#define ZEITGEIST_NFO_ICON "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Icon"
+#define ZEITGEIST_NFO_IMAGE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Image"
+#define ZEITGEIST_NFO_MEDIA "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Media"
+#define ZEITGEIST_NFO_MEDIA_LIST "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MediaList"
+#define ZEITGEIST_NFO_MEDIA_STREAM "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MediaStream"
+#define ZEITGEIST_NFO_MIND_MAP "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MindMap"
+#define ZEITGEIST_NFO_OPERATING_SYSTEM "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#OperatingSyst" \
+"em"
+#define ZEITGEIST_NFO_PAGINATED_TEXT_DOCUMENT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PaginatedText" \
+"Document"
+#define ZEITGEIST_NFO_PLAIN_TEXT_DOCUMENT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PlainTextDocu" \
+"ment"
+#define ZEITGEIST_NFO_PRESENTATION "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Presentation"
+#define ZEITGEIST_NFO_RASTER_IMAGE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RasterImage"
+#define ZEITGEIST_NFO_REMOTE_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemoteDataObj" \
+"ect"
+#define ZEITGEIST_NFO_REMOTE_PORT_ADDRESS "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemotePortAdd" \
+"ress"
+#define ZEITGEIST_NFO_SOFTWARE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Software"
+#define ZEITGEIST_NFO_SOFTWARE_ITEM "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SoftwareItem"
+#define ZEITGEIST_NFO_SOFTWARE_SERVICE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SoftwareServi" \
+"ce"
+#define ZEITGEIST_NFO_SOURCE_CODE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SourceCode"
+#define ZEITGEIST_NFO_SPREADSHEET "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Spreadsheet"
+#define ZEITGEIST_NFO_TEXT_DOCUMENT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#TextDocument"
+#define ZEITGEIST_NFO_TRASH "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Trash"
+#define ZEITGEIST_NFO_VECTOR_IMAGE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#VectorImage"
+#define ZEITGEIST_NFO_VIDEO "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Video"
+#define ZEITGEIST_NFO_VISUAL "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Visual"
+#define ZEITGEIST_NFO_WEBSITE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Website"
+#define ZEITGEIST_NFO_WEB_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#WebDataObject"
+#define ZEITGEIST_NIE_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#DataObject"
+#define ZEITGEIST_NIE_INFORMATION_ELEMENT "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#InformationEl" \
+"ement"
+#define ZEITGEIST_NMM_MOVIE "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#Movie"
+#define ZEITGEIST_NMM_MUSIC_ALBUM "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#MusicAlbum"
+#define ZEITGEIST_NMM_MUSIC_PIECE "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#MusicPiece"
+#define ZEITGEIST_NMM_TVSERIES "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#TVSeries"
+#define ZEITGEIST_NMM_TVSHOW "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#TVShow"
+#define ZEITGEIST_NMO_EMAIL "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Email"
+#define ZEITGEIST_NMO_IMMESSAGE "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#IMMessage"
+#define ZEITGEIST_NMO_MAILBOX "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Mailbox"
+#define ZEITGEIST_NMO_MAILBOX_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#MailboxDataOb" \
+"ject"
+#define ZEITGEIST_NMO_MESSAGE "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Message"
+#define ZEITGEIST_NMO_MIME_ENTITY "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#MimeEntity"
+#define ZEITGEIST_ZG_ACCEPT_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AcceptEvent"
+#define ZEITGEIST_ZG_ACCESS_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AccessEvent"
+#define ZEITGEIST_ZG_CREATE_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#CreateEvent"
+#define ZEITGEIST_ZG_DELETE_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DeleteEvent"
+#define ZEITGEIST_ZG_DENY_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DenyEvent"
+#define ZEITGEIST_ZG_EVENT_INTERPRETATION "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#EventInterpr" \
+"etation"
+#define ZEITGEIST_ZG_EVENT_MANIFESTATION "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#EventManifes" \
+"tation"
+#define ZEITGEIST_ZG_EXPIRE_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ExpireEvent"
+#define ZEITGEIST_ZG_HEURISTIC_ACTIVITY "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#HeuristicAct" \
+"ivity"
+#define ZEITGEIST_ZG_LEAVE_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#LeaveEvent"
+#define ZEITGEIST_ZG_MODIFY_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ModifyEvent"
+#define ZEITGEIST_ZG_MOVE_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#MoveEvent"
+#define ZEITGEIST_ZG_RECEIVE_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ReceiveEvent"
+#define ZEITGEIST_ZG_SCHEDULED_ACTIVITY "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ScheduledAct" \
+"ivity"
+#define ZEITGEIST_ZG_SEND_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SendEvent"
+#define ZEITGEIST_ZG_SYSTEM_NOTIFICATION "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SystemNotifi" \
+"cation"
+#define ZEITGEIST_ZG_USER_ACTIVITY "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#UserActivity"
+#define ZEITGEIST_ZG_WORLD_ACTIVITY "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#WorldActivit" \
+"y"
+gpointer zeitgeist_symbol_info_ref (gpointer instance);
+void zeitgeist_symbol_info_unref (gpointer instance);
+GParamSpec* zeitgeist_symbol_param_spec_info (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void zeitgeist_symbol_value_set_info (GValue* value, gpointer v_object);
+void zeitgeist_symbol_value_take_info (GValue* value, gpointer v_object);
+gpointer zeitgeist_symbol_value_get_info (const GValue* value);
+GType zeitgeist_symbol_info_get_type (void) G_GNUC_CONST;
+extern GHashTable* zeitgeist_symbol_all_symbols;
+extern gboolean zeitgeist_symbol_initialized;
+const gchar* zeitgeist_symbol_get_display_name (const gchar* symbol_uri);
+const gchar* zeitgeist_symbol_get_description (const gchar* symbol_uri);
+GList* zeitgeist_symbol_get_all_parents (const gchar* symbol_uri);
+GList* zeitgeist_symbol_get_all_children (const gchar* symbol_uri);
+GList* zeitgeist_symbol_get_children (const gchar* symbol_uri);
+GList* zeitgeist_symbol_get_parents (const gchar* symbol_uri);
+gboolean zeitgeist_symbol_is_a (const gchar* symbol_uri, const gchar* parent_uri);
+void zeitgeist_symbol_initialize_symbols (void);
+void zeitgeist_symbol_info_register (const gchar* uri, const gchar* display_name, const gchar* description, gchar** parents, int parents_length1, gchar** children, int children_length1, gchar** all_children, int all_children_length1);
+void zeitgeist_queued_proxy_wrapper_proxy_acquired (ZeitgeistQueuedProxyWrapper* self, GObject* proxy);
+void zeitgeist_queued_proxy_wrapper_proxy_unavailable (ZeitgeistQueuedProxyWrapper* self, GError* err);
+void zeitgeist_queued_proxy_wrapper_process_queued_methods (ZeitgeistQueuedProxyWrapper* self);
+void zeitgeist_queued_proxy_wrapper_name_owner_changed (ZeitgeistQueuedProxyWrapper* self, GParamSpec* pspec);
+void zeitgeist_queued_proxy_wrapper_on_connection_established (ZeitgeistQueuedProxyWrapper* self);
+void zeitgeist_queued_proxy_wrapper_on_connection_lost (ZeitgeistQueuedProxyWrapper* self);
+void zeitgeist_queued_proxy_wrapper_wait_for_proxy (ZeitgeistQueuedProxyWrapper* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_queued_proxy_wrapper_wait_for_proxy_finish (ZeitgeistQueuedProxyWrapper* self, GAsyncResult* _res_, GError** error);
+ZeitgeistQueuedProxyWrapper* zeitgeist_queued_proxy_wrapper_construct (GType object_type);
+gboolean zeitgeist_queued_proxy_wrapper_get_proxy_created (ZeitgeistQueuedProxyWrapper* self);
+gboolean zeitgeist_queued_proxy_wrapper_get_is_connected (ZeitgeistQueuedProxyWrapper* self);
+gpointer zeitgeist_queued_proxy_wrapper_queued_method_ref (gpointer instance);
+void zeitgeist_queued_proxy_wrapper_queued_method_unref (gpointer instance);
+GParamSpec* zeitgeist_queued_proxy_wrapper_param_spec_queued_method (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void zeitgeist_queued_proxy_wrapper_value_set_queued_method (GValue* value, gpointer v_object);
+void zeitgeist_queued_proxy_wrapper_value_take_queued_method (GValue* value, gpointer v_object);
+gpointer zeitgeist_queued_proxy_wrapper_value_get_queued_method (const GValue* value);
+GType zeitgeist_queued_proxy_wrapper_queued_method_get_type (void) G_GNUC_CONST;
+ZeitgeistQueuedProxyWrapperQueuedMethod* zeitgeist_queued_proxy_wrapper_queued_method_new (GSourceFunc callback, void* callback_target, GDestroyNotify callback_target_destroy_notify);
+ZeitgeistQueuedProxyWrapperQueuedMethod* zeitgeist_queued_proxy_wrapper_queued_method_construct (GType object_type, GSourceFunc callback, void* callback_target, GDestroyNotify callback_target_destroy_notify);
+GSourceFunc zeitgeist_queued_proxy_wrapper_queued_method_get_queued_method (ZeitgeistQueuedProxyWrapperQueuedMethod* self, gpointer* result_target);
+GType zeitgeist_version_struct_get_type (void) G_GNUC_CONST;
+ZeitgeistVersionStruct* zeitgeist_version_struct_dup (const ZeitgeistVersionStruct* self);
+void zeitgeist_version_struct_free (ZeitgeistVersionStruct* self);
+GType zeitgeist_remote_log_proxy_get_type (void) G_GNUC_CONST;
+guint zeitgeist_remote_log_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+GType zeitgeist_remote_log_get_type (void) G_GNUC_CONST;
+void zeitgeist_remote_log_delete_events (ZeitgeistRemoteLog* self, guint32* event_ids, int event_ids_length1, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GVariant* zeitgeist_remote_log_delete_events_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_log_find_event_ids (ZeitgeistRemoteLog* self, GVariant* time_range, GVariant* event_templates, guint storage_state, guint num_events, guint result_type, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+guint32* zeitgeist_remote_log_find_event_ids_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+void zeitgeist_remote_log_find_events (ZeitgeistRemoteLog* self, GVariant* time_range, GVariant* event_templates, guint storage_state, guint num_events, guint result_type, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GVariant* zeitgeist_remote_log_find_events_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_log_find_related_uris (ZeitgeistRemoteLog* self, GVariant* time_range, GVariant* event_templates, GVariant* result_event_templates, guint storage_state, guint num_events, guint result_type, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gchar** zeitgeist_remote_log_find_related_uris_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+void zeitgeist_remote_log_get_events (ZeitgeistRemoteLog* self, guint32* event_ids, int event_ids_length1, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GVariant* zeitgeist_remote_log_get_events_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_log_insert_events (ZeitgeistRemoteLog* self, GVariant* events, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+guint32* zeitgeist_remote_log_insert_events_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+void zeitgeist_remote_log_install_monitor (ZeitgeistRemoteLog* self, const char* monitor_path, GVariant* time_range, GVariant* event_templates, const char* owner, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_log_install_monitor_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_log_remove_monitor (ZeitgeistRemoteLog* self, const char* monitor_path, const char* owner, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_log_remove_monitor_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_log_quit (ZeitgeistRemoteLog* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_log_quit_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+gchar** zeitgeist_remote_log_get_extensions (ZeitgeistRemoteLog* self, int* result_length1);
+void zeitgeist_remote_log_get_version (ZeitgeistRemoteLog* self, ZeitgeistVersionStruct* result);
+void zeitgeist_remote_monitor_notify_insert (ZeitgeistRemoteMonitor* self, GVariant* time_range, GVariant* events, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_monitor_notify_insert_finish (ZeitgeistRemoteMonitor* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_monitor_notify_delete (ZeitgeistRemoteMonitor* self, GVariant* time_range, guint32* event_ids, int event_ids_length1, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_monitor_notify_delete_finish (ZeitgeistRemoteMonitor* self, GAsyncResult* _res_, GError** error);
+GType zeitgeist_remote_simple_indexer_proxy_get_type (void) G_GNUC_CONST;
+guint zeitgeist_remote_simple_indexer_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+GType zeitgeist_remote_simple_indexer_get_type (void) G_GNUC_CONST;
+void zeitgeist_remote_simple_indexer_search (ZeitgeistRemoteSimpleIndexer* self, const gchar* query_string, GVariant* time_range, GVariant* filter_templates, guint offset, guint count, guint result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_simple_indexer_search_finish (ZeitgeistRemoteSimpleIndexer* self, GAsyncResult* _res_, GVariant** events, guint* matches, GError** error);
+void zeitgeist_remote_simple_indexer_search_with_relevancies (ZeitgeistRemoteSimpleIndexer* self, const gchar* query_string, GVariant* time_range, GVariant* filter_templates, guint storage_state, guint offset, guint count, guint result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_simple_indexer_search_with_relevancies_finish (ZeitgeistRemoteSimpleIndexer* self, GAsyncResult* _res_, GVariant** events, gdouble** relevancies, int* relevancies_length1, guint* matches, GError** error);
+GType zeitgeist_network_manager_dbus_proxy_get_type (void) G_GNUC_CONST;
+guint zeitgeist_network_manager_dbus_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+GType zeitgeist_network_manager_dbus_get_type (void) G_GNUC_CONST;
+guint32 zeitgeist_network_manager_dbus_state (ZeitgeistNetworkManagerDBus* self, GError** error);
+GType zeitgeist_connman_manager_dbus_proxy_get_type (void) G_GNUC_CONST;
+guint zeitgeist_connman_manager_dbus_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+GType zeitgeist_connman_manager_dbus_get_type (void) G_GNUC_CONST;
+gchar* zeitgeist_connman_manager_dbus_get_state (ZeitgeistConnmanManagerDBus* self, GError** error);
+guint zeitgeist_result_set_size (ZeitgeistResultSet* self);
+guint zeitgeist_result_set_estimated_matches (ZeitgeistResultSet* self);
+ZeitgeistEvent* zeitgeist_result_set_next_value (ZeitgeistResultSet* self);
+gboolean zeitgeist_result_set_has_next (ZeitgeistResultSet* self);
+guint zeitgeist_result_set_tell (ZeitgeistResultSet* self);
+void zeitgeist_result_set_reset (ZeitgeistResultSet* self);
+ZeitgeistResultSet* zeitgeist_result_set_iterator (ZeitgeistResultSet* self);
+GType zeitgeist_simple_result_set_get_type (void) G_GNUC_CONST;
+ZeitgeistSimpleResultSet* zeitgeist_simple_result_set_new (GPtrArray* events);
+ZeitgeistSimpleResultSet* zeitgeist_simple_result_set_construct (GType object_type, GPtrArray* events);
+ZeitgeistSimpleResultSet* zeitgeist_simple_result_set_new_with_num_matches (GPtrArray* events, guint matches);
+ZeitgeistSimpleResultSet* zeitgeist_simple_result_set_construct_with_num_matches (GType object_type, GPtrArray* events, guint matches);
+extern gchar* zeitgeist_utils_DATA_PATH;
+extern gchar* zeitgeist_utils_DATABASE_FILE_PATH;
+extern gchar* zeitgeist_utils_DATABASE_FILE_BACKUP_PATH;
+extern gchar* zeitgeist_utils_LOCAL_EXTENSIONS_PATH;
+#define ZEITGEIST_UTILS_DATA_FOLDER "zeitgeist"
+#define ZEITGEIST_UTILS_DATABASE_BASENAME "activity.sqlite"
+#define ZEITGEIST_UTILS_USER_EXTENSION_PATH ""
+#define ZEITGEIST_UTILS_ENGINE_DBUS_NAME "org.gnome.zeitgeist.Engine"
+#define ZEITGEIST_UTILS_ENGINE_DBUS_PATH "/org/gnome/zeitgeist/log/activity"
+#define ZEITGEIST_UTILS_SIG_EVENT "asaasay"
+#define ZEITGEIST_UTILS_MAX_DBUS_RESULT_SIZE ((gsize) ((4 * 1024) * 1024))
+#define ZEITGEIST_UTILS_CACHE_SIZE ((guint) 0)
+const gchar* zeitgeist_utils_get_data_path (void);
+gchar* zeitgeist_utils_get_default_data_path (void);
+const gchar* zeitgeist_utils_get_database_file_path (void);
+const gchar* zeitgeist_utils_get_database_file_backup_path (void);
+gchar* zeitgeist_utils_get_database_file_retire_name (void);
+const gchar* zeitgeist_utils_get_local_extensions_path (void);
+gboolean zeitgeist_utils_using_in_memory_database (void);
+void zeitgeist_utils_backup_database (GError** error);
+gboolean zeitgeist_utils_parse_negation (gchar** val);
+gboolean zeitgeist_utils_parse_noexpand (gchar** val);
+gboolean zeitgeist_utils_parse_wildcard (gchar** val);
+gboolean zeitgeist_utils_is_empty_string (const gchar* s);
+void zeitgeist_utils_assert_sig (gboolean condition, const gchar* error_message, GError** error);
+
+
+G_END_DECLS
+
+#endif
diff --git a/libzeitgeist/zeitgeist.h b/libzeitgeist/zeitgeist.h
new file mode 100644
index 00000000..8eb6341e
--- /dev/null
+++ b/libzeitgeist/zeitgeist.h
@@ -0,0 +1,851 @@
+/* zeitgeist.h generated by valac 0.18.0.72-2db4, the Vala compiler, do not modify */
+
+
+#ifndef __ZEITGEIST_H__
+#define __ZEITGEIST_H__
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <float.h>
+#include <math.h>
+
+G_BEGIN_DECLS
+
+
+#define ZEITGEIST_TYPE_DATA_SOURCE (zeitgeist_data_source_get_type ())
+#define ZEITGEIST_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_DATA_SOURCE, ZeitgeistDataSource))
+#define ZEITGEIST_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_DATA_SOURCE, ZeitgeistDataSourceClass))
+#define ZEITGEIST_IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_DATA_SOURCE))
+#define ZEITGEIST_IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_DATA_SOURCE))
+#define ZEITGEIST_DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_DATA_SOURCE, ZeitgeistDataSourceClass))
+
+typedef struct _ZeitgeistDataSource ZeitgeistDataSource;
+typedef struct _ZeitgeistDataSourceClass ZeitgeistDataSourceClass;
+typedef struct _ZeitgeistDataSourcePrivate ZeitgeistDataSourcePrivate;
+
+#define ZEITGEIST_TYPE_EVENT (zeitgeist_event_get_type ())
+#define ZEITGEIST_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_EVENT, ZeitgeistEvent))
+#define ZEITGEIST_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_EVENT, ZeitgeistEventClass))
+#define ZEITGEIST_IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_EVENT))
+#define ZEITGEIST_IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_EVENT))
+#define ZEITGEIST_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_EVENT, ZeitgeistEventClass))
+
+typedef struct _ZeitgeistEvent ZeitgeistEvent;
+typedef struct _ZeitgeistEventClass ZeitgeistEventClass;
+
+#define ZEITGEIST_TYPE_REMOTE_REGISTRY (zeitgeist_remote_registry_get_type ())
+#define ZEITGEIST_REMOTE_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_REMOTE_REGISTRY, ZeitgeistRemoteRegistry))
+#define ZEITGEIST_IS_REMOTE_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_REMOTE_REGISTRY))
+#define ZEITGEIST_REMOTE_REGISTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_REMOTE_REGISTRY, ZeitgeistRemoteRegistryIface))
+
+typedef struct _ZeitgeistRemoteRegistry ZeitgeistRemoteRegistry;
+typedef struct _ZeitgeistRemoteRegistryIface ZeitgeistRemoteRegistryIface;
+
+#define ZEITGEIST_TYPE_REMOTE_REGISTRY_PROXY (zeitgeist_remote_registry_proxy_get_type ())
+
+#define ZEITGEIST_TYPE_QUEUED_PROXY_WRAPPER (zeitgeist_queued_proxy_wrapper_get_type ())
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_QUEUED_PROXY_WRAPPER, ZeitgeistQueuedProxyWrapper))
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_QUEUED_PROXY_WRAPPER, ZeitgeistQueuedProxyWrapperClass))
+#define ZEITGEIST_IS_QUEUED_PROXY_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_QUEUED_PROXY_WRAPPER))
+#define ZEITGEIST_IS_QUEUED_PROXY_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_QUEUED_PROXY_WRAPPER))
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_QUEUED_PROXY_WRAPPER, ZeitgeistQueuedProxyWrapperClass))
+
+typedef struct _ZeitgeistQueuedProxyWrapper ZeitgeistQueuedProxyWrapper;
+typedef struct _ZeitgeistQueuedProxyWrapperClass ZeitgeistQueuedProxyWrapperClass;
+typedef struct _ZeitgeistQueuedProxyWrapperPrivate ZeitgeistQueuedProxyWrapperPrivate;
+
+#define ZEITGEIST_TYPE_DATA_SOURCE_REGISTRY (zeitgeist_data_source_registry_get_type ())
+#define ZEITGEIST_DATA_SOURCE_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_DATA_SOURCE_REGISTRY, ZeitgeistDataSourceRegistry))
+#define ZEITGEIST_DATA_SOURCE_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_DATA_SOURCE_REGISTRY, ZeitgeistDataSourceRegistryClass))
+#define ZEITGEIST_IS_DATA_SOURCE_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_DATA_SOURCE_REGISTRY))
+#define ZEITGEIST_IS_DATA_SOURCE_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_DATA_SOURCE_REGISTRY))
+#define ZEITGEIST_DATA_SOURCE_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_DATA_SOURCE_REGISTRY, ZeitgeistDataSourceRegistryClass))
+
+typedef struct _ZeitgeistDataSourceRegistry ZeitgeistDataSourceRegistry;
+typedef struct _ZeitgeistDataSourceRegistryClass ZeitgeistDataSourceRegistryClass;
+typedef struct _ZeitgeistDataSourceRegistryPrivate ZeitgeistDataSourceRegistryPrivate;
+
+#define ZEITGEIST_TYPE_RESULT_TYPE (zeitgeist_result_type_get_type ())
+
+#define ZEITGEIST_TYPE_RELEVANT_RESULT_TYPE (zeitgeist_relevant_result_type_get_type ())
+
+#define ZEITGEIST_TYPE_STORAGE_STATE (zeitgeist_storage_state_get_type ())
+typedef struct _ZeitgeistEventPrivate ZeitgeistEventPrivate;
+
+#define ZEITGEIST_TYPE_SUBJECT (zeitgeist_subject_get_type ())
+#define ZEITGEIST_SUBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_SUBJECT, ZeitgeistSubject))
+#define ZEITGEIST_SUBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_SUBJECT, ZeitgeistSubjectClass))
+#define ZEITGEIST_IS_SUBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_SUBJECT))
+#define ZEITGEIST_IS_SUBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_SUBJECT))
+#define ZEITGEIST_SUBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_SUBJECT, ZeitgeistSubjectClass))
+
+typedef struct _ZeitgeistSubject ZeitgeistSubject;
+typedef struct _ZeitgeistSubjectClass ZeitgeistSubjectClass;
+typedef struct _ZeitgeistSubjectPrivate ZeitgeistSubjectPrivate;
+
+#define ZEITGEIST_TYPE_TIME_RANGE (zeitgeist_time_range_get_type ())
+#define ZEITGEIST_TIME_RANGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_TIME_RANGE, ZeitgeistTimeRange))
+#define ZEITGEIST_TIME_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_TIME_RANGE, ZeitgeistTimeRangeClass))
+#define ZEITGEIST_IS_TIME_RANGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_TIME_RANGE))
+#define ZEITGEIST_IS_TIME_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_TIME_RANGE))
+#define ZEITGEIST_TIME_RANGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_TIME_RANGE, ZeitgeistTimeRangeClass))
+
+typedef struct _ZeitgeistTimeRange ZeitgeistTimeRange;
+typedef struct _ZeitgeistTimeRangeClass ZeitgeistTimeRangeClass;
+typedef struct _ZeitgeistTimeRangePrivate ZeitgeistTimeRangePrivate;
+
+#define ZEITGEIST_TYPE_INDEX (zeitgeist_index_get_type ())
+#define ZEITGEIST_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_INDEX, ZeitgeistIndex))
+#define ZEITGEIST_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_INDEX, ZeitgeistIndexClass))
+#define ZEITGEIST_IS_INDEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_INDEX))
+#define ZEITGEIST_IS_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_INDEX))
+#define ZEITGEIST_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_INDEX, ZeitgeistIndexClass))
+
+typedef struct _ZeitgeistIndex ZeitgeistIndex;
+typedef struct _ZeitgeistIndexClass ZeitgeistIndexClass;
+typedef struct _ZeitgeistIndexPrivate ZeitgeistIndexPrivate;
+
+#define ZEITGEIST_TYPE_RESULT_SET (zeitgeist_result_set_get_type ())
+#define ZEITGEIST_RESULT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_RESULT_SET, ZeitgeistResultSet))
+#define ZEITGEIST_IS_RESULT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_RESULT_SET))
+#define ZEITGEIST_RESULT_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_RESULT_SET, ZeitgeistResultSetIface))
+
+typedef struct _ZeitgeistResultSet ZeitgeistResultSet;
+typedef struct _ZeitgeistResultSetIface ZeitgeistResultSetIface;
+
+#define ZEITGEIST_TYPE_LOG (zeitgeist_log_get_type ())
+#define ZEITGEIST_LOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_LOG, ZeitgeistLog))
+#define ZEITGEIST_LOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_LOG, ZeitgeistLogClass))
+#define ZEITGEIST_IS_LOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_LOG))
+#define ZEITGEIST_IS_LOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_LOG))
+#define ZEITGEIST_LOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_LOG, ZeitgeistLogClass))
+
+typedef struct _ZeitgeistLog ZeitgeistLog;
+typedef struct _ZeitgeistLogClass ZeitgeistLogClass;
+typedef struct _ZeitgeistLogPrivate ZeitgeistLogPrivate;
+
+#define ZEITGEIST_TYPE_MONITOR (zeitgeist_monitor_get_type ())
+#define ZEITGEIST_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_MONITOR, ZeitgeistMonitor))
+#define ZEITGEIST_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_TYPE_MONITOR, ZeitgeistMonitorClass))
+#define ZEITGEIST_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_MONITOR))
+#define ZEITGEIST_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_TYPE_MONITOR))
+#define ZEITGEIST_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_TYPE_MONITOR, ZeitgeistMonitorClass))
+
+typedef struct _ZeitgeistMonitor ZeitgeistMonitor;
+typedef struct _ZeitgeistMonitorClass ZeitgeistMonitorClass;
+
+#define ZEITGEIST_TYPE_REMOTE_MONITOR (zeitgeist_remote_monitor_get_type ())
+#define ZEITGEIST_REMOTE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_REMOTE_MONITOR, ZeitgeistRemoteMonitor))
+#define ZEITGEIST_IS_REMOTE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_REMOTE_MONITOR))
+#define ZEITGEIST_REMOTE_MONITOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_REMOTE_MONITOR, ZeitgeistRemoteMonitorIface))
+
+typedef struct _ZeitgeistRemoteMonitor ZeitgeistRemoteMonitor;
+typedef struct _ZeitgeistRemoteMonitorIface ZeitgeistRemoteMonitorIface;
+
+#define ZEITGEIST_TYPE_REMOTE_MONITOR_PROXY (zeitgeist_remote_monitor_proxy_get_type ())
+typedef struct _ZeitgeistMonitorPrivate ZeitgeistMonitorPrivate;
+
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_TYPE_QUEUED_METHOD (zeitgeist_queued_proxy_wrapper_queued_method_get_type ())
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_QUEUED_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_QUEUED_PROXY_WRAPPER_TYPE_QUEUED_METHOD, ZeitgeistQueuedProxyWrapperQueuedMethod))
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_QUEUED_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZEITGEIST_QUEUED_PROXY_WRAPPER_TYPE_QUEUED_METHOD, ZeitgeistQueuedProxyWrapperQueuedMethodClass))
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_IS_QUEUED_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_QUEUED_PROXY_WRAPPER_TYPE_QUEUED_METHOD))
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_IS_QUEUED_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZEITGEIST_QUEUED_PROXY_WRAPPER_TYPE_QUEUED_METHOD))
+#define ZEITGEIST_QUEUED_PROXY_WRAPPER_QUEUED_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZEITGEIST_QUEUED_PROXY_WRAPPER_TYPE_QUEUED_METHOD, ZeitgeistQueuedProxyWrapperQueuedMethodClass))
+
+typedef struct _ZeitgeistQueuedProxyWrapperQueuedMethod ZeitgeistQueuedProxyWrapperQueuedMethod;
+typedef struct _ZeitgeistQueuedProxyWrapperQueuedMethodClass ZeitgeistQueuedProxyWrapperQueuedMethodClass;
+typedef struct _ZeitgeistQueuedProxyWrapperQueuedMethodPrivate ZeitgeistQueuedProxyWrapperQueuedMethodPrivate;
+
+#define ZEITGEIST_TYPE_VERSION_STRUCT (zeitgeist_version_struct_get_type ())
+typedef struct _ZeitgeistVersionStruct ZeitgeistVersionStruct;
+
+#define ZEITGEIST_TYPE_REMOTE_LOG (zeitgeist_remote_log_get_type ())
+#define ZEITGEIST_REMOTE_LOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_REMOTE_LOG, ZeitgeistRemoteLog))
+#define ZEITGEIST_IS_REMOTE_LOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_REMOTE_LOG))
+#define ZEITGEIST_REMOTE_LOG_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_REMOTE_LOG, ZeitgeistRemoteLogIface))
+
+typedef struct _ZeitgeistRemoteLog ZeitgeistRemoteLog;
+typedef struct _ZeitgeistRemoteLogIface ZeitgeistRemoteLogIface;
+
+#define ZEITGEIST_TYPE_REMOTE_LOG_PROXY (zeitgeist_remote_log_proxy_get_type ())
+
+#define ZEITGEIST_TYPE_REMOTE_SIMPLE_INDEXER (zeitgeist_remote_simple_indexer_get_type ())
+#define ZEITGEIST_REMOTE_SIMPLE_INDEXER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_REMOTE_SIMPLE_INDEXER, ZeitgeistRemoteSimpleIndexer))
+#define ZEITGEIST_IS_REMOTE_SIMPLE_INDEXER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_REMOTE_SIMPLE_INDEXER))
+#define ZEITGEIST_REMOTE_SIMPLE_INDEXER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_REMOTE_SIMPLE_INDEXER, ZeitgeistRemoteSimpleIndexerIface))
+
+typedef struct _ZeitgeistRemoteSimpleIndexer ZeitgeistRemoteSimpleIndexer;
+typedef struct _ZeitgeistRemoteSimpleIndexerIface ZeitgeistRemoteSimpleIndexerIface;
+
+#define ZEITGEIST_TYPE_REMOTE_SIMPLE_INDEXER_PROXY (zeitgeist_remote_simple_indexer_proxy_get_type ())
+
+#define ZEITGEIST_TYPE_NETWORK_MANAGER_DBUS (zeitgeist_network_manager_dbus_get_type ())
+#define ZEITGEIST_NETWORK_MANAGER_DBUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_NETWORK_MANAGER_DBUS, ZeitgeistNetworkManagerDBus))
+#define ZEITGEIST_IS_NETWORK_MANAGER_DBUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_NETWORK_MANAGER_DBUS))
+#define ZEITGEIST_NETWORK_MANAGER_DBUS_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_NETWORK_MANAGER_DBUS, ZeitgeistNetworkManagerDBusIface))
+
+typedef struct _ZeitgeistNetworkManagerDBus ZeitgeistNetworkManagerDBus;
+typedef struct _ZeitgeistNetworkManagerDBusIface ZeitgeistNetworkManagerDBusIface;
+
+#define ZEITGEIST_TYPE_NETWORK_MANAGER_DBUS_PROXY (zeitgeist_network_manager_dbus_proxy_get_type ())
+
+#define ZEITGEIST_TYPE_CONNMAN_MANAGER_DBUS (zeitgeist_connman_manager_dbus_get_type ())
+#define ZEITGEIST_CONNMAN_MANAGER_DBUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZEITGEIST_TYPE_CONNMAN_MANAGER_DBUS, ZeitgeistConnmanManagerDBus))
+#define ZEITGEIST_IS_CONNMAN_MANAGER_DBUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZEITGEIST_TYPE_CONNMAN_MANAGER_DBUS))
+#define ZEITGEIST_CONNMAN_MANAGER_DBUS_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZEITGEIST_TYPE_CONNMAN_MANAGER_DBUS, ZeitgeistConnmanManagerDBusIface))
+
+typedef struct _ZeitgeistConnmanManagerDBus ZeitgeistConnmanManagerDBus;
+typedef struct _ZeitgeistConnmanManagerDBusIface ZeitgeistConnmanManagerDBusIface;
+
+#define ZEITGEIST_TYPE_CONNMAN_MANAGER_DBUS_PROXY (zeitgeist_connman_manager_dbus_proxy_get_type ())
+
+struct _ZeitgeistDataSource {
+ GObject parent_instance;
+ ZeitgeistDataSourcePrivate * priv;
+};
+
+struct _ZeitgeistDataSourceClass {
+ GObjectClass parent_class;
+};
+
+typedef enum {
+ ZEITGEIST_DATA_MODEL_ERROR_INVALID_SIGNATURE,
+ ZEITGEIST_DATA_MODEL_ERROR_NULL_EVENT,
+ ZEITGEIST_DATA_MODEL_ERROR_TOO_MANY_RESULTS
+} ZeitgeistDataModelError;
+#define ZEITGEIST_DATA_MODEL_ERROR zeitgeist_data_model_error_quark ()
+struct _ZeitgeistRemoteRegistryIface {
+ GTypeInterface parent_iface;
+ void (*get_data_sources) (ZeitgeistRemoteRegistry* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ GVariant* (*get_data_sources_finish) (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+ void (*register_data_source) (ZeitgeistRemoteRegistry* self, const gchar* unique_id, const gchar* name, const gchar* description, GVariant* event_templates, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ gboolean (*register_data_source_finish) (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+ void (*set_data_source_enabled) (ZeitgeistRemoteRegistry* self, const gchar* unique_id, gboolean enabled, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*set_data_source_enabled_finish) (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+ void (*get_data_source_from_id) (ZeitgeistRemoteRegistry* self, const gchar* unique_id, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ GVariant* (*get_data_source_from_id_finish) (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+};
+
+struct _ZeitgeistQueuedProxyWrapper {
+ GObject parent_instance;
+ ZeitgeistQueuedProxyWrapperPrivate * priv;
+};
+
+struct _ZeitgeistQueuedProxyWrapperClass {
+ GObjectClass parent_class;
+ void (*on_connection_established) (ZeitgeistQueuedProxyWrapper* self);
+ void (*on_connection_lost) (ZeitgeistQueuedProxyWrapper* self);
+};
+
+struct _ZeitgeistDataSourceRegistry {
+ ZeitgeistQueuedProxyWrapper parent_instance;
+ ZeitgeistDataSourceRegistryPrivate * priv;
+};
+
+struct _ZeitgeistDataSourceRegistryClass {
+ ZeitgeistQueuedProxyWrapperClass parent_class;
+};
+
+typedef enum {
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS = 0,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_EVENTS = 1,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_SUBJECTS = 2,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_SUBJECTS = 3,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_SUBJECTS = 4,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_SUBJECTS = 5,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_ACTOR = 6,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_ACTOR = 7,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_ACTOR = 8,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_ACTOR = 9,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_ORIGIN = 10,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_ORIGIN = 11,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_ORIGIN = 12,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_ORIGIN = 13,
+ ZEITGEIST_RESULT_TYPE_OLDEST_ACTOR = 14,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_SUBJECT_INTERPRETATION = 15,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_SUBJECT_INTERPRETATION = 16,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_SUBJECT_INTERPRETATION = 17,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_SUBJECT_INTERPRETATION = 18,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_MIMETYPE = 19,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_MIMETYPE = 20,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_MIMETYPE = 21,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_MIMETYPE = 22,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_CURRENT_URI = 23,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_CURRENT_URI = 24,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_CURRENT_URI = 25,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_CURRENT_URI = 26,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENT_ORIGIN = 27,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_EVENT_ORIGIN = 28,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_EVENT_ORIGIN = 29,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_EVENT_ORIGIN = 30,
+ ZEITGEIST_RESULT_TYPE_MOST_RECENT_CURRENT_ORIGIN = 31,
+ ZEITGEIST_RESULT_TYPE_LEAST_RECENT_CURRENT_ORIGIN = 32,
+ ZEITGEIST_RESULT_TYPE_MOST_POPULAR_CURRENT_ORIGIN = 33,
+ ZEITGEIST_RESULT_TYPE_LEAST_POPULAR_CURRENT_ORIGIN = 34,
+ ZEITGEIST_RESULT_TYPE_RELEVANCY = 100
+} ZeitgeistResultType;
+
+typedef enum {
+ ZEITGEIST_RELEVANT_RESULT_TYPE_RECENT = 0,
+ ZEITGEIST_RELEVANT_RESULT_TYPE_RELATED = 1
+} ZeitgeistRelevantResultType;
+
+typedef enum {
+ ZEITGEIST_STORAGE_STATE_NOT_AVAILABLE = 0,
+ ZEITGEIST_STORAGE_STATE_AVAILABLE = 1,
+ ZEITGEIST_STORAGE_STATE_ANY = 2
+} ZeitgeistStorageState;
+
+struct _ZeitgeistEvent {
+ GObject parent_instance;
+ ZeitgeistEventPrivate * priv;
+};
+
+struct _ZeitgeistEventClass {
+ GObjectClass parent_class;
+};
+
+struct _ZeitgeistSubject {
+ GObject parent_instance;
+ ZeitgeistSubjectPrivate * priv;
+};
+
+struct _ZeitgeistSubjectClass {
+ GObjectClass parent_class;
+};
+
+struct _ZeitgeistTimeRange {
+ GObject parent_instance;
+ ZeitgeistTimeRangePrivate * priv;
+};
+
+struct _ZeitgeistTimeRangeClass {
+ GObjectClass parent_class;
+};
+
+struct _ZeitgeistIndex {
+ ZeitgeistQueuedProxyWrapper parent_instance;
+ ZeitgeistIndexPrivate * priv;
+};
+
+struct _ZeitgeistIndexClass {
+ ZeitgeistQueuedProxyWrapperClass parent_class;
+};
+
+struct _ZeitgeistResultSetIface {
+ GTypeInterface parent_iface;
+ guint (*size) (ZeitgeistResultSet* self);
+ guint (*estimated_matches) (ZeitgeistResultSet* self);
+ ZeitgeistEvent* (*next_value) (ZeitgeistResultSet* self);
+ gboolean (*has_next) (ZeitgeistResultSet* self);
+ guint (*tell) (ZeitgeistResultSet* self);
+ void (*reset) (ZeitgeistResultSet* self);
+};
+
+struct _ZeitgeistLog {
+ ZeitgeistQueuedProxyWrapper parent_instance;
+ ZeitgeistLogPrivate * priv;
+};
+
+struct _ZeitgeistLogClass {
+ ZeitgeistQueuedProxyWrapperClass parent_class;
+};
+
+struct _ZeitgeistRemoteMonitorIface {
+ GTypeInterface parent_iface;
+ void (*notify_insert) (ZeitgeistRemoteMonitor* self, GVariant* time_range, GVariant* events, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*notify_insert_finish) (ZeitgeistRemoteMonitor* self, GAsyncResult* _res_, GError** error);
+ void (*notify_delete) (ZeitgeistRemoteMonitor* self, GVariant* time_range, guint32* event_ids, int event_ids_length1, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*notify_delete_finish) (ZeitgeistRemoteMonitor* self, GAsyncResult* _res_, GError** error);
+};
+
+struct _ZeitgeistMonitor {
+ GObject parent_instance;
+ ZeitgeistMonitorPrivate * priv;
+};
+
+struct _ZeitgeistMonitorClass {
+ GObjectClass parent_class;
+};
+
+struct _ZeitgeistQueuedProxyWrapperQueuedMethod {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ZeitgeistQueuedProxyWrapperQueuedMethodPrivate * priv;
+};
+
+struct _ZeitgeistQueuedProxyWrapperQueuedMethodClass {
+ GTypeClass parent_class;
+ void (*finalize) (ZeitgeistQueuedProxyWrapperQueuedMethod *self);
+};
+
+struct _ZeitgeistVersionStruct {
+ gint major;
+ gint minor;
+ gint micro;
+};
+
+struct _ZeitgeistRemoteLogIface {
+ GTypeInterface parent_iface;
+ void (*delete_events) (ZeitgeistRemoteLog* self, guint32* event_ids, int event_ids_length1, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ GVariant* (*delete_events_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+ void (*find_event_ids) (ZeitgeistRemoteLog* self, GVariant* time_range, GVariant* event_templates, guint storage_state, guint num_events, guint result_type, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ guint32* (*find_event_ids_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+ void (*find_events) (ZeitgeistRemoteLog* self, GVariant* time_range, GVariant* event_templates, guint storage_state, guint num_events, guint result_type, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ GVariant* (*find_events_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+ void (*find_related_uris) (ZeitgeistRemoteLog* self, GVariant* time_range, GVariant* event_templates, GVariant* result_event_templates, guint storage_state, guint num_events, guint result_type, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ gchar** (*find_related_uris_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+ void (*get_events) (ZeitgeistRemoteLog* self, guint32* event_ids, int event_ids_length1, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ GVariant* (*get_events_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+ void (*insert_events) (ZeitgeistRemoteLog* self, GVariant* events, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ guint32* (*insert_events_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+ void (*install_monitor) (ZeitgeistRemoteLog* self, const char* monitor_path, GVariant* time_range, GVariant* event_templates, const char* owner, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*install_monitor_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+ void (*remove_monitor) (ZeitgeistRemoteLog* self, const char* monitor_path, const char* owner, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*remove_monitor_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+ void (*quit) (ZeitgeistRemoteLog* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*quit_finish) (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+ gchar** (*get_extensions) (ZeitgeistRemoteLog* self, int* result_length1);
+ void (*get_version) (ZeitgeistRemoteLog* self, ZeitgeistVersionStruct* value);
+};
+
+struct _ZeitgeistRemoteSimpleIndexerIface {
+ GTypeInterface parent_iface;
+ void (*search) (ZeitgeistRemoteSimpleIndexer* self, const gchar* query_string, GVariant* time_range, GVariant* filter_templates, guint offset, guint count, guint result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*search_finish) (ZeitgeistRemoteSimpleIndexer* self, GAsyncResult* _res_, GVariant** events, guint* matches, GError** error);
+ void (*search_with_relevancies) (ZeitgeistRemoteSimpleIndexer* self, const gchar* query_string, GVariant* time_range, GVariant* filter_templates, guint storage_state, guint offset, guint count, guint result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ void (*search_with_relevancies_finish) (ZeitgeistRemoteSimpleIndexer* self, GAsyncResult* _res_, GVariant** events, gdouble** relevancies, int* relevancies_length1, guint* matches, GError** error);
+};
+
+struct _ZeitgeistNetworkManagerDBusIface {
+ GTypeInterface parent_iface;
+ guint32 (*state) (ZeitgeistNetworkManagerDBus* self, GError** error);
+};
+
+struct _ZeitgeistConnmanManagerDBusIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_state) (ZeitgeistConnmanManagerDBus* self, GError** error);
+};
+
+
+GType zeitgeist_data_source_get_type (void) G_GNUC_CONST;
+ZeitgeistDataSource* zeitgeist_data_source_new (void);
+ZeitgeistDataSource* zeitgeist_data_source_construct (GType object_type);
+GType zeitgeist_event_get_type (void) G_GNUC_CONST;
+ZeitgeistDataSource* zeitgeist_data_source_new_full (const gchar* unique_id, const gchar* name, const gchar* description, GPtrArray* templates);
+ZeitgeistDataSource* zeitgeist_data_source_construct_full (GType object_type, const gchar* unique_id, const gchar* name, const gchar* description, GPtrArray* templates);
+GQuark zeitgeist_data_model_error_quark (void);
+ZeitgeistDataSource* zeitgeist_data_source_new_from_variant (GVariant* variant, gboolean reset_running, GError** error);
+ZeitgeistDataSource* zeitgeist_data_source_construct_from_variant (GType object_type, GVariant* variant, gboolean reset_running, GError** error);
+GVariant* zeitgeist_data_source_to_variant (ZeitgeistDataSource* self);
+const gchar* zeitgeist_data_source_get_unique_id (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_unique_id (ZeitgeistDataSource* self, const gchar* value);
+const gchar* zeitgeist_data_source_get_name (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_name (ZeitgeistDataSource* self, const gchar* value);
+const gchar* zeitgeist_data_source_get_description (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_description (ZeitgeistDataSource* self, const gchar* value);
+GPtrArray* zeitgeist_data_source_get_event_templates (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_event_templates (ZeitgeistDataSource* self, GPtrArray* value);
+gboolean zeitgeist_data_source_get_enabled (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_enabled (ZeitgeistDataSource* self, gboolean value);
+gboolean zeitgeist_data_source_get_running (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_running (ZeitgeistDataSource* self, gboolean value);
+gint64 zeitgeist_data_source_get_timestamp (ZeitgeistDataSource* self);
+void zeitgeist_data_source_set_timestamp (ZeitgeistDataSource* self, gint64 value);
+#define ZEITGEIST_DATA_SOURCES_SIG_DATASOURCES "a(sssa(" ZEITGEIST_UTILS_SIG_EVENT ")bxb)"
+GPtrArray* zeitgeist_data_sources_from_variant (GVariant* sources_variant, GError** error);
+GVariant* zeitgeist_data_sources_to_variant (GHashTable* sources);
+GType zeitgeist_remote_registry_proxy_get_type (void) G_GNUC_CONST;
+guint zeitgeist_remote_registry_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+GType zeitgeist_remote_registry_get_type (void) G_GNUC_CONST;
+void zeitgeist_remote_registry_get_data_sources (ZeitgeistRemoteRegistry* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GVariant* zeitgeist_remote_registry_get_data_sources_finish (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_registry_register_data_source (ZeitgeistRemoteRegistry* self, const gchar* unique_id, const gchar* name, const gchar* description, GVariant* event_templates, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gboolean zeitgeist_remote_registry_register_data_source_finish (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_registry_set_data_source_enabled (ZeitgeistRemoteRegistry* self, const gchar* unique_id, gboolean enabled, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_registry_set_data_source_enabled_finish (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_registry_get_data_source_from_id (ZeitgeistRemoteRegistry* self, const gchar* unique_id, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GVariant* zeitgeist_remote_registry_get_data_source_from_id_finish (ZeitgeistRemoteRegistry* self, GAsyncResult* _res_, GError** error);
+GType zeitgeist_queued_proxy_wrapper_get_type (void) G_GNUC_CONST;
+GType zeitgeist_data_source_registry_get_type (void) G_GNUC_CONST;
+ZeitgeistDataSourceRegistry* zeitgeist_data_source_registry_new (void);
+ZeitgeistDataSourceRegistry* zeitgeist_data_source_registry_construct (GType object_type);
+void zeitgeist_data_source_registry_get_data_sources (ZeitgeistDataSourceRegistry* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GPtrArray* zeitgeist_data_source_registry_get_data_sources_finish (ZeitgeistDataSourceRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_data_source_registry_get_data_source_from_id (ZeitgeistDataSourceRegistry* self, const gchar* unique_id, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ZeitgeistDataSource* zeitgeist_data_source_registry_get_data_source_from_id_finish (ZeitgeistDataSourceRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_data_source_registry_register_data_source (ZeitgeistDataSourceRegistry* self, ZeitgeistDataSource* data_source, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gboolean zeitgeist_data_source_registry_register_data_source_finish (ZeitgeistDataSourceRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_data_source_registry_set_data_source_enabled (ZeitgeistDataSourceRegistry* self, const gchar* unique_id, gboolean enabled, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_data_source_registry_set_data_source_enabled_finish (ZeitgeistDataSourceRegistry* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_register_mimetype (const gchar* mimetype, const gchar* interpretation_uri);
+void zeitgeist_register_mimetype_regex (const gchar* mimetype_regex, const gchar* interpretation_uri);
+const gchar* zeitgeist_interpretation_for_mimetype (const gchar* mimetype);
+void zeitgeist_register_uri_scheme (const gchar* uri_scheme, const gchar* manifestation_type);
+const gchar* zeitgeist_manifestation_for_uri (const gchar* uri);
+GType zeitgeist_result_type_get_type (void) G_GNUC_CONST;
+gboolean zeitgeist_result_type_is_sort_order_asc (ZeitgeistResultType result_type);
+GType zeitgeist_relevant_result_type_get_type (void) G_GNUC_CONST;
+GType zeitgeist_storage_state_get_type (void) G_GNUC_CONST;
+#define ZEITGEIST_EVENT_SIGNATURE "asaasay"
+GType zeitgeist_subject_get_type (void) G_GNUC_CONST;
+ZeitgeistSubject* zeitgeist_event_get_subject (ZeitgeistEvent* self, gint index);
+gint zeitgeist_event_num_subjects (ZeitgeistEvent* self);
+void zeitgeist_event_add_subject (ZeitgeistEvent* self, ZeitgeistSubject* subject);
+void zeitgeist_event_take_subject (ZeitgeistEvent* self, ZeitgeistSubject* subject);
+ZeitgeistEvent* zeitgeist_event_new_full (const gchar* interpretation, const gchar* manifestation, const gchar* actor, const gchar* origin, ...);
+ZeitgeistEvent* zeitgeist_event_construct_full (GType object_type, const gchar* interpretation, const gchar* manifestation, const gchar* actor, const gchar* origin, ...);
+static ZeitgeistEvent* zeitgeist_event_constructv_full (GType object_type, const gchar* interpretation, const gchar* manifestation, const gchar* actor, const gchar* origin, va_list _vala_va_list);
+ZeitgeistEvent* zeitgeist_event_new_from_variant (GVariant* event_variant, GError** error);
+ZeitgeistEvent* zeitgeist_event_construct_from_variant (GType object_type, GVariant* event_variant, GError** error);
+void zeitgeist_event_set_actor_from_info (ZeitgeistEvent* self, GAppInfo* info);
+GVariant* zeitgeist_event_to_variant (ZeitgeistEvent* self);
+void zeitgeist_event_debug_print (ZeitgeistEvent* self);
+gboolean zeitgeist_event_matches_template (ZeitgeistEvent* self, ZeitgeistEvent* template_event);
+ZeitgeistEvent* zeitgeist_event_new (void);
+ZeitgeistEvent* zeitgeist_event_construct (GType object_type);
+guint32 zeitgeist_event_get_id (ZeitgeistEvent* self);
+void zeitgeist_event_set_id (ZeitgeistEvent* self, guint32 value);
+gint64 zeitgeist_event_get_timestamp (ZeitgeistEvent* self);
+void zeitgeist_event_set_timestamp (ZeitgeistEvent* self, gint64 value);
+const gchar* zeitgeist_event_get_origin (ZeitgeistEvent* self);
+void zeitgeist_event_set_origin (ZeitgeistEvent* self, const gchar* value);
+const gchar* zeitgeist_event_get_actor (ZeitgeistEvent* self);
+void zeitgeist_event_set_actor (ZeitgeistEvent* self, const gchar* value);
+const gchar* zeitgeist_event_get_interpretation (ZeitgeistEvent* self);
+void zeitgeist_event_set_interpretation (ZeitgeistEvent* self, const gchar* value);
+const gchar* zeitgeist_event_get_manifestation (ZeitgeistEvent* self);
+void zeitgeist_event_set_manifestation (ZeitgeistEvent* self, const gchar* value);
+GPtrArray* zeitgeist_event_get_subjects (ZeitgeistEvent* self);
+void zeitgeist_event_set_subjects (ZeitgeistEvent* self, GPtrArray* value);
+GByteArray* zeitgeist_event_get_payload (ZeitgeistEvent* self);
+void zeitgeist_event_set_payload (ZeitgeistEvent* self, GByteArray* value);
+GPtrArray* zeitgeist_events_from_variant (GVariant* vevents, GError** error);
+GVariant* zeitgeist_events_to_variant (GPtrArray* events);
+GVariant* zeitgeist_events_to_variant_with_limit (GPtrArray* events, gsize limit, GError** error);
+ZeitgeistSubject* zeitgeist_subject_new_full (const gchar* uri, const gchar* interpretation, const gchar* manifestation, const gchar* mimetype, const gchar* origin, const gchar* text, const gchar* storage);
+ZeitgeistSubject* zeitgeist_subject_construct_full (GType object_type, const gchar* uri, const gchar* interpretation, const gchar* manifestation, const gchar* mimetype, const gchar* origin, const gchar* text, const gchar* storage);
+ZeitgeistSubject* zeitgeist_subject_new_move_event (const gchar* source_uri, const gchar* source_origin, const gchar* destination_uri, const gchar* destination_origin, const gchar* interpretation, const gchar* manifestation, const gchar* mimetype, const gchar* text, const gchar* storage);
+ZeitgeistSubject* zeitgeist_subject_construct_move_event (GType object_type, const gchar* source_uri, const gchar* source_origin, const gchar* destination_uri, const gchar* destination_origin, const gchar* interpretation, const gchar* manifestation, const gchar* mimetype, const gchar* text, const gchar* storage);
+ZeitgeistSubject* zeitgeist_subject_new_from_variant (GVariant* subject_variant, GError** error);
+ZeitgeistSubject* zeitgeist_subject_construct_from_variant (GType object_type, GVariant* subject_variant, GError** error);
+GVariant* zeitgeist_subject_to_variant (ZeitgeistSubject* self);
+gboolean zeitgeist_subject_matches_template (ZeitgeistSubject* self, ZeitgeistSubject* template_subject);
+ZeitgeistSubject* zeitgeist_subject_new (void);
+ZeitgeistSubject* zeitgeist_subject_construct (GType object_type);
+const gchar* zeitgeist_subject_get_uri (ZeitgeistSubject* self);
+void zeitgeist_subject_set_uri (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_origin (ZeitgeistSubject* self);
+void zeitgeist_subject_set_origin (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_text (ZeitgeistSubject* self);
+void zeitgeist_subject_set_text (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_storage (ZeitgeistSubject* self);
+void zeitgeist_subject_set_storage (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_current_uri (ZeitgeistSubject* self);
+void zeitgeist_subject_set_current_uri (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_current_origin (ZeitgeistSubject* self);
+void zeitgeist_subject_set_current_origin (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_mimetype (ZeitgeistSubject* self);
+void zeitgeist_subject_set_mimetype (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_interpretation (ZeitgeistSubject* self);
+void zeitgeist_subject_set_interpretation (ZeitgeistSubject* self, const gchar* value);
+const gchar* zeitgeist_subject_get_manifestation (ZeitgeistSubject* self);
+void zeitgeist_subject_set_manifestation (ZeitgeistSubject* self, const gchar* value);
+GType zeitgeist_time_range_get_type (void) G_GNUC_CONST;
+ZeitgeistTimeRange* zeitgeist_time_range_new (gint64 start_msec, gint64 end_msec);
+ZeitgeistTimeRange* zeitgeist_time_range_construct (GType object_type, gint64 start_msec, gint64 end_msec);
+ZeitgeistTimeRange* zeitgeist_time_range_new_anytime (void);
+ZeitgeistTimeRange* zeitgeist_time_range_construct_anytime (GType object_type);
+ZeitgeistTimeRange* zeitgeist_time_range_new_to_now (void);
+ZeitgeistTimeRange* zeitgeist_time_range_construct_to_now (GType object_type);
+ZeitgeistTimeRange* zeitgeist_time_range_new_from_now (void);
+ZeitgeistTimeRange* zeitgeist_time_range_construct_from_now (GType object_type);
+ZeitgeistTimeRange* zeitgeist_time_range_new_from_variant (GVariant* variant, GError** error);
+ZeitgeistTimeRange* zeitgeist_time_range_construct_from_variant (GType object_type, GVariant* variant, GError** error);
+GVariant* zeitgeist_time_range_to_variant (ZeitgeistTimeRange* self);
+ZeitgeistTimeRange* zeitgeist_time_range_intersect (ZeitgeistTimeRange* self, ZeitgeistTimeRange* time_range);
+gint64 zeitgeist_time_range_get_start (ZeitgeistTimeRange* self);
+gint64 zeitgeist_time_range_get_end (ZeitgeistTimeRange* self);
+GType zeitgeist_index_get_type (void) G_GNUC_CONST;
+ZeitgeistIndex* zeitgeist_index_new (void);
+ZeitgeistIndex* zeitgeist_index_construct (GType object_type);
+void zeitgeist_index_search (ZeitgeistIndex* self, const gchar* query, ZeitgeistTimeRange* time_range, GPtrArray* event_templates, guint32 offset, guint32 num_events, ZeitgeistResultType result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GType zeitgeist_result_set_get_type (void) G_GNUC_CONST;
+ZeitgeistResultSet* zeitgeist_index_search_finish (ZeitgeistIndex* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_index_search_with_relevancies (ZeitgeistIndex* self, const gchar* query, ZeitgeistTimeRange* time_range, GPtrArray* event_templates, ZeitgeistStorageState storage_state, guint32 offset, guint32 num_events, ZeitgeistResultType result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ZeitgeistResultSet* zeitgeist_index_search_with_relevancies_finish (ZeitgeistIndex* self, GAsyncResult* _res_, gdouble** relevancies, int* relevancies_length1, GError** error);
+GType zeitgeist_log_get_type (void) G_GNUC_CONST;
+ZeitgeistLog* zeitgeist_log_new (void);
+ZeitgeistLog* zeitgeist_log_construct (GType object_type);
+ZeitgeistLog* zeitgeist_log_get_default (void);
+void zeitgeist_log_insert_event (ZeitgeistLog* self, ZeitgeistEvent* event, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GArray* zeitgeist_log_insert_event_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_insert_events (ZeitgeistLog* self, GPtrArray* events, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GArray* zeitgeist_log_insert_events_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_insert_event_no_reply (ZeitgeistLog* self, ZeitgeistEvent* event, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_log_insert_event_no_reply_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_insert_events_no_reply (ZeitgeistLog* self, GPtrArray* events, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_log_insert_events_no_reply_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_find_events (ZeitgeistLog* self, ZeitgeistTimeRange* time_range, GPtrArray* event_templates, ZeitgeistStorageState storage_state, guint32 num_events, ZeitgeistResultType result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ZeitgeistResultSet* zeitgeist_log_find_events_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_find_event_ids (ZeitgeistLog* self, ZeitgeistTimeRange* time_range, GPtrArray* event_templates, ZeitgeistStorageState storage_state, guint32 num_events, ZeitgeistResultType result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+guint32* zeitgeist_log_find_event_ids_finish (ZeitgeistLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+void zeitgeist_log_get_events (ZeitgeistLog* self, GArray* event_ids, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ZeitgeistResultSet* zeitgeist_log_get_events_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_find_related_uris (ZeitgeistLog* self, ZeitgeistTimeRange* time_range, GPtrArray* event_templates, GPtrArray* result_event_templates, ZeitgeistStorageState storage_state, guint32 num_events, ZeitgeistResultType result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gchar** zeitgeist_log_find_related_uris_finish (ZeitgeistLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+void zeitgeist_log_delete_events (ZeitgeistLog* self, GArray* event_ids, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+ZeitgeistTimeRange* zeitgeist_log_delete_events_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_quit (ZeitgeistLog* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_log_quit_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+GType zeitgeist_monitor_get_type (void) G_GNUC_CONST;
+void zeitgeist_log_install_monitor (ZeitgeistLog* self, ZeitgeistMonitor* monitor, GError** error);
+void zeitgeist_log_remove_monitor (ZeitgeistLog* self, ZeitgeistMonitor* monitor, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_log_remove_monitor_finish (ZeitgeistLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_log_get_version (ZeitgeistLog* self, gint* major, gint* minor, gint* micro);
+#define ZEITGEIST_TIMESTAMP_SECOND ((gint64) 1000)
+#define ZEITGEIST_TIMESTAMP_MINUTE ((gint64) 60000)
+#define ZEITGEIST_TIMESTAMP_HOUR ((gint64) 3600000)
+#define ZEITGEIST_TIMESTAMP_DAY ((gint64) 86400000)
+#define ZEITGEIST_TIMESTAMP_WEEK ((gint64) 604800000)
+#define ZEITGEIST_TIMESTAMP_YEAR 31556952000LL
+gint64 zeitgeist_timestamp_from_timeval (GTimeVal* timeval);
+void zeitgeist_timestamp_to_timeval (gint64 timestamp, GTimeVal* result);
+gint64 zeitgeist_timestamp_from_now (void);
+gint64 zeitgeist_timestamp_from_iso8601 (const gchar* datetime);
+gchar* zeitgeist_timestamp_to_iso8601 (gint64 timestamp);
+gint64 zeitgeist_timestamp_from_date (GDate* date);
+gint64 zeitgeist_timestamp_from_dmy (GDateDay day, GDateMonth month, GDateYear year);
+void zeitgeist_timestamp_to_date (gint64 timestamp, GDate* result);
+gint64 zeitgeist_timestamp_next_midnight (gint64 timestamp);
+gint64 zeitgeist_timestamp_prev_midnight (gint64 timestamp);
+GType zeitgeist_remote_monitor_proxy_get_type (void) G_GNUC_CONST;
+guint zeitgeist_remote_monitor_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+GType zeitgeist_remote_monitor_get_type (void) G_GNUC_CONST;
+ZeitgeistMonitor* zeitgeist_monitor_new (ZeitgeistTimeRange* time_range, GPtrArray* event_templates);
+ZeitgeistMonitor* zeitgeist_monitor_construct (GType object_type, ZeitgeistTimeRange* time_range, GPtrArray* event_templates);
+GPtrArray* zeitgeist_monitor_get_templates (ZeitgeistMonitor* self);
+char* zeitgeist_monitor_get_path (ZeitgeistMonitor* self);
+ZeitgeistTimeRange* zeitgeist_monitor_get_time_range (ZeitgeistMonitor* self);
+void zeitgeist_monitor_set_time_range (ZeitgeistMonitor* self, ZeitgeistTimeRange* value);
+GPtrArray* zeitgeist_monitor_get_event_templates (ZeitgeistMonitor* self);
+void zeitgeist_monitor_set_event_templates (ZeitgeistMonitor* self, GPtrArray* value);
+#define ZEITGEIST_NCAL_ALARM "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Alarm"
+#define ZEITGEIST_NCAL_ATTACHMENT "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Attachment"
+#define ZEITGEIST_NCAL_CALENDAR "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Calendar"
+#define ZEITGEIST_NCAL_CALENDAR_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#CalendarData" \
+"Object"
+#define ZEITGEIST_NCAL_EVENT "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Event"
+#define ZEITGEIST_NCAL_FREEBUSY "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Freebusy"
+#define ZEITGEIST_NCAL_JOURNAL "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Journal"
+#define ZEITGEIST_NCAL_TIMEZONE "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Timezone"
+#define ZEITGEIST_NCAL_TODO "http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Todo"
+#define ZEITGEIST_NCO_CONTACT "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#Contact"
+#define ZEITGEIST_NCO_CONTACT_GROUP "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactGroup"
+#define ZEITGEIST_NCO_CONTACT_LIST "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactList"
+#define ZEITGEIST_NCO_CONTACT_LIST_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#ContactListDa" \
+"taObject"
+#define ZEITGEIST_NCO_ORGANIZATION_CONTACT "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#OrganizationC" \
+"ontact"
+#define ZEITGEIST_NCO_PERSON_CONTACT "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#PersonContact"
+#define ZEITGEIST_NFO_APPLICATION "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Application"
+#define ZEITGEIST_NFO_ARCHIVE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Archive"
+#define ZEITGEIST_NFO_ARCHIVE_ITEM "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#ArchiveItem"
+#define ZEITGEIST_NFO_ATTACHMENT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Attachment"
+#define ZEITGEIST_NFO_AUDIO "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Audio"
+#define ZEITGEIST_NFO_BOOKMARK "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Bookmark"
+#define ZEITGEIST_NFO_BOOKMARK_FOLDER "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#BookmarkFolde" \
+"r"
+#define ZEITGEIST_NFO_CURSOR "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Cursor"
+#define ZEITGEIST_NFO_DATA_CONTAINER "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer"
+#define ZEITGEIST_NFO_DELETED_RESOURCE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DeletedResour" \
+"ce"
+#define ZEITGEIST_NFO_DOCUMENT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Document"
+#define ZEITGEIST_NFO_EMBEDDED_FILE_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#EmbeddedFileD" \
+"ataObject"
+#define ZEITGEIST_NFO_EXECUTABLE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Executable"
+#define ZEITGEIST_NFO_FILESYSTEM "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Filesystem"
+#define ZEITGEIST_NFO_FILESYSTEM_IMAGE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FilesystemIma" \
+"ge"
+#define ZEITGEIST_NFO_FILE_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObjec" \
+"t"
+#define ZEITGEIST_NFO_FOLDER "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder"
+#define ZEITGEIST_NFO_FONT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Font"
+#define ZEITGEIST_NFO_HARD_DISK_PARTITION "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#HardDiskParti" \
+"tion"
+#define ZEITGEIST_NFO_HTML_DOCUMENT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#HtmlDocument"
+#define ZEITGEIST_NFO_ICON "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Icon"
+#define ZEITGEIST_NFO_IMAGE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Image"
+#define ZEITGEIST_NFO_MEDIA "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Media"
+#define ZEITGEIST_NFO_MEDIA_LIST "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MediaList"
+#define ZEITGEIST_NFO_MEDIA_STREAM "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MediaStream"
+#define ZEITGEIST_NFO_MIND_MAP "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MindMap"
+#define ZEITGEIST_NFO_OPERATING_SYSTEM "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#OperatingSyst" \
+"em"
+#define ZEITGEIST_NFO_PAGINATED_TEXT_DOCUMENT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PaginatedText" \
+"Document"
+#define ZEITGEIST_NFO_PLAIN_TEXT_DOCUMENT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PlainTextDocu" \
+"ment"
+#define ZEITGEIST_NFO_PRESENTATION "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Presentation"
+#define ZEITGEIST_NFO_RASTER_IMAGE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RasterImage"
+#define ZEITGEIST_NFO_REMOTE_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemoteDataObj" \
+"ect"
+#define ZEITGEIST_NFO_REMOTE_PORT_ADDRESS "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemotePortAdd" \
+"ress"
+#define ZEITGEIST_NFO_SOFTWARE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Software"
+#define ZEITGEIST_NFO_SOFTWARE_ITEM "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SoftwareItem"
+#define ZEITGEIST_NFO_SOFTWARE_SERVICE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SoftwareServi" \
+"ce"
+#define ZEITGEIST_NFO_SOURCE_CODE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SourceCode"
+#define ZEITGEIST_NFO_SPREADSHEET "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Spreadsheet"
+#define ZEITGEIST_NFO_TEXT_DOCUMENT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#TextDocument"
+#define ZEITGEIST_NFO_TRASH "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Trash"
+#define ZEITGEIST_NFO_VECTOR_IMAGE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#VectorImage"
+#define ZEITGEIST_NFO_VIDEO "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Video"
+#define ZEITGEIST_NFO_VISUAL "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Visual"
+#define ZEITGEIST_NFO_WEBSITE "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Website"
+#define ZEITGEIST_NFO_WEB_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#WebDataObject"
+#define ZEITGEIST_NIE_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#DataObject"
+#define ZEITGEIST_NIE_INFORMATION_ELEMENT "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#InformationEl" \
+"ement"
+#define ZEITGEIST_NMM_MOVIE "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#Movie"
+#define ZEITGEIST_NMM_MUSIC_ALBUM "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#MusicAlbum"
+#define ZEITGEIST_NMM_MUSIC_PIECE "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#MusicPiece"
+#define ZEITGEIST_NMM_TVSERIES "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#TVSeries"
+#define ZEITGEIST_NMM_TVSHOW "http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#TVShow"
+#define ZEITGEIST_NMO_EMAIL "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Email"
+#define ZEITGEIST_NMO_IMMESSAGE "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#IMMessage"
+#define ZEITGEIST_NMO_MAILBOX "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Mailbox"
+#define ZEITGEIST_NMO_MAILBOX_DATA_OBJECT "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#MailboxDataOb" \
+"ject"
+#define ZEITGEIST_NMO_MESSAGE "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Message"
+#define ZEITGEIST_NMO_MIME_ENTITY "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#MimeEntity"
+#define ZEITGEIST_ZG_ACCEPT_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AcceptEvent"
+#define ZEITGEIST_ZG_ACCESS_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AccessEvent"
+#define ZEITGEIST_ZG_CREATE_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#CreateEvent"
+#define ZEITGEIST_ZG_DELETE_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DeleteEvent"
+#define ZEITGEIST_ZG_DENY_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DenyEvent"
+#define ZEITGEIST_ZG_EVENT_INTERPRETATION "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#EventInterpr" \
+"etation"
+#define ZEITGEIST_ZG_EVENT_MANIFESTATION "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#EventManifes" \
+"tation"
+#define ZEITGEIST_ZG_EXPIRE_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ExpireEvent"
+#define ZEITGEIST_ZG_HEURISTIC_ACTIVITY "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#HeuristicAct" \
+"ivity"
+#define ZEITGEIST_ZG_LEAVE_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#LeaveEvent"
+#define ZEITGEIST_ZG_MODIFY_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ModifyEvent"
+#define ZEITGEIST_ZG_MOVE_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#MoveEvent"
+#define ZEITGEIST_ZG_RECEIVE_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ReceiveEvent"
+#define ZEITGEIST_ZG_SCHEDULED_ACTIVITY "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ScheduledAct" \
+"ivity"
+#define ZEITGEIST_ZG_SEND_EVENT "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SendEvent"
+#define ZEITGEIST_ZG_SYSTEM_NOTIFICATION "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SystemNotifi" \
+"cation"
+#define ZEITGEIST_ZG_USER_ACTIVITY "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#UserActivity"
+#define ZEITGEIST_ZG_WORLD_ACTIVITY "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#WorldActivit" \
+"y"
+const gchar* zeitgeist_symbol_get_display_name (const gchar* symbol_uri);
+const gchar* zeitgeist_symbol_get_description (const gchar* symbol_uri);
+GList* zeitgeist_symbol_get_all_parents (const gchar* symbol_uri);
+GList* zeitgeist_symbol_get_all_children (const gchar* symbol_uri);
+GList* zeitgeist_symbol_get_children (const gchar* symbol_uri);
+GList* zeitgeist_symbol_get_parents (const gchar* symbol_uri);
+gboolean zeitgeist_symbol_is_a (const gchar* symbol_uri, const gchar* parent_uri);
+void zeitgeist_queued_proxy_wrapper_proxy_acquired (ZeitgeistQueuedProxyWrapper* self, GObject* proxy);
+void zeitgeist_queued_proxy_wrapper_proxy_unavailable (ZeitgeistQueuedProxyWrapper* self, GError* err);
+void zeitgeist_queued_proxy_wrapper_process_queued_methods (ZeitgeistQueuedProxyWrapper* self);
+void zeitgeist_queued_proxy_wrapper_name_owner_changed (ZeitgeistQueuedProxyWrapper* self, GParamSpec* pspec);
+void zeitgeist_queued_proxy_wrapper_on_connection_established (ZeitgeistQueuedProxyWrapper* self);
+void zeitgeist_queued_proxy_wrapper_on_connection_lost (ZeitgeistQueuedProxyWrapper* self);
+void zeitgeist_queued_proxy_wrapper_wait_for_proxy (ZeitgeistQueuedProxyWrapper* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_queued_proxy_wrapper_wait_for_proxy_finish (ZeitgeistQueuedProxyWrapper* self, GAsyncResult* _res_, GError** error);
+ZeitgeistQueuedProxyWrapper* zeitgeist_queued_proxy_wrapper_construct (GType object_type);
+gboolean zeitgeist_queued_proxy_wrapper_get_proxy_created (ZeitgeistQueuedProxyWrapper* self);
+gboolean zeitgeist_queued_proxy_wrapper_get_is_connected (ZeitgeistQueuedProxyWrapper* self);
+gpointer zeitgeist_queued_proxy_wrapper_queued_method_ref (gpointer instance);
+void zeitgeist_queued_proxy_wrapper_queued_method_unref (gpointer instance);
+GParamSpec* zeitgeist_queued_proxy_wrapper_param_spec_queued_method (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void zeitgeist_queued_proxy_wrapper_value_set_queued_method (GValue* value, gpointer v_object);
+void zeitgeist_queued_proxy_wrapper_value_take_queued_method (GValue* value, gpointer v_object);
+gpointer zeitgeist_queued_proxy_wrapper_value_get_queued_method (const GValue* value);
+GType zeitgeist_queued_proxy_wrapper_queued_method_get_type (void) G_GNUC_CONST;
+ZeitgeistQueuedProxyWrapperQueuedMethod* zeitgeist_queued_proxy_wrapper_queued_method_new (GSourceFunc callback, void* callback_target, GDestroyNotify callback_target_destroy_notify);
+ZeitgeistQueuedProxyWrapperQueuedMethod* zeitgeist_queued_proxy_wrapper_queued_method_construct (GType object_type, GSourceFunc callback, void* callback_target, GDestroyNotify callback_target_destroy_notify);
+GSourceFunc zeitgeist_queued_proxy_wrapper_queued_method_get_queued_method (ZeitgeistQueuedProxyWrapperQueuedMethod* self, gpointer* result_target);
+GType zeitgeist_version_struct_get_type (void) G_GNUC_CONST;
+ZeitgeistVersionStruct* zeitgeist_version_struct_dup (const ZeitgeistVersionStruct* self);
+void zeitgeist_version_struct_free (ZeitgeistVersionStruct* self);
+GType zeitgeist_remote_log_proxy_get_type (void) G_GNUC_CONST;
+guint zeitgeist_remote_log_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+GType zeitgeist_remote_log_get_type (void) G_GNUC_CONST;
+void zeitgeist_remote_log_delete_events (ZeitgeistRemoteLog* self, guint32* event_ids, int event_ids_length1, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GVariant* zeitgeist_remote_log_delete_events_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_log_find_event_ids (ZeitgeistRemoteLog* self, GVariant* time_range, GVariant* event_templates, guint storage_state, guint num_events, guint result_type, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+guint32* zeitgeist_remote_log_find_event_ids_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+void zeitgeist_remote_log_find_events (ZeitgeistRemoteLog* self, GVariant* time_range, GVariant* event_templates, guint storage_state, guint num_events, guint result_type, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GVariant* zeitgeist_remote_log_find_events_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_log_find_related_uris (ZeitgeistRemoteLog* self, GVariant* time_range, GVariant* event_templates, GVariant* result_event_templates, guint storage_state, guint num_events, guint result_type, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gchar** zeitgeist_remote_log_find_related_uris_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+void zeitgeist_remote_log_get_events (ZeitgeistRemoteLog* self, guint32* event_ids, int event_ids_length1, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+GVariant* zeitgeist_remote_log_get_events_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_log_insert_events (ZeitgeistRemoteLog* self, GVariant* events, GCancellable* cancellable, const char* sender, GAsyncReadyCallback _callback_, gpointer _user_data_);
+guint32* zeitgeist_remote_log_insert_events_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, int* result_length1, GError** error);
+void zeitgeist_remote_log_install_monitor (ZeitgeistRemoteLog* self, const char* monitor_path, GVariant* time_range, GVariant* event_templates, const char* owner, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_log_install_monitor_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_log_remove_monitor (ZeitgeistRemoteLog* self, const char* monitor_path, const char* owner, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_log_remove_monitor_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_log_quit (ZeitgeistRemoteLog* self, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_log_quit_finish (ZeitgeistRemoteLog* self, GAsyncResult* _res_, GError** error);
+gchar** zeitgeist_remote_log_get_extensions (ZeitgeistRemoteLog* self, int* result_length1);
+void zeitgeist_remote_log_get_version (ZeitgeistRemoteLog* self, ZeitgeistVersionStruct* result);
+void zeitgeist_remote_monitor_notify_insert (ZeitgeistRemoteMonitor* self, GVariant* time_range, GVariant* events, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_monitor_notify_insert_finish (ZeitgeistRemoteMonitor* self, GAsyncResult* _res_, GError** error);
+void zeitgeist_remote_monitor_notify_delete (ZeitgeistRemoteMonitor* self, GVariant* time_range, guint32* event_ids, int event_ids_length1, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_monitor_notify_delete_finish (ZeitgeistRemoteMonitor* self, GAsyncResult* _res_, GError** error);
+GType zeitgeist_remote_simple_indexer_proxy_get_type (void) G_GNUC_CONST;
+guint zeitgeist_remote_simple_indexer_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+GType zeitgeist_remote_simple_indexer_get_type (void) G_GNUC_CONST;
+void zeitgeist_remote_simple_indexer_search (ZeitgeistRemoteSimpleIndexer* self, const gchar* query_string, GVariant* time_range, GVariant* filter_templates, guint offset, guint count, guint result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_simple_indexer_search_finish (ZeitgeistRemoteSimpleIndexer* self, GAsyncResult* _res_, GVariant** events, guint* matches, GError** error);
+void zeitgeist_remote_simple_indexer_search_with_relevancies (ZeitgeistRemoteSimpleIndexer* self, const gchar* query_string, GVariant* time_range, GVariant* filter_templates, guint storage_state, guint offset, guint count, guint result_type, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+void zeitgeist_remote_simple_indexer_search_with_relevancies_finish (ZeitgeistRemoteSimpleIndexer* self, GAsyncResult* _res_, GVariant** events, gdouble** relevancies, int* relevancies_length1, guint* matches, GError** error);
+GType zeitgeist_network_manager_dbus_proxy_get_type (void) G_GNUC_CONST;
+guint zeitgeist_network_manager_dbus_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+GType zeitgeist_network_manager_dbus_get_type (void) G_GNUC_CONST;
+guint32 zeitgeist_network_manager_dbus_state (ZeitgeistNetworkManagerDBus* self, GError** error);
+GType zeitgeist_connman_manager_dbus_proxy_get_type (void) G_GNUC_CONST;
+guint zeitgeist_connman_manager_dbus_register_object (void* object, GDBusConnection* connection, const gchar* path, GError** error);
+GType zeitgeist_connman_manager_dbus_get_type (void) G_GNUC_CONST;
+gchar* zeitgeist_connman_manager_dbus_get_state (ZeitgeistConnmanManagerDBus* self, GError** error);
+guint zeitgeist_result_set_size (ZeitgeistResultSet* self);
+guint zeitgeist_result_set_estimated_matches (ZeitgeistResultSet* self);
+ZeitgeistEvent* zeitgeist_result_set_next_value (ZeitgeistResultSet* self);
+gboolean zeitgeist_result_set_has_next (ZeitgeistResultSet* self);
+guint zeitgeist_result_set_tell (ZeitgeistResultSet* self);
+void zeitgeist_result_set_reset (ZeitgeistResultSet* self);
+ZeitgeistResultSet* zeitgeist_result_set_iterator (ZeitgeistResultSet* self);
+#define ZEITGEIST_UTILS_ENGINE_DBUS_NAME "org.gnome.zeitgeist.Engine"
+#define ZEITGEIST_UTILS_ENGINE_DBUS_PATH "/org/gnome/zeitgeist/log/activity"
+#define ZEITGEIST_UTILS_SIG_EVENT "asaasay"
+#define ZEITGEIST_UTILS_MAX_DBUS_RESULT_SIZE ((gsize) ((4 * 1024) * 1024))
+#define ZEITGEIST_UTILS_CACHE_SIZE ((guint) 0)
+const gchar* zeitgeist_utils_get_data_path (void);
+gchar* zeitgeist_utils_get_default_data_path (void);
+const gchar* zeitgeist_utils_get_database_file_path (void);
+const gchar* zeitgeist_utils_get_database_file_backup_path (void);
+gchar* zeitgeist_utils_get_database_file_retire_name (void);
+const gchar* zeitgeist_utils_get_local_extensions_path (void);
+gboolean zeitgeist_utils_using_in_memory_database (void);
+void zeitgeist_utils_backup_database (GError** error);
+gboolean zeitgeist_utils_parse_negation (gchar** val);
+gboolean zeitgeist_utils_parse_noexpand (gchar** val);
+gboolean zeitgeist_utils_parse_wildcard (gchar** val);
+gboolean zeitgeist_utils_is_empty_string (const gchar* s);
+
+
+G_END_DECLS
+
+#endif