Add support for database open with flags

Add support to:
  - BlockchainDB, BlockchainLMDB
  - blockchain_import utility to open LMDB database with one or more
    LMDB flags.

Sample use:
  $ blockchain_import --database lmdb#nosync
  $ blockchain_import --database lmdb#nosync,nometasync
This commit is contained in:
warptangent 2015-02-11 16:02:20 -08:00
parent cb862cb81a
commit 275cbd4348
No known key found for this signature in database
GPG key ID: 0E490BEBFBE4E92D
7 changed files with 77 additions and 14 deletions

View file

@ -226,7 +226,7 @@ uint64_t Blockchain::get_current_blockchain_height() const
//------------------------------------------------------------------
//FIXME: possibly move this into the constructor, to avoid accidentally
// dereferencing a null BlockchainDB pointer
bool Blockchain::init(const std::string& config_folder, bool testnet)
bool Blockchain::init(const std::string& config_folder, const bool testnet, const int db_flags)
{
LOG_PRINT_L3("Blockchain::" << __func__);
CRITICAL_REGION_LOCAL(m_blockchain_lock);
@ -246,7 +246,7 @@ bool Blockchain::init(const std::string& config_folder, bool testnet)
const std::string filename = folder.string();
try
{
m_db->open(filename);
m_db->open(filename, db_flags);
}
catch (const DB_OPEN_FAILURE& e)
{

View file

@ -81,7 +81,7 @@ namespace cryptonote
Blockchain(tx_memory_pool& tx_pool);
bool init(const std::string& config_folder, bool testnet = false);
bool init(const std::string& config_folder, const bool testnet = false, const int db_flags = 0);
bool deinit();
void set_checkpoints(checkpoints&& chk_pts) { m_checkpoints = chk_pts; }