Changeset View
Changeset View
Standalone View
Standalone View
src/validationinterface.h
// Copyright (c) 2009-2010 Satoshi Nakamoto | // Copyright (c) 2009-2010 Satoshi Nakamoto | ||||
// Copyright (c) 2009-2016 The Bitcoin Core developers | // Copyright (c) 2009-2016 The Bitcoin Core developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
#ifndef BITCOIN_VALIDATIONINTERFACE_H | #ifndef BITCOIN_VALIDATIONINTERFACE_H | ||||
#define BITCOIN_VALIDATIONINTERFACE_H | #define BITCOIN_VALIDATIONINTERFACE_H | ||||
#include <boost/shared_ptr.hpp> | |||||
#include <boost/signals2/signal.hpp> | |||||
#include <memory> | #include <memory> | ||||
#include <boost/signals2/signal.hpp> | |||||
class CBlock; | class CBlock; | ||||
class CBlockIndex; | class CBlockIndex; | ||||
struct CBlockLocator; | struct CBlockLocator; | ||||
class CBlockIndex; | class CBlockIndex; | ||||
class CConnman; | class CConnman; | ||||
class CReserveScript; | class CReserveScript; | ||||
class CTransaction; | class CTransaction; | ||||
class CValidationInterface; | class CValidationInterface; | ||||
Show All 17 Lines | protected: | ||||
virtual void SyncTransaction(const CTransaction &tx, | virtual void SyncTransaction(const CTransaction &tx, | ||||
const CBlockIndex *pindex, int posInBlock) {} | const CBlockIndex *pindex, int posInBlock) {} | ||||
virtual void SetBestChain(const CBlockLocator &locator) {} | virtual void SetBestChain(const CBlockLocator &locator) {} | ||||
virtual void UpdatedTransaction(const uint256 &hash) {} | virtual void UpdatedTransaction(const uint256 &hash) {} | ||||
virtual void Inventory(const uint256 &hash) {} | virtual void Inventory(const uint256 &hash) {} | ||||
virtual void ResendWalletTransactions(int64_t nBestBlockTime, | virtual void ResendWalletTransactions(int64_t nBestBlockTime, | ||||
CConnman *connman) {} | CConnman *connman) {} | ||||
virtual void BlockChecked(const CBlock &, const CValidationState &) {} | virtual void BlockChecked(const CBlock &, const CValidationState &) {} | ||||
virtual void GetScriptForMining(boost::shared_ptr<CReserveScript> &){}; | virtual void GetScriptForMining(std::shared_ptr<CReserveScript> &){}; | ||||
virtual void ResetRequestCount(const uint256 &hash){}; | virtual void ResetRequestCount(const uint256 &hash){}; | ||||
virtual void NewPoWValidBlock(const CBlockIndex *pindex, | virtual void NewPoWValidBlock(const CBlockIndex *pindex, | ||||
const std::shared_ptr<const CBlock> &block){}; | const std::shared_ptr<const CBlock> &block){}; | ||||
friend void ::RegisterValidationInterface(CValidationInterface *); | friend void ::RegisterValidationInterface(CValidationInterface *); | ||||
friend void ::UnregisterValidationInterface(CValidationInterface *); | friend void ::UnregisterValidationInterface(CValidationInterface *); | ||||
friend void ::UnregisterAllValidationInterfaces(); | friend void ::UnregisterAllValidationInterfaces(); | ||||
}; | }; | ||||
Show All 30 Lines | struct CMainSignals { | ||||
boost::signals2::signal<void(const uint256 &)> Inventory; | boost::signals2::signal<void(const uint256 &)> Inventory; | ||||
/** Tells listeners to broadcast their data. */ | /** Tells listeners to broadcast their data. */ | ||||
boost::signals2::signal<void(int64_t nBestBlockTime, CConnman *connman)> | boost::signals2::signal<void(int64_t nBestBlockTime, CConnman *connman)> | ||||
Broadcast; | Broadcast; | ||||
/** Notifies listeners of a block validation result */ | /** Notifies listeners of a block validation result */ | ||||
boost::signals2::signal<void(const CBlock &, const CValidationState &)> | boost::signals2::signal<void(const CBlock &, const CValidationState &)> | ||||
BlockChecked; | BlockChecked; | ||||
/** Notifies listeners that a key for mining is required (coinbase) */ | /** Notifies listeners that a key for mining is required (coinbase) */ | ||||
boost::signals2::signal<void(boost::shared_ptr<CReserveScript> &)> | boost::signals2::signal<void(std::shared_ptr<CReserveScript> &)> | ||||
ScriptForMining; | ScriptForMining; | ||||
/** Notifies listeners that a block has been successfully mined */ | /** Notifies listeners that a block has been successfully mined */ | ||||
boost::signals2::signal<void(const uint256 &)> BlockFound; | boost::signals2::signal<void(const uint256 &)> BlockFound; | ||||
/** | /** | ||||
* Notifies listeners that a block which builds directly on our current tip | * Notifies listeners that a block which builds directly on our current tip | ||||
* has been received and connected to the headers tree, though not validated | * has been received and connected to the headers tree, though not validated | ||||
* yet. | * yet. | ||||
*/ | */ | ||||
boost::signals2::signal<void(const CBlockIndex *, | boost::signals2::signal<void(const CBlockIndex *, | ||||
const std::shared_ptr<const CBlock> &)> | const std::shared_ptr<const CBlock> &)> | ||||
NewPoWValidBlock; | NewPoWValidBlock; | ||||
}; | }; | ||||
CMainSignals &GetMainSignals(); | CMainSignals &GetMainSignals(); | ||||
#endif // BITCOIN_VALIDATIONINTERFACE_H | #endif // BITCOIN_VALIDATIONINTERFACE_H |