diff options
| author | João Barbosa <[email protected]> | 2018-09-28 12:50:04 +0100 |
|---|---|---|
| committer | João Barbosa <[email protected]> | 2018-10-25 11:53:17 +0100 |
| commit | 01a4c095c87500650663341533f000c6b613e9da (patch) | |
| tree | b559b0826ae96da3b93c12b5940e14cb6ea2d4b0 | |
| parent | Merge #14559: appveyor: Enable multiwallet tests (diff) | |
| download | discoin-01a4c095c87500650663341533f000c6b613e9da.tar.xz discoin-01a4c095c87500650663341533f000c6b613e9da.zip | |
wallet: Add WalletLocation utility class
| -rw-r--r-- | src/wallet/walletutil.cpp | 11 | ||||
| -rw-r--r-- | src/wallet/walletutil.h | 20 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/wallet/walletutil.cpp b/src/wallet/walletutil.cpp index c0c9afe13..5d236d73e 100644 --- a/src/wallet/walletutil.cpp +++ b/src/wallet/walletutil.cpp @@ -75,3 +75,14 @@ std::vector<fs::path> ListWalletDir() return paths; } + +WalletLocation::WalletLocation(const std::string& name) + : m_name(name) + , m_path(fs::absolute(name, GetWalletDir())) +{ +} + +bool WalletLocation::Exists() const +{ + return fs::symlink_status(m_path).type() != fs::file_not_found; +} diff --git a/src/wallet/walletutil.h b/src/wallet/walletutil.h index 77f5ca428..ba2f91384 100644 --- a/src/wallet/walletutil.h +++ b/src/wallet/walletutil.h @@ -15,4 +15,24 @@ fs::path GetWalletDir(); //! Get wallets in wallet directory. std::vector<fs::path> ListWalletDir(); +//! The WalletLocation class provides wallet information. +class WalletLocation final +{ + std::string m_name; + fs::path m_path; + +public: + explicit WalletLocation() {} + explicit WalletLocation(const std::string& name); + + //! Get wallet name. + const std::string& GetName() const { return m_name; } + + //! Get wallet absolute path. + const fs::path& GetPath() const { return m_path; } + + //! Return whether the wallet exists. + bool Exists() const; +}; + #endif // BITCOIN_WALLET_WALLETUTIL_H |