wallet: Add WalletLocation utility class

This commit is contained in:
João Barbosa 2018-09-28 12:50:04 +01:00
parent 613fc95ee4
commit 01a4c095c8
2 changed files with 31 additions and 0 deletions

View file

@ -75,3 +75,14 @@ std::vector<fs::path> ListWalletDir()
return paths; 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;
}

View file

@ -15,4 +15,24 @@ fs::path GetWalletDir();
//! Get wallets in wallet directory. //! Get wallets in wallet directory.
std::vector<fs::path> ListWalletDir(); 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 #endif // BITCOIN_WALLET_WALLETUTIL_H