summaryrefslogtreecommitdiff
path: root/plugins/Dbx_sqlite/src/dbcontacts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Dbx_sqlite/src/dbcontacts.cpp')
-rw-r--r--plugins/Dbx_sqlite/src/dbcontacts.cpp226
1 files changed, 113 insertions, 113 deletions
diff --git a/plugins/Dbx_sqlite/src/dbcontacts.cpp b/plugins/Dbx_sqlite/src/dbcontacts.cpp
index 1cd6229da3..f66e5840e8 100644
--- a/plugins/Dbx_sqlite/src/dbcontacts.cpp
+++ b/plugins/Dbx_sqlite/src/dbcontacts.cpp
@@ -1,113 +1,113 @@
-#include "stdafx.h"
-
-void CDbxSQLite::InitContacts()
-{
- sqlite3_stmt *stmt = nullptr;
- sqlite3_prepare_v2(m_db, "SELECT contacts.id, COUNT(es.id) FROM contacts LEFT JOIN events_srt es ON es.contact_id = contacts.id GROUP BY contacts.id;", -1, &stmt, nullptr);
- int rc = 0;
- while ((rc = sqlite3_step(stmt)) == SQLITE_ROW) {
- MCONTACT hContact = sqlite3_column_int64(stmt, 0);
- DBCachedContact *cc = (hContact) ? m_cache->AddContactToCache(hContact) : &m_system;
- cc->m_count = sqlite3_column_int64(stmt, 1);
- }
- logError(rc, __FILE__, __LINE__);
- sqlite3_finalize(stmt);
-}
-
-int CDbxSQLite::GetContactCount()
-{
- mir_cslock lock(m_csDbAccess);
- sqlite3_stmt *stmt = InitQuery("SELECT COUNT(1) FROM contacts LIMIT 1;", qCntCount);
- int rc = sqlite3_step(stmt);
- logError(rc, __FILE__, __LINE__);
- int count = sqlite3_column_int(stmt, 0);
- sqlite3_reset(stmt);
- return count;
-}
-
-MCONTACT CDbxSQLite::AddContact()
-{
- MCONTACT hContact = INVALID_CONTACT_ID;
- {
- mir_cslock lock(m_csDbAccess);
- sqlite3_stmt *stmt = InitQuery("INSERT INTO contacts VALUES (null);", qCntAdd);
- int rc = sqlite3_step(stmt);
- logError(rc, __FILE__, __LINE__);
- sqlite3_reset(stmt);
- if (rc != SQLITE_DONE)
- return INVALID_CONTACT_ID;
- hContact = sqlite3_last_insert_rowid(m_db);
- DBFlush();
- }
-
- DBCachedContact *cc = m_cache->AddContactToCache(hContact);
- if (cc == nullptr)
- return INVALID_CONTACT_ID;
-
- NotifyEventHooks(g_hevContactAdded, hContact);
- return hContact;
-}
-
-int CDbxSQLite::DeleteContact(MCONTACT hContact)
-{
- // global contact cannot be removed
- if (hContact == 0)
- return 1;
-
- DBCachedContact *cc = m_cache->GetCachedContact(hContact);
- if (cc == nullptr)
- return 1;
-
- NotifyEventHooks(g_hevContactDeleted, hContact);
-
- mir_cslockfull lock(m_csDbAccess);
-
- sqlite3_stmt *stmt = InitQuery("DELETE FROM events WHERE contact_id = ?;", qCntDelEvents);
- sqlite3_bind_int64(stmt, 1, hContact);
- int rc = sqlite3_step(stmt);
- logError(rc, __FILE__, __LINE__);
- sqlite3_reset(stmt);
- if (rc != SQLITE_DONE)
- return 1;
-
- stmt = InitQuery("DELETE FROM events_srt WHERE contact_id = ?;", qCntDelEventSrt);
- sqlite3_bind_int64(stmt, 1, hContact);
- rc = sqlite3_step(stmt);
- logError(rc, __FILE__, __LINE__);
- sqlite3_reset(stmt);
- if (rc != SQLITE_DONE)
- return 1;
-
- stmt = InitQuery("DELETE FROM settings WHERE contact_id = ?;", qCntDelSettings);
- sqlite3_bind_int64(stmt, 1, hContact);
- rc = sqlite3_step(stmt);
- logError(rc, __FILE__, __LINE__);
- sqlite3_reset(stmt);
- if (rc != SQLITE_DONE)
- return 1;
-
- stmt = InitQuery("DELETE FROM contacts WHERE id = ?;", qCntDel);
- sqlite3_bind_int64(stmt, 1, hContact);
- rc = sqlite3_step(stmt);
- logError(rc, __FILE__, __LINE__);
- sqlite3_reset(stmt);
- if (rc != SQLITE_DONE)
- return 1;
-
- m_cache->FreeCachedContact(hContact);
- lock.unlock();
-
- DBFlush();
- return 0;
-}
-
-BOOL CDbxSQLite::IsDbContact(MCONTACT hContact)
-{
- DBCachedContact *cc = m_cache->GetCachedContact(hContact);
- return (cc != nullptr);
-}
-
-int CDbxSQLite::GetContactSize(void)
-{
- return sizeof(DBCachedContact);
-}
+#include "stdafx.h"
+
+void CDbxSQLite::InitContacts()
+{
+ sqlite3_stmt *stmt = nullptr;
+ sqlite3_prepare_v2(m_db, "SELECT contacts.id, COUNT(es.id) FROM contacts LEFT JOIN events_srt es ON es.contact_id = contacts.id GROUP BY contacts.id;", -1, &stmt, nullptr);
+ int rc = 0;
+ while ((rc = sqlite3_step(stmt)) == SQLITE_ROW) {
+ MCONTACT hContact = sqlite3_column_int64(stmt, 0);
+ DBCachedContact *cc = (hContact) ? m_cache->AddContactToCache(hContact) : &m_system;
+ cc->m_count = sqlite3_column_int64(stmt, 1);
+ }
+ logError(rc, __FILE__, __LINE__);
+ sqlite3_finalize(stmt);
+}
+
+int CDbxSQLite::GetContactCount()
+{
+ mir_cslock lock(m_csDbAccess);
+ sqlite3_stmt *stmt = InitQuery("SELECT COUNT(1) FROM contacts LIMIT 1;", qCntCount);
+ int rc = sqlite3_step(stmt);
+ logError(rc, __FILE__, __LINE__);
+ int count = sqlite3_column_int(stmt, 0);
+ sqlite3_reset(stmt);
+ return count;
+}
+
+MCONTACT CDbxSQLite::AddContact()
+{
+ MCONTACT hContact = INVALID_CONTACT_ID;
+ {
+ mir_cslock lock(m_csDbAccess);
+ sqlite3_stmt *stmt = InitQuery("INSERT INTO contacts VALUES (null);", qCntAdd);
+ int rc = sqlite3_step(stmt);
+ logError(rc, __FILE__, __LINE__);
+ sqlite3_reset(stmt);
+ if (rc != SQLITE_DONE)
+ return INVALID_CONTACT_ID;
+ hContact = sqlite3_last_insert_rowid(m_db);
+ DBFlush();
+ }
+
+ DBCachedContact *cc = m_cache->AddContactToCache(hContact);
+ if (cc == nullptr)
+ return INVALID_CONTACT_ID;
+
+ NotifyEventHooks(g_hevContactAdded, hContact);
+ return hContact;
+}
+
+int CDbxSQLite::DeleteContact(MCONTACT hContact)
+{
+ // global contact cannot be removed
+ if (hContact == 0)
+ return 1;
+
+ DBCachedContact *cc = m_cache->GetCachedContact(hContact);
+ if (cc == nullptr)
+ return 1;
+
+ NotifyEventHooks(g_hevContactDeleted, hContact);
+
+ mir_cslockfull lock(m_csDbAccess);
+
+ sqlite3_stmt *stmt = InitQuery("DELETE FROM events WHERE contact_id = ?;", qCntDelEvents);
+ sqlite3_bind_int64(stmt, 1, hContact);
+ int rc = sqlite3_step(stmt);
+ logError(rc, __FILE__, __LINE__);
+ sqlite3_reset(stmt);
+ if (rc != SQLITE_DONE)
+ return 1;
+
+ stmt = InitQuery("DELETE FROM events_srt WHERE contact_id = ?;", qCntDelEventSrt);
+ sqlite3_bind_int64(stmt, 1, hContact);
+ rc = sqlite3_step(stmt);
+ logError(rc, __FILE__, __LINE__);
+ sqlite3_reset(stmt);
+ if (rc != SQLITE_DONE)
+ return 1;
+
+ stmt = InitQuery("DELETE FROM settings WHERE contact_id = ?;", qCntDelSettings);
+ sqlite3_bind_int64(stmt, 1, hContact);
+ rc = sqlite3_step(stmt);
+ logError(rc, __FILE__, __LINE__);
+ sqlite3_reset(stmt);
+ if (rc != SQLITE_DONE)
+ return 1;
+
+ stmt = InitQuery("DELETE FROM contacts WHERE id = ?;", qCntDel);
+ sqlite3_bind_int64(stmt, 1, hContact);
+ rc = sqlite3_step(stmt);
+ logError(rc, __FILE__, __LINE__);
+ sqlite3_reset(stmt);
+ if (rc != SQLITE_DONE)
+ return 1;
+
+ m_cache->FreeCachedContact(hContact);
+ lock.unlock();
+
+ DBFlush();
+ return 0;
+}
+
+BOOL CDbxSQLite::IsDbContact(MCONTACT hContact)
+{
+ DBCachedContact *cc = m_cache->GetCachedContact(hContact);
+ return (cc != nullptr);
+}
+
+int CDbxSQLite::GetContactSize(void)
+{
+ return sizeof(DBCachedContact);
+}