defined Wallet2ListenerAdapter

This commit is contained in:
woodser
2019-05-28 16:23:49 -04:00
parent dbb2e9658a
commit f092175e09
2 changed files with 26 additions and 2 deletions
+24 -1
View File
@@ -128,9 +128,32 @@ uint64_t MoneroWallet::getRestoreHeight() const {
return wallet2->get_refresh_from_block_height();
}
/**
* Adapts wallet2 notifications to a public listener.
*/
struct Wallet2ListenerAdapter : public tools::i_wallet2_callback {
Wallet2ListenerAdapter(MoneroWalletListener* listener) {
this->listener = listener;
}
~Wallet2ListenerAdapter() {
}
virtual void on_new_block(uint64_t height, const cryptonote::block& block) {
cout << "Wallet2ListenerAdapter.on_new_block()" << endl;
throw runtime_error("Not implemented");
}
MoneroWalletListener* listener;
};
void MoneroWallet::setListener(MoneroWalletListener* listener) {
cout << "setListener()" << endl;
throw runtime_error("Not implemented");
this->listener = listener;
if (!listener) wallet2->callback(nullptr);
else wallet2->callback(new Wallet2ListenerAdapter(listener)); // TODO: is this memory leak when adapter is re-set?
}
MoneroSyncResult MoneroWallet::sync() {
+2 -1
View File
@@ -251,6 +251,7 @@ namespace monero {
// --------------------------------- PRIVATE --------------------------------
private:
tools::wallet2* wallet2; // internal wallet implementation
tools::wallet2* wallet2; // internal wallet implementation
MoneroWalletListener* listener; // wallet's assigned listener
};
}