aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/db.h
diff options
context:
space:
mode:
authorRussell Yanofsky <russ@yanofsky.org>2020-08-04 16:40:31 -0400
committerRussell Yanofsky <russ@yanofsky.org>2020-09-03 12:24:32 -0400
commitb5b414151af32e5a07b5757b64482d77519d77c0 (patch)
treec6149426f3c4e7c72507db59d59b62d2ecb774b6 /src/wallet/db.h
parent288b4ffb6b291f0466d513ff3c40af6758ca7c88 (diff)
downloadbitcoin-b5b414151af32e5a07b5757b64482d77519d77c0.tar.xz
wallet: Add MakeDatabase function
New function is not currently called but will be called in upcoming commits. It moves database path checking, and existence checking, and already-loaded checking, and verification into a single function so this logic does not need to be repeated all over higher level wallet code, and so higher level code does not need to change when SQLite support is added in https://github.com/bitcoin/bitcoin/pull/19077. This also lets higher level wallet code make fewer assumptions about the contents of wallet directories. This commit just adds the new function and does not change behavior in any way.
Diffstat (limited to 'src/wallet/db.h')
-rw-r--r--src/wallet/db.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/wallet/db.h b/src/wallet/db.h
index 0afaba5fd1..f0f6f03c43 100644
--- a/src/wallet/db.h
+++ b/src/wallet/db.h
@@ -195,4 +195,26 @@ public:
std::unique_ptr<DatabaseBatch> MakeBatch(const char* mode = "r+", bool flush_on_close = true) override { return MakeUnique<DummyBatch>(); }
};
+enum class DatabaseFormat {
+ BERKELEY,
+};
+
+struct DatabaseOptions {
+ bool require_existing = false;
+ bool require_create = false;
+ bool verify = true;
+};
+
+enum class DatabaseStatus {
+ SUCCESS,
+ FAILED_BAD_PATH,
+ FAILED_BAD_FORMAT,
+ FAILED_ALREADY_LOADED,
+ FAILED_ALREADY_EXISTS,
+ FAILED_NOT_FOUND,
+ FAILED_VERIFY,
+};
+
+std::unique_ptr<WalletDatabase> MakeDatabase(const fs::path& path, const DatabaseOptions& options, DatabaseStatus& status, bilingual_str& error);
+
#endif // BITCOIN_WALLET_DB_H