[tracker/binary-log] libtracker-db: Add skeleton for journal reading
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/binary-log] libtracker-db: Add skeleton for journal reading
- Date: Thu, 31 Dec 2009 11:04:53 +0000 (UTC)
commit fe6918a4e9e6ee8b837004e8d6c8a75e6c14297f
Author: Jürg Billeter <j bitron ch>
Date: Thu Dec 31 12:04:19 2009 +0100
libtracker-db: Add skeleton for journal reading
src/libtracker-db/tracker-db-journal.c | 55 ++++++++++++++++++++++++++++++++
src/libtracker-db/tracker-db-journal.h | 21 ++++++++++++
2 files changed, 76 insertions(+), 0 deletions(-)
---
diff --git a/src/libtracker-db/tracker-db-journal.c b/src/libtracker-db/tracker-db-journal.c
index aa8d305..0cba52f 100644
--- a/src/libtracker-db/tracker-db-journal.c
+++ b/src/libtracker-db/tracker-db-journal.c
@@ -33,6 +33,15 @@
#include "tracker-db-journal.h"
+static struct {
+ TrackerDBJournalEntryType type;
+ gchar *uri;
+ guint32 s_code;
+ guint32 p_code;
+ guint32 o_code;
+ gchar *object;
+} journal_reader;
+
static gchar *filename = NULL;
static FILE *journal = NULL;
static gsize current_size = 0;
@@ -337,6 +346,52 @@ tracker_db_journal_close (void)
filename = NULL;
}
+gboolean
+tracker_db_journal_next (void)
+{
+ return FALSE;
+}
+
+TrackerDBJournalEntryType
+tracker_db_journal_get_type (void)
+{
+ return journal_reader.type;
+}
+
+gchar *
+tracker_db_journal_get_resource (void)
+{
+ g_return_val_if_fail (journal_reader.type == TRACKER_DB_JOURNAL_RESOURCE, NULL);
+
+ return journal_reader.uri;
+}
+
+void
+tracker_db_journal_get_statement (guint32 *s_code,
+ guint32 *p_code,
+ gchar **object)
+{
+ g_return_if_fail (journal_reader.type == TRACKER_DB_JOURNAL_INSERT_STATEMENT ||
+ journal_reader.type == TRACKER_DB_JOURNAL_DELETE_STATEMENT);
+
+ *s_code = journal_reader.s_code;
+ *p_code = journal_reader.p_code;
+ *object = g_strdup (journal_reader.object);
+}
+
+void
+tracker_db_journal_get_statement_code (guint32 *s_code,
+ guint32 *p_code,
+ guint32 *o_code)
+{
+ g_return_if_fail (journal_reader.type == TRACKER_DB_JOURNAL_INSERT_STATEMENT_CODE ||
+ journal_reader.type == TRACKER_DB_JOURNAL_DELETE_STATEMENT_CODE);
+
+ *s_code = journal_reader.s_code;
+ *p_code = journal_reader.p_code;
+ *o_code = journal_reader.o_code;
+}
+
#ifdef TEST
#include "libtracker-common/tracker-crc32.c"
diff --git a/src/libtracker-db/tracker-db-journal.h b/src/libtracker-db/tracker-db-journal.h
index b28bd08..b05b7c2 100644
--- a/src/libtracker-db/tracker-db-journal.h
+++ b/src/libtracker-db/tracker-db-journal.h
@@ -27,6 +27,16 @@
G_BEGIN_DECLS
+typedef enum {
+ TRACKER_DB_JOURNAL_START_TRANSACTION,
+ TRACKER_DB_JOURNAL_END_TRANSACTION,
+ TRACKER_DB_JOURNAL_RESOURCE,
+ TRACKER_DB_JOURNAL_INSERT_STATEMENT,
+ TRACKER_DB_JOURNAL_INSERT_STATEMENT_CODE,
+ TRACKER_DB_JOURNAL_DELETE_STATEMENT,
+ TRACKER_DB_JOURNAL_DELETE_STATEMENT_CODE
+} TrackerDBJournalEntryType;
+
const gchar* tracker_db_journal_filename (void);
void tracker_db_journal_open (const gchar *filen);
@@ -53,6 +63,17 @@ void tracker_db_journal_close (void);
void tracker_db_journal_fsync (void);
gsize tracker_db_journal_get_size (void);
+gboolean tracker_db_journal_next (void);
+TrackerDBJournalEntryType
+ tracker_db_journal_get_type (void);
+gchar * tracker_db_journal_get_resource (void);
+void tracker_db_journal_get_statement (guint32 *s_code,
+ guint32 *p_code,
+ gchar **object);
+void tracker_db_journal_get_statement_code (guint32 *s_code,
+ guint32 *p_code,
+ guint32 *o_code);
+
G_END_DECLS
#endif /* __LIBTRACKER_DB_JOURNAL_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]