MCPcopy Create free account
hub / github.com/ElementsProject/elements / GetBerkeleyEnv

Function GetBerkeleyEnv

src/wallet/bdb.cpp:63–73  ·  view source on GitHub ↗

* @param[in] env_directory Path to environment directory * @return A shared pointer to the BerkeleyEnvironment object for the wallet directory, never empty because ~BerkeleyEnvironment * erases the weak pointer from the g_dbenvs map. * @post A new BerkeleyEnvironment weak pointer is inserted into g_dbenvs if the directory path key was not already in the map. */

Source from the content-addressed store, hash-verified

61 * @post A new BerkeleyEnvironment weak pointer is inserted into g_dbenvs if the directory path key was not already in the map.
62 */
63std::shared_ptr<BerkeleyEnvironment> GetBerkeleyEnv(const fs::path& env_directory)
64{
65 LOCK(cs_db);
66 auto inserted = g_dbenvs.emplace(fs::PathToString(env_directory), std::weak_ptr<BerkeleyEnvironment>());
67 if (inserted.second) {
68 auto env = std::make_shared<BerkeleyEnvironment>(env_directory);
69 inserted.first->second = env;
70 return env;
71 }
72 return inserted.first->second.lock();
73}
74
75//
76// BerkeleyBatch

Callers 2

MakeBerkeleyDatabaseFunction · 0.85
GetWalletEnvFunction · 0.85

Calls 2

PathToStringFunction · 0.85
lockMethod · 0.80

Tested by 1

GetWalletEnvFunction · 0.68