mirror of
https://git.wownero.com/wownero/wownero.git
synced 2024-08-15 01:03:23 +00:00
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
5 changed files with 20 additions and 3 deletions
|
@ -71,7 +71,11 @@ int main(int argc, char* argv[])
|
||||||
|
|
||||||
blockchain = new BlockchainLMDB();
|
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)
|
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)
|
// get all files used by this db (if any)
|
||||||
virtual std::vector<std::string> get_filenames() const = 0;
|
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
|
// FIXME: these are just for functionality mocking, need to implement
|
||||||
// RAII-friendly and multi-read one-write friendly locking mechanism
|
// RAII-friendly and multi-read one-write friendly locking mechanism
|
||||||
|
|
|
@ -775,6 +775,13 @@ std::vector<std::string> BlockchainLMDB::get_filenames() const
|
||||||
return filenames;
|
return filenames;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string BlockchainLMDB::get_db_name() const
|
||||||
|
{
|
||||||
|
LOG_PRINT_L3("BlockchainLMDB::" << __func__);
|
||||||
|
|
||||||
|
return std::string("lmdb");
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: this?
|
// TODO: this?
|
||||||
bool BlockchainLMDB::lock()
|
bool BlockchainLMDB::lock()
|
||||||
{
|
{
|
||||||
|
|
|
@ -126,6 +126,8 @@ public:
|
||||||
|
|
||||||
virtual std::vector<std::string> get_filenames() const;
|
virtual std::vector<std::string> get_filenames() const;
|
||||||
|
|
||||||
|
virtual std::string get_db_name() const;
|
||||||
|
|
||||||
virtual bool lock();
|
virtual bool lock();
|
||||||
|
|
||||||
virtual void unlock();
|
virtual void unlock();
|
||||||
|
|
|
@ -231,17 +231,18 @@ bool Blockchain::init(const std::string& config_folder, bool testnet)
|
||||||
LOG_PRINT_L3("Blockchain::" << __func__);
|
LOG_PRINT_L3("Blockchain::" << __func__);
|
||||||
CRITICAL_REGION_LOCAL(m_blockchain_lock);
|
CRITICAL_REGION_LOCAL(m_blockchain_lock);
|
||||||
|
|
||||||
|
// TODO: make this configurable
|
||||||
m_db = new BlockchainLMDB();
|
m_db = new BlockchainLMDB();
|
||||||
|
|
||||||
m_config_folder = config_folder;
|
m_config_folder = config_folder;
|
||||||
m_testnet = testnet;
|
m_testnet = testnet;
|
||||||
|
|
||||||
boost::filesystem::path folder(m_config_folder);
|
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() << " ...");
|
LOG_PRINT_L0("Loading blockchain from folder " << folder.c_str() << " ...");
|
||||||
|
|
||||||
//FIXME: update filename for BlockchainDB
|
|
||||||
const std::string filename = folder.string();
|
const std::string filename = folder.string();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue