diff options
author | TheCharlatan <seb.kung@gmail.com> | 2023-07-13 21:17:45 +0200 |
---|---|---|
committer | TheCharlatan <seb.kung@gmail.com> | 2023-08-01 22:14:15 +0200 |
commit | afc534df9adbf5599b286b5dc3531a4b9ac2d056 (patch) | |
tree | 6a4c255643b3dfe01d641dc2a7776564b84af531 /src | |
parent | 42a9110899a9020417f0397456168aea6ac6ade9 (diff) | |
download | bitcoin-afc534df9adbf5599b286b5dc3531a4b9ac2d056.tar.xz |
refactor: Wrap DestroyDB in dbwrapper helper
Wrap leveldb::DestroyDB in a helper function without exposing
leveldb-specifics.
Also, add missing optional include.
The context of this commit is an effort to decouple the dbwrapper header
file from leveldb includes. To this end, the includes are moved to the
dbwrapper implementation file. This is done as part of the kernel
project to reduce the number of required includes for users of the
kernel.
Diffstat (limited to 'src')
-rw-r--r-- | src/dbwrapper.cpp | 5 | ||||
-rw-r--r-- | src/dbwrapper.h | 9 | ||||
-rw-r--r-- | src/validation.cpp | 2 |
3 files changed, 10 insertions, 6 deletions
diff --git a/src/dbwrapper.cpp b/src/dbwrapper.cpp index 2aade14ef4..05d24f7507 100644 --- a/src/dbwrapper.cpp +++ b/src/dbwrapper.cpp @@ -27,6 +27,11 @@ #include <memory> #include <optional> +bool DestroyDB(const std::string& path_str) +{ + return leveldb::DestroyDB(path_str, {}).ok(); +} + class CBitcoinLevelDBLogger : public leveldb::Logger { public: // This code is adapted from posix_logger.h, which is why it is using vsprintf. diff --git a/src/dbwrapper.h b/src/dbwrapper.h index 4ae2106211..478b73d56f 100644 --- a/src/dbwrapper.h +++ b/src/dbwrapper.h @@ -21,6 +21,7 @@ #include <leveldb/slice.h> #include <leveldb/status.h> #include <leveldb/write_batch.h> +#include <optional> #include <stdexcept> #include <string> #include <vector> @@ -64,10 +65,6 @@ public: class CDBWrapper; -namespace dbwrapper { - using leveldb::DestroyDB; -} - /** These should be considered an implementation detail of the specific database. */ namespace dbwrapper_private { @@ -82,7 +79,9 @@ void HandleError(const leveldb::Status& status); */ const std::vector<unsigned char>& GetObfuscateKey(const CDBWrapper &w); -}; +}; // namespace dbwrapper_private + +bool DestroyDB(const std::string& path_str); /** Batch of changes queued to be written to a CDBWrapper */ class CDBBatch diff --git a/src/validation.cpp b/src/validation.cpp index e6def01db5..e4b5381f00 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -5027,7 +5027,7 @@ static bool DeleteCoinsDBFromDisk(const fs::path db_path, bool is_snapshot) // We have to destruct before this call leveldb::DB in order to release the db // lock, otherwise `DestroyDB` will fail. See `leveldb::~DBImpl()`. - const bool destroyed = dbwrapper::DestroyDB(path_str, {}).ok(); + const bool destroyed = DestroyDB(path_str); if (!destroyed) { LogPrintf("error: leveldb DestroyDB call failed on %s\n", path_str); |