@ -9,6 +9,7 @@
@@ -9,6 +9,7 @@
# include "primitives/block.h"
# include "scheduler.h"
# include "sync.h"
# include "txmempool.h"
# include "util.h"
# include <list>
@ -21,6 +22,7 @@ struct MainSignalsInstance {
@@ -21,6 +22,7 @@ struct MainSignalsInstance {
boost : : signals2 : : signal < void ( const CTransactionRef & ) > TransactionAddedToMempool ;
boost : : signals2 : : signal < void ( const std : : shared_ptr < const CBlock > & , const CBlockIndex * pindex , const std : : vector < CTransactionRef > & ) > BlockConnected ;
boost : : signals2 : : signal < void ( const std : : shared_ptr < const CBlock > & ) > BlockDisconnected ;
boost : : signals2 : : signal < void ( const CTransactionRef & ) > TransactionRemovedFromMempool ;
boost : : signals2 : : signal < void ( const CBlockLocator & ) > SetBestChain ;
boost : : signals2 : : signal < void ( const uint256 & ) > Inventory ;
boost : : signals2 : : signal < void ( int64_t nBestBlockTime , CConnman * connman ) > Broadcast ;
@ -50,6 +52,14 @@ void CMainSignals::FlushBackgroundCallbacks() {
@@ -50,6 +52,14 @@ void CMainSignals::FlushBackgroundCallbacks() {
m_internals - > m_schedulerClient . EmptyQueue ( ) ;
}
void CMainSignals : : RegisterWithMempoolSignals ( CTxMemPool & pool ) {
pool . NotifyEntryRemoved . connect ( boost : : bind ( & CMainSignals : : MempoolEntryRemoved , this , _1 , _2 ) ) ;
}
void CMainSignals : : UnregisterWithMempoolSignals ( CTxMemPool & pool ) {
pool . NotifyEntryRemoved . disconnect ( boost : : bind ( & CMainSignals : : MempoolEntryRemoved , this , _1 , _2 ) ) ;
}
CMainSignals & GetMainSignals ( )
{
return g_signals ;
@ -60,6 +70,7 @@ void RegisterValidationInterface(CValidationInterface* pwalletIn) {
@@ -60,6 +70,7 @@ void RegisterValidationInterface(CValidationInterface* pwalletIn) {
g_signals . m_internals - > TransactionAddedToMempool . connect ( boost : : bind ( & CValidationInterface : : TransactionAddedToMempool , pwalletIn , _1 ) ) ;
g_signals . m_internals - > BlockConnected . connect ( boost : : bind ( & CValidationInterface : : BlockConnected , pwalletIn , _1 , _2 , _3 ) ) ;
g_signals . m_internals - > BlockDisconnected . connect ( boost : : bind ( & CValidationInterface : : BlockDisconnected , pwalletIn , _1 ) ) ;
g_signals . m_internals - > TransactionRemovedFromMempool . connect ( boost : : bind ( & CValidationInterface : : TransactionRemovedFromMempool , pwalletIn , _1 ) ) ;
g_signals . m_internals - > SetBestChain . connect ( boost : : bind ( & CValidationInterface : : SetBestChain , pwalletIn , _1 ) ) ;
g_signals . m_internals - > Inventory . connect ( boost : : bind ( & CValidationInterface : : Inventory , pwalletIn , _1 ) ) ;
g_signals . m_internals - > Broadcast . connect ( boost : : bind ( & CValidationInterface : : ResendWalletTransactions , pwalletIn , _1 , _2 ) ) ;
@ -75,6 +86,7 @@ void UnregisterValidationInterface(CValidationInterface* pwalletIn) {
@@ -75,6 +86,7 @@ void UnregisterValidationInterface(CValidationInterface* pwalletIn) {
g_signals . m_internals - > TransactionAddedToMempool . disconnect ( boost : : bind ( & CValidationInterface : : TransactionAddedToMempool , pwalletIn , _1 ) ) ;
g_signals . m_internals - > BlockConnected . disconnect ( boost : : bind ( & CValidationInterface : : BlockConnected , pwalletIn , _1 , _2 , _3 ) ) ;
g_signals . m_internals - > BlockDisconnected . disconnect ( boost : : bind ( & CValidationInterface : : BlockDisconnected , pwalletIn , _1 ) ) ;
g_signals . m_internals - > TransactionRemovedFromMempool . disconnect ( boost : : bind ( & CValidationInterface : : TransactionRemovedFromMempool , pwalletIn , _1 ) ) ;
g_signals . m_internals - > UpdatedBlockTip . disconnect ( boost : : bind ( & CValidationInterface : : UpdatedBlockTip , pwalletIn , _1 , _2 , _3 ) ) ;
g_signals . m_internals - > NewPoWValidBlock . disconnect ( boost : : bind ( & CValidationInterface : : NewPoWValidBlock , pwalletIn , _1 , _2 ) ) ;
}
@ -87,10 +99,17 @@ void UnregisterAllValidationInterfaces() {
@@ -87,10 +99,17 @@ void UnregisterAllValidationInterfaces() {
g_signals . m_internals - > TransactionAddedToMempool . disconnect_all_slots ( ) ;
g_signals . m_internals - > BlockConnected . disconnect_all_slots ( ) ;
g_signals . m_internals - > BlockDisconnected . disconnect_all_slots ( ) ;
g_signals . m_internals - > TransactionRemovedFromMempool . disconnect_all_slots ( ) ;
g_signals . m_internals - > UpdatedBlockTip . disconnect_all_slots ( ) ;
g_signals . m_internals - > NewPoWValidBlock . disconnect_all_slots ( ) ;
}
void CMainSignals : : MempoolEntryRemoved ( CTransactionRef ptx , MemPoolRemovalReason reason ) {
if ( reason ! = MemPoolRemovalReason : : BLOCK & & reason ! = MemPoolRemovalReason : : CONFLICT ) {
m_internals - > TransactionRemovedFromMempool ( ptx ) ;
}
}
void CMainSignals : : UpdatedBlockTip ( const CBlockIndex * pindexNew , const CBlockIndex * pindexFork , bool fInitialDownload ) {
m_internals - > UpdatedBlockTip ( pindexNew , pindexFork , fInitialDownload ) ;
}