1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-2014 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.
6 #include "validationinterface.h"
8 static CMainSignals g_signals
;
10 CMainSignals
& GetMainSignals()
15 void RegisterValidationInterface(CValidationInterface
* pwalletIn
) {
16 g_signals
.SyncTransaction
.connect(boost::bind(&CValidationInterface::SyncTransaction
, pwalletIn
, _1
, _2
));
17 g_signals
.EraseTransaction
.connect(boost::bind(&CValidationInterface::EraseFromWallet
, pwalletIn
, _1
));
18 g_signals
.UpdatedTransaction
.connect(boost::bind(&CValidationInterface::UpdatedTransaction
, pwalletIn
, _1
));
19 g_signals
.SetBestChain
.connect(boost::bind(&CValidationInterface::SetBestChain
, pwalletIn
, _1
));
20 g_signals
.Inventory
.connect(boost::bind(&CValidationInterface::Inventory
, pwalletIn
, _1
));
21 g_signals
.Broadcast
.connect(boost::bind(&CValidationInterface::ResendWalletTransactions
, pwalletIn
, _1
));
22 g_signals
.BlockChecked
.connect(boost::bind(&CValidationInterface::BlockChecked
, pwalletIn
, _1
, _2
));
25 void UnregisterValidationInterface(CValidationInterface
* pwalletIn
) {
26 g_signals
.BlockChecked
.disconnect(boost::bind(&CValidationInterface::BlockChecked
, pwalletIn
, _1
, _2
));
27 g_signals
.Broadcast
.disconnect(boost::bind(&CValidationInterface::ResendWalletTransactions
, pwalletIn
, _1
));
28 g_signals
.Inventory
.disconnect(boost::bind(&CValidationInterface::Inventory
, pwalletIn
, _1
));
29 g_signals
.SetBestChain
.disconnect(boost::bind(&CValidationInterface::SetBestChain
, pwalletIn
, _1
));
30 g_signals
.UpdatedTransaction
.disconnect(boost::bind(&CValidationInterface::UpdatedTransaction
, pwalletIn
, _1
));
31 g_signals
.EraseTransaction
.disconnect(boost::bind(&CValidationInterface::EraseFromWallet
, pwalletIn
, _1
));
32 g_signals
.SyncTransaction
.disconnect(boost::bind(&CValidationInterface::SyncTransaction
, pwalletIn
, _1
, _2
));
35 void UnregisterAllValidationInterfaces() {
36 g_signals
.BlockChecked
.disconnect_all_slots();
37 g_signals
.Broadcast
.disconnect_all_slots();
38 g_signals
.Inventory
.disconnect_all_slots();
39 g_signals
.SetBestChain
.disconnect_all_slots();
40 g_signals
.UpdatedTransaction
.disconnect_all_slots();
41 g_signals
.EraseTransaction
.disconnect_all_slots();
42 g_signals
.SyncTransaction
.disconnect_all_slots();
45 void SyncWithWallets(const CTransaction
&tx
, const CBlock
*pblock
) {
46 g_signals
.SyncTransaction(tx
, pblock
);