merge() functions are virtual to enable polymorphism

This commit is contained in:
woodser
2019-07-03 17:07:49 -04:00
parent b3ea78ac62
commit c019a0c36b
4 changed files with 15 additions and 10 deletions
+5 -5
View File
@@ -74,6 +74,11 @@ namespace monero {
return !incomingTransfers.empty();
}
void MoneroTxWallet::merge(const shared_ptr<MoneroTx>& self, const shared_ptr<MoneroTx>& other) {
cout << "MoneroTxWallet::merge(MoneroTx&, MoneroTx&)" << endl;
merge(static_pointer_cast<MoneroTxWallet>(self), static_pointer_cast<MoneroTxWallet>(other));
}
void MoneroTxWallet::merge(const shared_ptr<MoneroTxWallet>& self, const shared_ptr<MoneroTxWallet>& other) {
cout << "MoneroTxWallet::merge()" << endl;
if (this != self.get()) throw runtime_error("this != self");
@@ -382,11 +387,6 @@ namespace monero {
return node;
}
void MoneroOutputWallet::merge(const shared_ptr<MoneroOutputWallet>& self, const shared_ptr<MoneroOutputWallet>& other) {
cout << "MoneroOutputWallet::merge()" << endl;
throw runtime_error("not implemented");
}
// ------------------------ MONERO OUTPUT REQUEST ---------------------------
boost::property_tree::ptree MoneroOutputRequest::toPropertyTree() const {
+2 -2
View File
@@ -102,7 +102,7 @@ namespace monero {
return !(*getIsIncoming());
}
boost::property_tree::ptree toPropertyTree() const;
void merge(const shared_ptr<MoneroTransfer>& self, const shared_ptr<MoneroTransfer>& other);
virtual void merge(const shared_ptr<MoneroTransfer>& self, const shared_ptr<MoneroTransfer>& other);
};
/**
@@ -161,7 +161,6 @@ namespace monero {
boost::optional<bool> isFrozen;
boost::property_tree::ptree toPropertyTree() const;
void merge(const shared_ptr<MoneroOutputWallet>& self, const shared_ptr<MoneroOutputWallet>& other);
};
/**
@@ -189,6 +188,7 @@ namespace monero {
bool getIsIncoming() const;
bool getIsOutgoing() const;
boost::property_tree::ptree toPropertyTree() const;
void merge(const shared_ptr<MoneroTx>& self, const shared_ptr<MoneroTx>& other);
void merge(const shared_ptr<MoneroTxWallet>& self, const shared_ptr<MoneroTxWallet>& other);
};