diff --git a/src/validationinterface.h b/src/validationinterface.h --- a/src/validationinterface.h +++ b/src/validationinterface.h @@ -6,8 +6,8 @@ #ifndef BITCOIN_VALIDATIONINTERFACE_H #define BITCOIN_VALIDATIONINTERFACE_H -#include #include +#include #include class CBlock; @@ -24,63 +24,86 @@ // These functions dispatch to one or all registered wallets /** Register a wallet to receive updates from core */ -void RegisterValidationInterface(CValidationInterface* pwalletIn); +void RegisterValidationInterface(CValidationInterface *pwalletIn); /** Unregister a wallet from core */ -void UnregisterValidationInterface(CValidationInterface* pwalletIn); +void UnregisterValidationInterface(CValidationInterface *pwalletIn); /** Unregister all wallets from core */ void UnregisterAllValidationInterfaces(); class CValidationInterface { protected: - virtual void UpdatedBlockTip(const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload) {} - virtual void SyncTransaction(const CTransaction &tx, const CBlockIndex *pindex, int posInBlock) {} + virtual void UpdatedBlockTip(const CBlockIndex *pindexNew, + const CBlockIndex *pindexFork, + bool fInitialDownload) {} + virtual void SyncTransaction(const CTransaction &tx, + const CBlockIndex *pindex, int posInBlock) {} virtual void SetBestChain(const CBlockLocator &locator) {} virtual void UpdatedTransaction(const uint256 &hash) {} virtual void Inventory(const uint256 &hash) {} - virtual void ResendWalletTransactions(int64_t nBestBlockTime, CConnman* connman) {} - virtual void BlockChecked(const CBlock&, const CValidationState&) {} - virtual void GetScriptForMining(boost::shared_ptr&) {}; - virtual void ResetRequestCount(const uint256 &hash) {}; - virtual void NewPoWValidBlock(const CBlockIndex *pindex, const std::shared_ptr& block) {}; - friend void ::RegisterValidationInterface(CValidationInterface*); - friend void ::UnregisterValidationInterface(CValidationInterface*); + virtual void ResendWalletTransactions(int64_t nBestBlockTime, + CConnman *connman) {} + virtual void BlockChecked(const CBlock &, const CValidationState &) {} + virtual void GetScriptForMining(boost::shared_ptr &){}; + virtual void ResetRequestCount(const uint256 &hash){}; + virtual void NewPoWValidBlock(const CBlockIndex *pindex, + const std::shared_ptr &block){}; + friend void ::RegisterValidationInterface(CValidationInterface *); + friend void ::UnregisterValidationInterface(CValidationInterface *); friend void ::UnregisterAllValidationInterfaces(); }; struct CMainSignals { /** Notifies listeners of updated block chain tip */ - boost::signals2::signal UpdatedBlockTip; - /** A posInBlock value for SyncTransaction calls for tranactions not - * included in connected blocks such as transactions removed from mempool, - * accepted to mempool or appearing in disconnected blocks.*/ + boost::signals2::signal + UpdatedBlockTip; + /** + * A posInBlock value for SyncTransaction calls for tranactions not included + * in connected blocks such as transactions removed from mempool, accepted + * to mempool or appearing in disconnected blocks. + */ static const int SYNC_TRANSACTION_NOT_IN_BLOCK = -1; - /** Notifies listeners of updated transaction data (transaction, and + /** + * Notifies listeners of updated transaction data (transaction, and * optionally the block it is found in). Called with block data when * transaction is included in a connected block, and without block data when * transaction was accepted to mempool, removed from mempool (only when * removal was due to conflict from connected block), or appeared in a - * disconnected block.*/ - boost::signals2::signal SyncTransaction; - /** Notifies listeners of an updated transaction without new data (for now: a coinbase potentially becoming visible). */ - boost::signals2::signal UpdatedTransaction; + * disconnected block. + */ + boost::signals2::signal + SyncTransaction; + /** + * Notifies listeners of an updated transaction without new data (for now: a + * coinbase potentially becoming visible). + */ + boost::signals2::signal UpdatedTransaction; /** Notifies listeners of a new active block chain. */ - boost::signals2::signal SetBestChain; + boost::signals2::signal SetBestChain; /** Notifies listeners about an inventory item being seen on the network. */ - boost::signals2::signal Inventory; + boost::signals2::signal Inventory; /** Tells listeners to broadcast their data. */ - boost::signals2::signal Broadcast; + boost::signals2::signal + Broadcast; /** Notifies listeners of a block validation result */ - boost::signals2::signal BlockChecked; + boost::signals2::signal + BlockChecked; /** Notifies listeners that a key for mining is required (coinbase) */ - boost::signals2::signal&)> ScriptForMining; + boost::signals2::signal &)> + ScriptForMining; /** Notifies listeners that a block has been successfully mined */ - boost::signals2::signal BlockFound; + boost::signals2::signal BlockFound; /** * Notifies listeners that a block which builds directly on our current tip - * has been received and connected to the headers tree, though not validated yet */ - boost::signals2::signal&)> NewPoWValidBlock; + * has been received and connected to the headers tree, though not validated + * yet. + */ + boost::signals2::signal &)> + NewPoWValidBlock; }; -CMainSignals& GetMainSignals(); +CMainSignals &GetMainSignals(); #endif // BITCOIN_VALIDATIONINTERFACE_H diff --git a/src/validationinterface.cpp b/src/validationinterface.cpp --- a/src/validationinterface.cpp +++ b/src/validationinterface.cpp @@ -7,35 +7,54 @@ static CMainSignals g_signals; -CMainSignals& GetMainSignals() -{ +CMainSignals &GetMainSignals() { return g_signals; } -void RegisterValidationInterface(CValidationInterface* pwalletIn) { - g_signals.UpdatedBlockTip.connect(boost::bind(&CValidationInterface::UpdatedBlockTip, pwalletIn, _1, _2, _3)); - g_signals.SyncTransaction.connect(boost::bind(&CValidationInterface::SyncTransaction, pwalletIn, _1, _2, _3)); - g_signals.UpdatedTransaction.connect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, _1)); - g_signals.SetBestChain.connect(boost::bind(&CValidationInterface::SetBestChain, pwalletIn, _1)); - g_signals.Inventory.connect(boost::bind(&CValidationInterface::Inventory, pwalletIn, _1)); - g_signals.Broadcast.connect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, _1, _2)); - g_signals.BlockChecked.connect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2)); - g_signals.ScriptForMining.connect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1)); - g_signals.BlockFound.connect(boost::bind(&CValidationInterface::ResetRequestCount, pwalletIn, _1)); - g_signals.NewPoWValidBlock.connect(boost::bind(&CValidationInterface::NewPoWValidBlock, pwalletIn, _1, _2)); +void RegisterValidationInterface(CValidationInterface *pwalletIn) { + g_signals.UpdatedBlockTip.connect(boost::bind( + &CValidationInterface::UpdatedBlockTip, pwalletIn, _1, _2, _3)); + g_signals.SyncTransaction.connect(boost::bind( + &CValidationInterface::SyncTransaction, pwalletIn, _1, _2, _3)); + g_signals.UpdatedTransaction.connect( + boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, _1)); + g_signals.SetBestChain.connect( + boost::bind(&CValidationInterface::SetBestChain, pwalletIn, _1)); + g_signals.Inventory.connect( + boost::bind(&CValidationInterface::Inventory, pwalletIn, _1)); + g_signals.Broadcast.connect(boost::bind( + &CValidationInterface::ResendWalletTransactions, pwalletIn, _1, _2)); + g_signals.BlockChecked.connect( + boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2)); + g_signals.ScriptForMining.connect( + boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1)); + g_signals.BlockFound.connect( + boost::bind(&CValidationInterface::ResetRequestCount, pwalletIn, _1)); + g_signals.NewPoWValidBlock.connect(boost::bind( + &CValidationInterface::NewPoWValidBlock, pwalletIn, _1, _2)); } -void UnregisterValidationInterface(CValidationInterface* pwalletIn) { - g_signals.BlockFound.disconnect(boost::bind(&CValidationInterface::ResetRequestCount, pwalletIn, _1)); - g_signals.ScriptForMining.disconnect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1)); - g_signals.BlockChecked.disconnect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2)); - g_signals.Broadcast.disconnect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, _1, _2)); - g_signals.Inventory.disconnect(boost::bind(&CValidationInterface::Inventory, pwalletIn, _1)); - g_signals.SetBestChain.disconnect(boost::bind(&CValidationInterface::SetBestChain, pwalletIn, _1)); - g_signals.UpdatedTransaction.disconnect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, _1)); - g_signals.SyncTransaction.disconnect(boost::bind(&CValidationInterface::SyncTransaction, pwalletIn, _1, _2, _3)); - g_signals.UpdatedBlockTip.disconnect(boost::bind(&CValidationInterface::UpdatedBlockTip, pwalletIn, _1, _2, _3)); - g_signals.NewPoWValidBlock.disconnect(boost::bind(&CValidationInterface::NewPoWValidBlock, pwalletIn, _1, _2)); +void UnregisterValidationInterface(CValidationInterface *pwalletIn) { + g_signals.BlockFound.disconnect( + boost::bind(&CValidationInterface::ResetRequestCount, pwalletIn, _1)); + g_signals.ScriptForMining.disconnect( + boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1)); + g_signals.BlockChecked.disconnect( + boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2)); + g_signals.Broadcast.disconnect(boost::bind( + &CValidationInterface::ResendWalletTransactions, pwalletIn, _1, _2)); + g_signals.Inventory.disconnect( + boost::bind(&CValidationInterface::Inventory, pwalletIn, _1)); + g_signals.SetBestChain.disconnect( + boost::bind(&CValidationInterface::SetBestChain, pwalletIn, _1)); + g_signals.UpdatedTransaction.disconnect( + boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, _1)); + g_signals.SyncTransaction.disconnect(boost::bind( + &CValidationInterface::SyncTransaction, pwalletIn, _1, _2, _3)); + g_signals.UpdatedBlockTip.disconnect(boost::bind( + &CValidationInterface::UpdatedBlockTip, pwalletIn, _1, _2, _3)); + g_signals.NewPoWValidBlock.disconnect(boost::bind( + &CValidationInterface::NewPoWValidBlock, pwalletIn, _1, _2)); } void UnregisterAllValidationInterfaces() {