add CReserveScript to allow modular script keeping/returning

- use one CReserveScript per mining thread
This commit is contained in:
Jonas Schnelli
2015-07-01 08:32:30 +02:00
parent 087e65def9
commit 5496253966
6 changed files with 42 additions and 23 deletions

View File

@@ -7,10 +7,11 @@
#define BITCOIN_VALIDATIONINTERFACE_H
#include <boost/signals2/signal.hpp>
#include <boost/shared_ptr.hpp>
class CBlock;
struct CBlockLocator;
class CScript;
class CReserveScript;
class CTransaction;
class CValidationInterface;
class CValidationState;
@@ -35,7 +36,7 @@ protected:
virtual void Inventory(const uint256 &hash) {}
virtual void ResendWalletTransactions(int64_t nBestBlockTime) {}
virtual void BlockChecked(const CBlock&, const CValidationState&) {}
virtual void GetScriptForMining(CScript &script) {};
virtual void GetScriptForMining(boost::shared_ptr<CReserveScript>&) {};
virtual void UpdateRequestCount(const CBlock&) {};
friend void ::RegisterValidationInterface(CValidationInterface*);
friend void ::UnregisterValidationInterface(CValidationInterface*);
@@ -56,7 +57,7 @@ struct CMainSignals {
/** Notifies listeners of a block validation result */
boost::signals2::signal<void (const CBlock&, const CValidationState&)> BlockChecked;
/** Notifies listeners that a key for mining is required (coinbase) */
boost::signals2::signal<void (CScript &script)> ScriptForMining;
boost::signals2::signal<void (boost::shared_ptr<CReserveScript>&)> ScriptForMining;
/** Notifies listeners that a block has been successfully mined */
boost::signals2::signal<void (const CBlock&)> BlockFound;
};