X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fdb.h;h=07bb2b0115f052f28bb4350692669f07c601cfaf;hb=HEAD;hp=9a8af315641345181bbf220867e4331777fea191;hpb=adb8391acdf671640adb1e8be564e68b254fca69;p=novacoin.git diff --git a/src/db.h b/src/db.h index 9a8af31..d04bd2d 100644 --- a/src/db.h +++ b/src/db.h @@ -5,7 +5,12 @@ #ifndef BITCOIN_DB_H #define BITCOIN_DB_H -#include "main.h" +#include "sync.h" +#include "serialize.h" +#include "script.h" +#include "streams.h" + +#include #include #include @@ -27,13 +32,12 @@ class CWalletTx; extern unsigned int nWalletDBUpdated; void ThreadFlushWalletDB(void* parg); -bool BackupWallet(const CWallet& wallet, const std::string& strDest); - +bool DumpWallet(CWallet* pwallet, const std::string& strDest); +bool ImportWallet(CWallet* pwallet, const std::string& strLocation); class CDBEnv { private: - bool fDetachDB; bool fDbEnvInit; bool fMockDb; boost::filesystem::path pathEnv; @@ -74,8 +78,6 @@ public: void Close(); void Flush(bool fShutdown); void CheckpointLSN(std::string strFile); - void SetDetach(bool fDetachDB_) { fDetachDB = fDetachDB_; } - bool GetDetach() { return fDetachDB; } void CloseDb(const std::string& strFile); bool RemoveDb(const std::string& strFile); @@ -121,7 +123,7 @@ protected: CDataStream ssKey(SER_DISK, CLIENT_VERSION); ssKey.reserve(1000); ssKey << key; - Dbt datKey(&ssKey[0], ssKey.size()); + Dbt datKey(&ssKey[0], (uint32_t)ssKey.size()); // Read Dbt datValue; @@ -136,7 +138,7 @@ protected: CDataStream ssValue((char*)datValue.get_data(), (char*)datValue.get_data() + datValue.get_size(), SER_DISK, CLIENT_VERSION); ssValue >> value; } - catch (std::exception &e) { + catch (const std::exception&) { return false; } @@ -158,13 +160,13 @@ protected: CDataStream ssKey(SER_DISK, CLIENT_VERSION); ssKey.reserve(1000); ssKey << key; - Dbt datKey(&ssKey[0], ssKey.size()); + Dbt datKey(&ssKey[0], (uint32_t)ssKey.size()); // Value CDataStream ssValue(SER_DISK, CLIENT_VERSION); ssValue.reserve(10000); ssValue << value; - Dbt datValue(&ssValue[0], ssValue.size()); + Dbt datValue(&ssValue[0], (uint32_t)ssValue.size()); // Write int ret = pdb->put(activeTxn, &datKey, &datValue, (fOverwrite ? 0 : DB_NOOVERWRITE)); @@ -187,7 +189,7 @@ protected: CDataStream ssKey(SER_DISK, CLIENT_VERSION); ssKey.reserve(1000); ssKey << key; - Dbt datKey(&ssKey[0], ssKey.size()); + Dbt datKey(&ssKey[0], (uint32_t)ssKey.size()); // Erase int ret = pdb->del(activeTxn, &datKey, 0); @@ -207,7 +209,7 @@ protected: CDataStream ssKey(SER_DISK, CLIENT_VERSION); ssKey.reserve(1000); ssKey << key; - Dbt datKey(&ssKey[0], ssKey.size()); + Dbt datKey(&ssKey[0], (uint32_t)ssKey.size()); // Exists int ret = pdb->exists(activeTxn, &datKey, 0); @@ -235,13 +237,13 @@ protected: if (fFlags == DB_SET || fFlags == DB_SET_RANGE || fFlags == DB_GET_BOTH || fFlags == DB_GET_BOTH_RANGE) { datKey.set_data(&ssKey[0]); - datKey.set_size(ssKey.size()); + datKey.set_size((uint32_t)ssKey.size()); } Dbt datValue; if (fFlags == DB_GET_BOTH || fFlags == DB_GET_BOTH_RANGE) { datValue.set_data(&ssValue[0]); - datValue.set_size(ssValue.size()); + datValue.set_size((uint32_t)ssValue.size()); } datKey.set_flags(DB_DBT_MALLOC); datValue.set_flags(DB_DBT_MALLOC); @@ -317,10 +319,12 @@ class CAddrDB { private: boost::filesystem::path pathAddr; + static unsigned char pchMessageStart[4]; public: CAddrDB(); bool Write(const CAddrMan& addr); bool Read(CAddrMan& addr); + static void SetMessageStart(unsigned char _pchMessageStart[]) { memcpy(CAddrDB::pchMessageStart, _pchMessageStart, sizeof(CAddrDB::pchMessageStart)); } }; #endif // BITCOIN_DB_H