Changeset View
Changeset View
Standalone View
Standalone View
src/validationinterface.cpp
Show All 17 Lines | |||||
struct ValidationInterfaceConnections { | struct ValidationInterfaceConnections { | ||||
boost::signals2::scoped_connection UpdatedBlockTip; | boost::signals2::scoped_connection UpdatedBlockTip; | ||||
boost::signals2::scoped_connection TransactionAddedToMempool; | boost::signals2::scoped_connection TransactionAddedToMempool; | ||||
boost::signals2::scoped_connection BlockConnected; | boost::signals2::scoped_connection BlockConnected; | ||||
boost::signals2::scoped_connection BlockDisconnected; | boost::signals2::scoped_connection BlockDisconnected; | ||||
boost::signals2::scoped_connection TransactionRemovedFromMempool; | boost::signals2::scoped_connection TransactionRemovedFromMempool; | ||||
boost::signals2::scoped_connection ChainStateFlushed; | boost::signals2::scoped_connection ChainStateFlushed; | ||||
boost::signals2::scoped_connection Broadcast; | |||||
boost::signals2::scoped_connection BlockChecked; | boost::signals2::scoped_connection BlockChecked; | ||||
boost::signals2::scoped_connection NewPoWValidBlock; | boost::signals2::scoped_connection NewPoWValidBlock; | ||||
}; | }; | ||||
struct MainSignalsInstance { | struct MainSignalsInstance { | ||||
boost::signals2::signal<void(const CBlockIndex *, const CBlockIndex *, | boost::signals2::signal<void(const CBlockIndex *, const CBlockIndex *, | ||||
bool fInitialDownload)> | bool fInitialDownload)> | ||||
UpdatedBlockTip; | UpdatedBlockTip; | ||||
boost::signals2::signal<void(const CTransactionRef &)> | boost::signals2::signal<void(const CTransactionRef &)> | ||||
TransactionAddedToMempool; | TransactionAddedToMempool; | ||||
boost::signals2::signal<void(const std::shared_ptr<const CBlock> &, | 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(CConnman *connman)> 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; | ||||
// We are not allowed to assume the scheduler only runs in one thread, | // We are not allowed to assume the scheduler only runs in one thread, | ||||
// but must ensure all callbacks happen in-order, so we end up creating | // but must ensure all callbacks happen in-order, so we end up creating | ||||
▲ Show 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | conns.BlockDisconnected = g_signals.m_internals->BlockDisconnected.connect( | ||||
std::placeholders::_1)); | std::placeholders::_1)); | ||||
conns.TransactionRemovedFromMempool = | conns.TransactionRemovedFromMempool = | ||||
g_signals.m_internals->TransactionRemovedFromMempool.connect( | g_signals.m_internals->TransactionRemovedFromMempool.connect( | ||||
std::bind(&CValidationInterface::TransactionRemovedFromMempool, | std::bind(&CValidationInterface::TransactionRemovedFromMempool, | ||||
pwalletIn, std::placeholders::_1)); | pwalletIn, std::placeholders::_1)); | ||||
conns.ChainStateFlushed = g_signals.m_internals->ChainStateFlushed.connect( | conns.ChainStateFlushed = g_signals.m_internals->ChainStateFlushed.connect( | ||||
std::bind(&CValidationInterface::ChainStateFlushed, pwalletIn, | std::bind(&CValidationInterface::ChainStateFlushed, pwalletIn, | ||||
std::placeholders::_1)); | std::placeholders::_1)); | ||||
conns.Broadcast = g_signals.m_internals->Broadcast.connect( | |||||
std::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, | |||||
std::placeholders::_1)); | |||||
conns.BlockChecked = g_signals.m_internals->BlockChecked.connect( | conns.BlockChecked = g_signals.m_internals->BlockChecked.connect( | ||||
std::bind(&CValidationInterface::BlockChecked, pwalletIn, | std::bind(&CValidationInterface::BlockChecked, pwalletIn, | ||||
std::placeholders::_1, std::placeholders::_2)); | std::placeholders::_1, std::placeholders::_2)); | ||||
conns.NewPoWValidBlock = g_signals.m_internals->NewPoWValidBlock.connect( | conns.NewPoWValidBlock = g_signals.m_internals->NewPoWValidBlock.connect( | ||||
std::bind(&CValidationInterface::NewPoWValidBlock, pwalletIn, | std::bind(&CValidationInterface::NewPoWValidBlock, pwalletIn, | ||||
std::placeholders::_1, std::placeholders::_2)); | std::placeholders::_1, std::placeholders::_2)); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 63 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::Broadcast(CConnman *connman) { | |||||
m_internals->Broadcast(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); | ||||
} | } |