BlockchainDB implementations have names now
In order to make things more general, BlockchainDB now has get_db_name() which should return a string with the "name" of that type of db. This "name" will be the subfolder name that holds that db type's files within the monero folder. Small bugfix: blockchain_converter was not correctly appending this in the prior hard-coded-string implementation of the subfolder data directory concept.
This commit is contained in:
parent
5d2a2b7e69
commit
eee3ee7073
|
@ -71,7 +71,11 @@ int main(int argc, char* argv[])
|
|||
|
||||
blockchain = new BlockchainLMDB();
|
||||
|
||||
blockchain->open(default_data_path.string());
|
||||
boost::filesystem::path db_path(default_data_path);
|
||||
|
||||
db_path /= blockchain->get_db_name();
|
||||
|
||||
blockchain->open(db_path.string());
|
||||
|
||||
for (uint64_t height, i = 0; i < (height = c.m_storage.get_current_blockchain_height()); ++i)
|
||||
{
|
||||
|
|
|
@ -343,6 +343,9 @@ public:
|
|||
// get all files used by this db (if any)
|
||||
virtual std::vector<std::string> get_filenames() const = 0;
|
||||
|
||||
// return the name of the folder the db's file(s) should reside in
|
||||
virtual std::string get_db_name() const = 0;
|
||||
|
||||
|
||||
// FIXME: these are just for functionality mocking, need to implement
|
||||
// RAII-friendly and multi-read one-write friendly locking mechanism
|
||||
|
|
|
@ -775,6 +775,13 @@ std::vector<std::string> BlockchainLMDB::get_filenames() const
|
|||
return filenames;
|
||||
}
|
||||
|
||||
std::string BlockchainLMDB::get_db_name() const
|
||||
{
|
||||
LOG_PRINT_L3("BlockchainLMDB::" << __func__);
|
||||
|
||||
return std::string("lmdb");
|
||||
}
|
||||
|
||||
// TODO: this?
|
||||
bool BlockchainLMDB::lock()
|
||||
{
|
||||
|
|
|
@ -126,6 +126,8 @@ public:
|
|||
|
||||
virtual std::vector<std::string> get_filenames() const;
|
||||
|
||||
virtual std::string get_db_name() const;
|
||||
|
||||
virtual bool lock();
|
||||
|
||||
virtual void unlock();
|
||||
|
|
|
@ -231,17 +231,18 @@ bool Blockchain::init(const std::string& config_folder, bool testnet)
|
|||
LOG_PRINT_L3("Blockchain::" << __func__);
|
||||
CRITICAL_REGION_LOCAL(m_blockchain_lock);
|
||||
|
||||
// TODO: make this configurable
|
||||
m_db = new BlockchainLMDB();
|
||||
|
||||
m_config_folder = config_folder;
|
||||
m_testnet = testnet;
|
||||
|
||||
boost::filesystem::path folder(m_config_folder);
|
||||
folder /= "lmdb";
|
||||
|
||||
folder /= m_db->get_db_name();
|
||||
|
||||
LOG_PRINT_L0("Loading blockchain from folder " << folder.c_str() << " ...");
|
||||
|
||||
//FIXME: update filename for BlockchainDB
|
||||
const std::string filename = folder.string();
|
||||
try
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue