summaryrefslogtreecommitdiff
path: root/plugins/Dbx_mdbx/src
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2018-06-13 16:16:55 +0300
committerGeorge Hazan <ghazan@miranda.im>2018-06-13 16:16:55 +0300
commite71725076a18bf48579275e196886dc2edb9aee1 (patch)
tree860e03166916f3d0b52afe21d613d5b316886917 /plugins/Dbx_mdbx/src
parent00d71971d9cf831b991d391bb073dd846a15855f (diff)
Dbx_mdbx: duplicate code removed
Diffstat (limited to 'plugins/Dbx_mdbx/src')
-rw-r--r--plugins/Dbx_mdbx/src/dbintf.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/plugins/Dbx_mdbx/src/dbintf.cpp b/plugins/Dbx_mdbx/src/dbintf.cpp
index 4247806e0a..5f8eaa4398 100644
--- a/plugins/Dbx_mdbx/src/dbintf.cpp
+++ b/plugins/Dbx_mdbx/src/dbintf.cpp
@@ -23,6 +23,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "stdafx.h"
+/////////////////////////////////////////////////////////////////////////////////////////
+// constructor & destructor
+
CDbxMDBX::CDbxMDBX(const TCHAR *tszFileName, int iMode) :
m_safetyMode(true),
m_bReadOnly((iMode & DBMODE_READONLY) != 0),
@@ -35,11 +38,6 @@ CDbxMDBX::CDbxMDBX(const TCHAR *tszFileName, int iMode) :
m_hwndTimer = CreateWindowExW(0, L"STATIC", nullptr, 0, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, nullptr, g_plugin.getInst(), nullptr);
::SetWindowLongPtr(m_hwndTimer, GWLP_USERDATA, (LONG_PTR)this);
}
-
- mdbx_env_create(&m_env);
- mdbx_env_set_maxdbs(m_env, 10);
- mdbx_env_set_maxreaders(m_env, 244);
- mdbx_env_set_userctx(m_env, this);
}
CDbxMDBX::~CDbxMDBX()
@@ -71,6 +69,8 @@ CDbxMDBX::~CDbxMDBX()
mir_free(m_tszProfileName);
}
+/////////////////////////////////////////////////////////////////////////////////////////
+
int CDbxMDBX::Load()
{
TouchFile();
@@ -149,6 +149,8 @@ int CDbxMDBX::Load()
return EGROKPRF_NOERROR;
}
+/////////////////////////////////////////////////////////////////////////////////////////
+
size_t iDefHeaderOffset = 0;
BYTE bDefHeader[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0 };
@@ -168,6 +170,8 @@ int CDbxMDBX::Check(void)
return (memcmp(buf, bDefHeader, _countof(bDefHeader))) ? EGROKPRF_UNKHEADER : 0;
}
+/////////////////////////////////////////////////////////////////////////////////////////
+
BOOL CDbxMDBX::Compact()
{
CMStringW wszTmpFile(FORMAT, L"%s.tmp", m_tszProfileName);
@@ -188,11 +192,6 @@ BOOL CDbxMDBX::Compact()
DeleteFileW(m_tszProfileName);
MoveFileW(wszTmpFile, m_tszProfileName);
- mdbx_env_create(&m_env);
- mdbx_env_set_maxdbs(m_env, 10);
- mdbx_env_set_maxreaders(m_env, 244);
- mdbx_env_set_userctx(m_env, this);
-
Map();
Load();
}
@@ -201,23 +200,34 @@ BOOL CDbxMDBX::Compact()
return 0;
}
+/////////////////////////////////////////////////////////////////////////////////////////
+
int CDbxMDBX::PrepareCheck()
{
InitModules();
return InitCrypt();
}
+/////////////////////////////////////////////////////////////////////////////////////////
+
STDMETHODIMP_(void) CDbxMDBX::SetCacheSafetyMode(BOOL bIsSet)
{
m_safetyMode = bIsSet != 0;
DBFlush(true);
}
+/////////////////////////////////////////////////////////////////////////////////////////
+
int CDbxMDBX::Map()
{
if (!LockName(m_tszProfileName))
return EGROKPRF_CANTREAD;
+ mdbx_env_create(&m_env);
+ mdbx_env_set_maxdbs(m_env, 10);
+ mdbx_env_set_maxreaders(m_env, 244);
+ mdbx_env_set_userctx(m_env, this);
+
#ifdef _WIN64
__int64 upperLimit = 0x400000000ul;
#else