PRCYCoin  2.0.0.7rc1
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 CReserveScript;
16 class CTransaction;
18 class CValidationState;
19 class uint256;
20 
21 // These functions dispatch to one or all registered wallets
22 
30 void SyncWithWallets(const CTransaction& tx, const CBlock* pblock);
31 
33 protected:
34  virtual void UpdatedBlockTip(const CBlockIndex *pindex) {}
35  virtual void SyncTransaction(const CTransaction &tx, const CBlock *pblock) {}
36  virtual bool EraseFromWallet(const uint256 &hash) {}
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 // XX42 virtual void ResendWalletTransactions(int64_t nBestBlockTime) {}
42  virtual void ResendWalletTransactions() {}
43  virtual void BlockChecked(const CBlock&, const CValidationState&) {}
44 // XX42 virtual void GetScriptForMining(boost::shared_ptr<CReserveScript>&) {};
45  virtual void ResetRequestCount(const uint256 &hash) {};
49 };
50 
51 struct CMainSignals {
53  boost::signals2::signal<void (const CBlockIndex *)> UpdatedBlockTip;
55  boost::signals2::signal<void (const CTransaction &, const CBlock *)> SyncTransaction;
57  boost::signals2::signal<void (const CTransaction &)> NotifyTransactionLock;
59  boost::signals2::signal<bool (const uint256 &)> UpdatedTransaction;
61  boost::signals2::signal<void (const CBlockLocator &)> SetBestChain;
63  boost::signals2::signal<void (const uint256 &)> Inventory;
65 // XX42 oost::signals2::signal<void (int64_t nBestBlockTime)> Broadcast;
66  boost::signals2::signal<void ()> Broadcast;
68  boost::signals2::signal<void (const CBlock&, const CValidationState&)> BlockChecked;
70 // XX42 boost::signals2::signal<void (boost::shared_ptr<CReserveScript>&)> ScriptForMining;
72  boost::signals2::signal<void (const uint256 &)> BlockFound;
73 };
74 
76 
77 #endif // BITCOIN_VALIDATIONINTERFACE_H
CValidationInterface
Definition: validationinterface.h:32
CValidationInterface::EraseFromWallet
virtual bool EraseFromWallet(const uint256 &hash)
Definition: validationinterface.h:36
CMainSignals
Definition: validationinterface.h:51
CMainSignals::UpdatedTransaction
boost::signals2::signal< bool(const uint256 &)> UpdatedTransaction
Notifies listeners of an updated transaction without new data (for now: a coinbase potentially becomi...
Definition: validationinterface.h:59
CValidationInterface::ResetRequestCount
virtual void ResetRequestCount(const uint256 &hash)
Definition: validationinterface.h:45
CMainSignals::SyncTransaction
boost::signals2::signal< void(const CTransaction &, const CBlock *)> SyncTransaction
Notifies listeners of updated transaction data (transaction, and optionally the block it is found in.
Definition: validationinterface.h:55
CMainSignals::UpdatedBlockTip
boost::signals2::signal< void(const CBlockIndex *)> UpdatedBlockTip
Notifies listeners of updated block chain tip.
Definition: validationinterface.h:53
CValidationInterface::ResendWalletTransactions
virtual void ResendWalletTransactions()
Definition: validationinterface.h:42
CValidationInterface::NotifyTransactionLock
virtual void NotifyTransactionLock(const CTransaction &tx)
Definition: validationinterface.h:37
CTransaction
The basic transaction that is broadcasted on the network and contained in blocks.
Definition: transaction.h:269
CMainSignals::Broadcast
boost::signals2::signal< void()> Broadcast
Tells listeners to broadcast their data.
Definition: validationinterface.h:66
CValidationInterface::UpdatedTransaction
virtual bool UpdatedTransaction(const uint256 &hash)
Definition: validationinterface.h:39
CValidationInterface::Inventory
virtual void Inventory(const uint256 &hash)
Definition: validationinterface.h:40
CMainSignals::Inventory
boost::signals2::signal< void(const uint256 &)> Inventory
Notifies listeners about an inventory item being seen on the network.
Definition: validationinterface.h:63
RegisterValidationInterface
void RegisterValidationInterface(CValidationInterface *pwalletIn)
Register a wallet to receive updates from core.
Definition: validationinterface.cpp:15
CMainSignals::SetBestChain
boost::signals2::signal< void(const CBlockLocator &)> SetBestChain
Notifies listeners of a new active block chain.
Definition: validationinterface.h:61
uint256
256-bit unsigned big integer.
Definition: uint256.h:38
GetMainSignals
CMainSignals & GetMainSignals()
Definition: validationinterface.cpp:10
CMainSignals::BlockChecked
boost::signals2::signal< void(const CBlock &, const CValidationState &)> BlockChecked
Notifies listeners of a block validation result.
Definition: validationinterface.h:68
SyncWithWallets
void SyncWithWallets(const CTransaction &tx, const CBlock *pblock)
Push an updated transaction to all registered wallets.
Definition: validationinterface.cpp:54
CValidationInterface::SetBestChain
virtual void SetBestChain(const CBlockLocator &locator)
Definition: validationinterface.h:38
CBlock
Definition: block.h:142
CMainSignals::BlockFound
boost::signals2::signal< void(const uint256 &)> BlockFound
Notifies listeners that a key for mining is required (coinbase)
Definition: validationinterface.h:72
UnregisterAllValidationInterfaces
void UnregisterAllValidationInterfaces()
Unregister all wallets from core.
Definition: validationinterface.cpp:41
CValidationInterface::SyncTransaction
virtual void SyncTransaction(const CTransaction &tx, const CBlock *pblock)
Definition: validationinterface.h:35
CValidationInterface::BlockChecked
virtual void BlockChecked(const CBlock &, const CValidationState &)
Definition: validationinterface.h:43
CMainSignals::NotifyTransactionLock
boost::signals2::signal< void(const CTransaction &)> NotifyTransactionLock
Notifies listeners of an updated transaction lock without new data.
Definition: validationinterface.h:57
CValidationInterface::UpdatedBlockTip
virtual void UpdatedBlockTip(const CBlockIndex *pindex)
Definition: validationinterface.h:34
CBlockLocator
Describes a place in the block chain to another node such that if the other node doesn't have the sam...
Definition: block.h:249
CBlockIndex
The block chain is a tree shaped structure starting with the genesis block at the root,...
Definition: chain.h:162
UnregisterValidationInterface
void UnregisterValidationInterface(CValidationInterface *pwalletIn)
Unregister a wallet from core.
Definition: validationinterface.cpp:28
CValidationState
Capture information about block/transaction validation.
Definition: validation.h:23