Dash Core  0.12.2.1
P2P Digital Currency
validationinterface.h
Go to the documentation of this file.
1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-2015 The Bitcoin Core developers
3 // Distributed under the MIT software license, see the accompanying
4 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 
6 #ifndef BITCOIN_VALIDATIONINTERFACE_H
7 #define BITCOIN_VALIDATIONINTERFACE_H
8 
9 #include <boost/signals2/signal.hpp>
10 #include <boost/shared_ptr.hpp>
11 
12 class CBlock;
13 struct CBlockLocator;
14 class CBlockIndex;
15 class CConnman;
16 class CReserveScript;
17 class CTransaction;
19 class CValidationState;
20 class uint256;
21 
22 // These functions dispatch to one or all registered wallets
23 
30 
32 protected:
33  virtual void AcceptedBlockHeader(const CBlockIndex *pindexNew) {}
34  virtual void NotifyHeaderTip(const CBlockIndex *pindexNew, bool fInitialDownload) {}
35  virtual void UpdatedBlockTip(const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload) {}
36  virtual void SyncTransaction(const CTransaction &tx, const CBlock *pblock) {}
37  virtual void NotifyTransactionLock(const CTransaction &tx) {}
38  virtual void SetBestChain(const CBlockLocator &locator) {}
39  virtual bool UpdatedTransaction(const uint256 &hash) { return false;}
40  virtual void Inventory(const uint256 &hash) {}
41  virtual void ResendWalletTransactions(int64_t nBestBlockTime, CConnman* connman) {}
42  virtual void BlockChecked(const CBlock&, const CValidationState&) {}
43  virtual void GetScriptForMining(boost::shared_ptr<CReserveScript>&) {};
44  virtual void ResetRequestCount(const uint256 &hash) {};
48 };
49 
50 struct CMainSignals {
52  boost::signals2::signal<void (const CBlockIndex *)> AcceptedBlockHeader;
54  boost::signals2::signal<void (const CBlockIndex *, bool fInitialDownload)> NotifyHeaderTip;
56  boost::signals2::signal<void (const CBlockIndex *, const CBlockIndex *, bool fInitialDownload)> UpdatedBlockTip;
58  boost::signals2::signal<void (const CTransaction &, const CBlock *)> SyncTransaction;
60  boost::signals2::signal<void (const CTransaction &)> NotifyTransactionLock;
62  boost::signals2::signal<bool (const uint256 &)> UpdatedTransaction;
64  boost::signals2::signal<void (const CBlockLocator &)> SetBestChain;
66  boost::signals2::signal<void (const uint256 &)> Inventory;
68  boost::signals2::signal<void (int64_t nBestBlockTime, CConnman* connman)> Broadcast;
70  boost::signals2::signal<void (const CBlock&, const CValidationState&)> BlockChecked;
72  boost::signals2::signal<void (boost::shared_ptr<CReserveScript>&)> ScriptForMining;
74  boost::signals2::signal<void (const uint256 &)> BlockFound;
75 };
76 
78 
79 #endif // BITCOIN_VALIDATIONINTERFACE_H
virtual void ResendWalletTransactions(int64_t nBestBlockTime, CConnman *connman)
boost::signals2::signal< void(boost::shared_ptr< CReserveScript > &)> ScriptForMining
boost::signals2::signal< void(const CTransaction &, const CBlock *)> SyncTransaction
boost::signals2::signal< void(const CTransaction &)> NotifyTransactionLock
virtual void NotifyHeaderTip(const CBlockIndex *pindexNew, bool fInitialDownload)
boost::signals2::signal< void(const CBlockIndex *, bool fInitialDownload)> NotifyHeaderTip
Definition: net.h:108
boost::signals2::signal< void(const uint256 &)> BlockFound
boost::signals2::signal< void(const uint256 &)> Inventory
boost::signals2::signal< bool(const uint256 &)> UpdatedTransaction
boost::signals2::signal< void(int64_t nBestBlockTime, CConnman *connman)> Broadcast
virtual void SyncTransaction(const CTransaction &tx, const CBlock *pblock)
boost::signals2::signal< void(const CBlockLocator &)> SetBestChain
boost::signals2::signal< void(const CBlockIndex *)> AcceptedBlockHeader
void RegisterValidationInterface(CValidationInterface *pwalletIn)
virtual void BlockChecked(const CBlock &, const CValidationState &)
virtual void NotifyTransactionLock(const CTransaction &tx)
CMainSignals & GetMainSignals()
virtual void GetScriptForMining(boost::shared_ptr< CReserveScript > &)
boost::signals2::signal< void(const CBlock &, const CValidationState &)> BlockChecked
virtual void AcceptedBlockHeader(const CBlockIndex *pindexNew)
void UnregisterAllValidationInterfaces()
boost::signals2::signal< void(const CBlockIndex *, const CBlockIndex *, bool fInitialDownload)> UpdatedBlockTip
virtual void ResetRequestCount(const uint256 &hash)
virtual void SetBestChain(const CBlockLocator &locator)
virtual void Inventory(const uint256 &hash)
virtual bool UpdatedTransaction(const uint256 &hash)
Definition: block.h:73
virtual void UpdatedBlockTip(const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload)
void UnregisterValidationInterface(CValidationInterface *pwalletIn)