Changeset View
Changeset View
Standalone View
Standalone View
src/validationinterface.cpp
Show All 27 Lines | boost::signals2::signal<void(const std::shared_ptr<const CBlock> &, | ||||
const CBlockIndex *pindex, | const CBlockIndex *pindex, | ||||
const std::vector<CTransactionRef> &)> | const std::vector<CTransactionRef> &)> | ||||
BlockConnected; | BlockConnected; | ||||
boost::signals2::signal<void(const std::shared_ptr<const CBlock> &)> | boost::signals2::signal<void(const std::shared_ptr<const CBlock> &)> | ||||
BlockDisconnected; | BlockDisconnected; | ||||
boost::signals2::signal<void(const CTransactionRef &)> | boost::signals2::signal<void(const CTransactionRef &)> | ||||
TransactionRemovedFromMempool; | TransactionRemovedFromMempool; | ||||
boost::signals2::signal<void(const CBlockLocator &)> ChainStateFlushed; | boost::signals2::signal<void(const CBlockLocator &)> ChainStateFlushed; | ||||
boost::signals2::signal<void(const uint256 &)> Inventory; | |||||
boost::signals2::signal<void(int64_t nBestBlockTime, CConnman *connman)> | boost::signals2::signal<void(int64_t nBestBlockTime, CConnman *connman)> | ||||
Broadcast; | Broadcast; | ||||
boost::signals2::signal<void(const CBlock &, const CValidationState &)> | boost::signals2::signal<void(const CBlock &, const CValidationState &)> | ||||
BlockChecked; | BlockChecked; | ||||
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; | ||||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | void RegisterValidationInterface(CValidationInterface *pwalletIn) { | ||||
g_signals.m_internals->BlockConnected.connect(boost::bind( | g_signals.m_internals->BlockConnected.connect(boost::bind( | ||||
&CValidationInterface::BlockConnected, pwalletIn, _1, _2, _3)); | &CValidationInterface::BlockConnected, pwalletIn, _1, _2, _3)); | ||||
g_signals.m_internals->BlockDisconnected.connect( | g_signals.m_internals->BlockDisconnected.connect( | ||||
boost::bind(&CValidationInterface::BlockDisconnected, pwalletIn, _1)); | boost::bind(&CValidationInterface::BlockDisconnected, pwalletIn, _1)); | ||||
g_signals.m_internals->TransactionRemovedFromMempool.connect(boost::bind( | g_signals.m_internals->TransactionRemovedFromMempool.connect(boost::bind( | ||||
&CValidationInterface::TransactionRemovedFromMempool, pwalletIn, _1)); | &CValidationInterface::TransactionRemovedFromMempool, pwalletIn, _1)); | ||||
g_signals.m_internals->ChainStateFlushed.connect( | g_signals.m_internals->ChainStateFlushed.connect( | ||||
boost::bind(&CValidationInterface::ChainStateFlushed, pwalletIn, _1)); | boost::bind(&CValidationInterface::ChainStateFlushed, pwalletIn, _1)); | ||||
g_signals.m_internals->Inventory.connect( | |||||
boost::bind(&CValidationInterface::Inventory, pwalletIn, _1)); | |||||
g_signals.m_internals->Broadcast.connect(boost::bind( | g_signals.m_internals->Broadcast.connect(boost::bind( | ||||
&CValidationInterface::ResendWalletTransactions, pwalletIn, _1, _2)); | &CValidationInterface::ResendWalletTransactions, pwalletIn, _1, _2)); | ||||
g_signals.m_internals->BlockChecked.connect( | g_signals.m_internals->BlockChecked.connect( | ||||
boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2)); | boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2)); | ||||
g_signals.m_internals->NewPoWValidBlock.connect(boost::bind( | g_signals.m_internals->NewPoWValidBlock.connect(boost::bind( | ||||
&CValidationInterface::NewPoWValidBlock, pwalletIn, _1, _2)); | &CValidationInterface::NewPoWValidBlock, pwalletIn, _1, _2)); | ||||
} | } | ||||
void UnregisterValidationInterface(CValidationInterface *pwalletIn) { | void UnregisterValidationInterface(CValidationInterface *pwalletIn) { | ||||
g_signals.m_internals->BlockChecked.disconnect( | g_signals.m_internals->BlockChecked.disconnect( | ||||
boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2)); | boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2)); | ||||
g_signals.m_internals->Broadcast.disconnect(boost::bind( | g_signals.m_internals->Broadcast.disconnect(boost::bind( | ||||
&CValidationInterface::ResendWalletTransactions, pwalletIn, _1, _2)); | &CValidationInterface::ResendWalletTransactions, pwalletIn, _1, _2)); | ||||
g_signals.m_internals->Inventory.disconnect( | |||||
boost::bind(&CValidationInterface::Inventory, pwalletIn, _1)); | |||||
g_signals.m_internals->ChainStateFlushed.disconnect( | g_signals.m_internals->ChainStateFlushed.disconnect( | ||||
boost::bind(&CValidationInterface::ChainStateFlushed, pwalletIn, _1)); | boost::bind(&CValidationInterface::ChainStateFlushed, pwalletIn, _1)); | ||||
g_signals.m_internals->TransactionAddedToMempool.disconnect(boost::bind( | g_signals.m_internals->TransactionAddedToMempool.disconnect(boost::bind( | ||||
&CValidationInterface::TransactionAddedToMempool, pwalletIn, _1)); | &CValidationInterface::TransactionAddedToMempool, pwalletIn, _1)); | ||||
g_signals.m_internals->BlockConnected.disconnect(boost::bind( | g_signals.m_internals->BlockConnected.disconnect(boost::bind( | ||||
&CValidationInterface::BlockConnected, pwalletIn, _1, _2, _3)); | &CValidationInterface::BlockConnected, pwalletIn, _1, _2, _3)); | ||||
g_signals.m_internals->BlockDisconnected.disconnect( | g_signals.m_internals->BlockDisconnected.disconnect( | ||||
boost::bind(&CValidationInterface::BlockDisconnected, pwalletIn, _1)); | boost::bind(&CValidationInterface::BlockDisconnected, pwalletIn, _1)); | ||||
g_signals.m_internals->TransactionRemovedFromMempool.disconnect(boost::bind( | g_signals.m_internals->TransactionRemovedFromMempool.disconnect(boost::bind( | ||||
&CValidationInterface::TransactionRemovedFromMempool, pwalletIn, _1)); | &CValidationInterface::TransactionRemovedFromMempool, pwalletIn, _1)); | ||||
g_signals.m_internals->UpdatedBlockTip.disconnect(boost::bind( | g_signals.m_internals->UpdatedBlockTip.disconnect(boost::bind( | ||||
&CValidationInterface::UpdatedBlockTip, pwalletIn, _1, _2, _3)); | &CValidationInterface::UpdatedBlockTip, pwalletIn, _1, _2, _3)); | ||||
g_signals.m_internals->NewPoWValidBlock.disconnect(boost::bind( | g_signals.m_internals->NewPoWValidBlock.disconnect(boost::bind( | ||||
&CValidationInterface::NewPoWValidBlock, pwalletIn, _1, _2)); | &CValidationInterface::NewPoWValidBlock, pwalletIn, _1, _2)); | ||||
} | } | ||||
void UnregisterAllValidationInterfaces() { | void UnregisterAllValidationInterfaces() { | ||||
if (!g_signals.m_internals) { | if (!g_signals.m_internals) { | ||||
return; | return; | ||||
} | } | ||||
g_signals.m_internals->BlockChecked.disconnect_all_slots(); | g_signals.m_internals->BlockChecked.disconnect_all_slots(); | ||||
g_signals.m_internals->Broadcast.disconnect_all_slots(); | g_signals.m_internals->Broadcast.disconnect_all_slots(); | ||||
g_signals.m_internals->Inventory.disconnect_all_slots(); | |||||
g_signals.m_internals->ChainStateFlushed.disconnect_all_slots(); | g_signals.m_internals->ChainStateFlushed.disconnect_all_slots(); | ||||
g_signals.m_internals->TransactionAddedToMempool.disconnect_all_slots(); | g_signals.m_internals->TransactionAddedToMempool.disconnect_all_slots(); | ||||
g_signals.m_internals->BlockConnected.disconnect_all_slots(); | g_signals.m_internals->BlockConnected.disconnect_all_slots(); | ||||
g_signals.m_internals->BlockDisconnected.disconnect_all_slots(); | g_signals.m_internals->BlockDisconnected.disconnect_all_slots(); | ||||
g_signals.m_internals->TransactionRemovedFromMempool.disconnect_all_slots(); | g_signals.m_internals->TransactionRemovedFromMempool.disconnect_all_slots(); | ||||
g_signals.m_internals->UpdatedBlockTip.disconnect_all_slots(); | g_signals.m_internals->UpdatedBlockTip.disconnect_all_slots(); | ||||
g_signals.m_internals->NewPoWValidBlock.disconnect_all_slots(); | g_signals.m_internals->NewPoWValidBlock.disconnect_all_slots(); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | m_internals->m_schedulerClient.AddToProcessQueue( | ||||
[pblock, this] { m_internals->BlockDisconnected(pblock); }); | [pblock, this] { m_internals->BlockDisconnected(pblock); }); | ||||
} | } | ||||
void CMainSignals::ChainStateFlushed(const CBlockLocator &locator) { | void CMainSignals::ChainStateFlushed(const CBlockLocator &locator) { | ||||
m_internals->m_schedulerClient.AddToProcessQueue( | m_internals->m_schedulerClient.AddToProcessQueue( | ||||
[locator, this] { m_internals->ChainStateFlushed(locator); }); | [locator, this] { m_internals->ChainStateFlushed(locator); }); | ||||
} | } | ||||
void CMainSignals::Inventory(const uint256 &hash) { | |||||
m_internals->m_schedulerClient.AddToProcessQueue( | |||||
[hash, this] { m_internals->Inventory(hash); }); | |||||
} | |||||
void CMainSignals::Broadcast(int64_t nBestBlockTime, CConnman *connman) { | void CMainSignals::Broadcast(int64_t nBestBlockTime, CConnman *connman) { | ||||
m_internals->Broadcast(nBestBlockTime, connman); | m_internals->Broadcast(nBestBlockTime, connman); | ||||
} | } | ||||
void CMainSignals::BlockChecked(const CBlock &block, | void CMainSignals::BlockChecked(const CBlock &block, | ||||
const CValidationState &state) { | const CValidationState &state) { | ||||
m_internals->BlockChecked(block, state); | m_internals->BlockChecked(block, state); | ||||
} | } | ||||
void CMainSignals::NewPoWValidBlock( | void CMainSignals::NewPoWValidBlock( | ||||
const CBlockIndex *pindex, const std::shared_ptr<const CBlock> &block) { | const CBlockIndex *pindex, const std::shared_ptr<const CBlock> &block) { | ||||
m_internals->NewPoWValidBlock(pindex, block); | m_internals->NewPoWValidBlock(pindex, block); | ||||
} | } |