From afc534df9adbf5599b286b5dc3531a4b9ac2d056 Mon Sep 17 00:00:00 2001 From: TheCharlatan Date: Thu, 13 Jul 2023 21:17:45 +0200 Subject: [PATCH] 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. --- src/dbwrapper.cpp | 5 +++++ src/dbwrapper.h | 9 ++++----- 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 #include +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 #include #include +#include #include #include #include @@ -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& 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);