From 8cb2a99e08a3f8fadc3b39f00228efa7d2b20050 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 3 Oct 2012 18:27:17 +0000 Subject: database cache migration, phase 1 git-svn-id: http://svn.miranda-ng.org/main/trunk@1772 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- src/modules/database/database.h | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/modules/database/database.h (limited to 'src/modules/database/database.h') diff --git a/src/modules/database/database.h b/src/modules/database/database.h new file mode 100644 index 0000000000..b0b5717e0b --- /dev/null +++ b/src/modules/database/database.h @@ -0,0 +1,49 @@ +/* + +Miranda NG: the free IM client for Microsoft* Windows* + +Copyright 2012 Miranda NG project, +all portions of this codebase are copyrighted to the people +listed in contributors.txt. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +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 General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +class MDatabaseCache : public MIDatabaseCache, public MZeroedObject +{ + HANDLE m_hCacheHeap; + char* m_lastSetting; + DBCachedContact *m_lastVL; + + LIST m_lContacts; + LIST m_lGlobalSettings; + LIST m_lSettings; + + void FreeCachedVariant(DBVARIANT* V); + +public: + MDatabaseCache(); + ~MDatabaseCache(); + +protected: + STDMETHODIMP_(DBCachedContact*) AddContactToCache(HANDLE hContact); + STDMETHODIMP_(DBCachedContact*) GetCachedContact(HANDLE hContact); + STDMETHODIMP_(void) FreeCachedContact(HANDLE hContact); + + STDMETHODIMP_(char*) InsertCachedSetting(const char *szName, int); + STDMETHODIMP_(char*) GetCachedSetting(const char *szModuleName, const char *szSettingName, int, int); + STDMETHODIMP_(void) SetCachedVariant(DBVARIANT *s, DBVARIANT *d); + STDMETHODIMP_(DBVARIANT*) GetCachedValuePtr(HANDLE hContact, char *szSetting, int bAllocate); +}; -- cgit v1.2.3