[evolution-data-server] Add e_book_backend_sqlitedb_get_uids_and_rev()
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Add e_book_backend_sqlitedb_get_uids_and_rev()
- Date: Tue, 22 Nov 2011 14:40:29 +0000 (UTC)
commit 6e53fb4c4dccbbcb6a0239dc01f9c2aaef98970d
Author: Milan Crha <mcrha redhat com>
Date: Tue Nov 22 15:40:04 2011 +0100
Add e_book_backend_sqlitedb_get_uids_and_rev()
.../libedata-book/e-book-backend-sqlitedb.c | 43 ++++++++++++++++++++
.../libedata-book/e-book-backend-sqlitedb.h | 8 +++-
2 files changed, 50 insertions(+), 1 deletions(-)
---
diff --git a/addressbook/libedata-book/e-book-backend-sqlitedb.c b/addressbook/libedata-book/e-book-backend-sqlitedb.c
index 75eef42..9f6d0f4 100644
--- a/addressbook/libedata-book/e-book-backend-sqlitedb.c
+++ b/addressbook/libedata-book/e-book-backend-sqlitedb.c
@@ -1675,6 +1675,49 @@ e_book_backend_sqlitedb_search_uids (EBookBackendSqliteDB *ebsdb,
}
static gint
+get_uids_and_rev_cb (gpointer user_data,
+ gint col,
+ gchar **cols,
+ gchar **name)
+{
+ GHashTable *uids_and_rev = user_data;
+
+ if (col == 2 && cols[0])
+ g_hash_table_insert (uids_and_rev, g_strdup (cols [0]), g_strdup (cols [1] ? cols [1] : ""));
+
+ return 0;
+}
+
+/**
+ * e_book_backend_sqlitedb_get_uids_and_rev:
+ *
+ * Gets hash table of all uids (key) and rev (value) pairs stored
+ * for each contact in the cache. The hash table should be freed
+ * with g_hash_table_destroy(), if not needed anymore. Each key
+ * and value is a newly allocated string.
+ *
+ * Since: 3.4
+ **/
+GHashTable *
+e_book_backend_sqlitedb_get_uids_and_rev (EBookBackendSqliteDB *ebsdb,
+ const gchar *folderid,
+ GError **error)
+{
+ GHashTable *uids_and_rev = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ gchar *stmt;
+
+ READER_LOCK (ebsdb);
+
+ stmt = sqlite3_mprintf ("SELECT uid,rev FROM %Q", folderid);
+ book_backend_sql_exec (ebsdb->priv->db, stmt, get_uids_and_rev_cb, uids_and_rev, error);
+ sqlite3_free (stmt);
+
+ READER_UNLOCK (ebsdb);
+
+ return uids_and_rev;
+}
+
+static gint
get_bool_cb (gpointer ref,
gint col,
gchar **cols,
diff --git a/addressbook/libedata-book/e-book-backend-sqlitedb.h b/addressbook/libedata-book/e-book-backend-sqlitedb.h
index 4726f0f..6d068e4 100644
--- a/addressbook/libedata-book/e-book-backend-sqlitedb.h
+++ b/addressbook/libedata-book/e-book-backend-sqlitedb.h
@@ -141,8 +141,14 @@ GSList * e_book_backend_sqlitedb_search_uids
(EBookBackendSqliteDB *ebsdb,
const gchar *folderid,
const gchar *sexp,
- gboolean *searched,
+ gboolean *searched,
+ GError **error);
+
+GHashTable * e_book_backend_sqlitedb_get_uids_and_rev
+ (EBookBackendSqliteDB *ebsdb,
+ const gchar *folderid,
GError **error);
+
gboolean e_book_backend_sqlitedb_get_is_populated
(EBookBackendSqliteDB *ebsdb,
const gchar *folderid,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]