mirror of
https://github.com/monero-project/monero.git
synced 2024-11-18 00:37:43 +00:00
store is optional during close and defaults to true; except during descruction
This commit is contained in:
parent
1f9058187c
commit
6ee1116d75
5 changed files with 16 additions and 14 deletions
|
@ -303,7 +303,7 @@ WalletImpl::~WalletImpl()
|
|||
// Pause refresh thread - prevents refresh from starting again
|
||||
pauseRefresh();
|
||||
// Close wallet - stores cache and stops ongoing refresh operation
|
||||
close();
|
||||
close(false); // do not store wallet as part of the closing activities
|
||||
// Stop refresh thread
|
||||
stopRefresh();
|
||||
delete m_wallet2Callback;
|
||||
|
@ -566,12 +566,13 @@ bool WalletImpl::recover(const std::string &path, const std::string &seed)
|
|||
return m_status == Status_Ok;
|
||||
}
|
||||
|
||||
bool WalletImpl::close()
|
||||
bool WalletImpl::close(bool store)
|
||||
{
|
||||
|
||||
bool result = false;
|
||||
LOG_PRINT_L1("closing wallet...");
|
||||
try {
|
||||
if (store) {
|
||||
// Do not store wallet with invalid status
|
||||
// Status Critical refers to errors on opening or creating wallets.
|
||||
if (status() != Status_Critical)
|
||||
|
@ -579,6 +580,7 @@ bool WalletImpl::close()
|
|||
else
|
||||
LOG_ERROR("Status_Critical - not storing wallet");
|
||||
LOG_PRINT_L1("wallet::store done");
|
||||
}
|
||||
LOG_PRINT_L1("Calling wallet::stop...");
|
||||
m_wallet->stop();
|
||||
LOG_PRINT_L1("wallet::stop done");
|
||||
|
|
|
@ -63,7 +63,7 @@ public:
|
|||
const std::string &address_string,
|
||||
const std::string &viewkey_string,
|
||||
const std::string &spendkey_string = "");
|
||||
bool close();
|
||||
bool close(bool store = true);
|
||||
std::string seed() const;
|
||||
std::string getSeedLanguage() const;
|
||||
void setSeedLanguage(const std::string &arg);
|
||||
|
|
|
@ -102,10 +102,10 @@ Wallet *WalletManagerImpl::createWalletFromKeys(const std::string &path,
|
|||
return wallet;
|
||||
}
|
||||
|
||||
bool WalletManagerImpl::closeWallet(Wallet *wallet)
|
||||
bool WalletManagerImpl::closeWallet(Wallet *wallet, bool store)
|
||||
{
|
||||
WalletImpl * wallet_ = dynamic_cast<WalletImpl*>(wallet);
|
||||
bool result = wallet_->close();
|
||||
bool result = wallet_->close(store);
|
||||
if (!result) {
|
||||
m_errorString = wallet_->errorString();
|
||||
} else {
|
||||
|
|
|
@ -48,7 +48,7 @@ public:
|
|||
const std::string &addressString,
|
||||
const std::string &viewKeyString,
|
||||
const std::string &spendKeyString = "");
|
||||
virtual bool closeWallet(Wallet *wallet);
|
||||
virtual bool closeWallet(Wallet *wallet, bool store = true);
|
||||
bool walletExists(const std::string &path);
|
||||
bool verifyWalletPassword(const std::string &keys_file_name, const std::string &password, bool watch_only) const;
|
||||
std::vector<std::string> findWallets(const std::string &path);
|
||||
|
|
|
@ -663,7 +663,7 @@ struct WalletManager
|
|||
* \param wallet previously opened / created wallet instance
|
||||
* \return None
|
||||
*/
|
||||
virtual bool closeWallet(Wallet *wallet) = 0;
|
||||
virtual bool closeWallet(Wallet *wallet, bool store = true) = 0;
|
||||
|
||||
/*
|
||||
* ! checks if wallet with the given name already exists
|
||||
|
|
Loading…
Reference in a new issue