aboutsummaryrefslogtreecommitdiff
path: root/src/dbwrapper.h
diff options
context:
space:
mode:
authorJames O'Beirne <james.obeirne@pm.me>2022-02-01 16:22:00 -0500
committerJames O'Beirne <james.obeirne@pm.me>2022-09-13 12:38:06 -0400
commitd14bebf100aaaa25c7558eeed8b5c536da99885f (patch)
treeccebf20faa56670c317a72ff1af1debe9eba7e42 /src/dbwrapper.h
parent29d540b7ada890dd588c4825d40c27c5e6f20061 (diff)
db: add StoragePath to CDBWrapper/CCoinsViewDB
This is used in subsequent commits. It allows us to clean up UTXO snapshot chainstate after background validation completes.
Diffstat (limited to 'src/dbwrapper.h')
-rw-r--r--src/dbwrapper.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/dbwrapper.h b/src/dbwrapper.h
index 665eaa0e98..1052da01d5 100644
--- a/src/dbwrapper.h
+++ b/src/dbwrapper.h
@@ -39,6 +39,10 @@ public:
class CDBWrapper;
+namespace dbwrapper {
+ using leveldb::DestroyDB;
+}
+
/** These should be considered an implementation detail of the specific database.
*/
namespace dbwrapper_private {
@@ -219,6 +223,12 @@ private:
std::vector<unsigned char> CreateObfuscateKey() const;
+ //! path to filesystem storage
+ const fs::path m_path;
+
+ //! whether or not the database resides in memory
+ bool m_is_memory;
+
public:
/**
* @param[in] path Location in the filesystem where leveldb data will be stored.
@@ -268,6 +278,14 @@ public:
return WriteBatch(batch, fSync);
}
+ //! @returns filesystem path to the on-disk data.
+ std::optional<fs::path> StoragePath() {
+ if (m_is_memory) {
+ return {};
+ }
+ return m_path;
+ }
+
template <typename K>
bool Exists(const K& key) const
{