Skip to content

Commit 301bc70

Browse files
committed
refactor: move ctor/dtor to source file, delete extra ctors for CoinJoin
1 parent 88a2375 commit 301bc70

File tree

6 files changed

+113
-60
lines changed

6 files changed

+113
-60
lines changed

src/coinjoin/client.cpp

Lines changed: 55 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ using wallet::CoinType;
3838
using wallet::CWallet;
3939
using wallet::ReserveDestination;
4040

41+
CCoinJoinClientQueueManager::CCoinJoinClientQueueManager(CoinJoinWalletManager& walletman, CDeterministicMNManager& dmnman,
42+
CMasternodeMetaMan& mn_metaman, const CMasternodeSync& mn_sync) :
43+
m_walletman{walletman},
44+
m_dmnman{dmnman},
45+
m_mn_metaman{mn_metaman},
46+
m_mn_sync{mn_sync}
47+
{
48+
}
49+
50+
CCoinJoinClientQueueManager::~CCoinJoinClientQueueManager() = default;
51+
4152
MessageProcessingResult CCoinJoinClientQueueManager::ProcessMessage(NodeId from, CConnman& connman,
4253
std::string_view msg_type, CDataStream& vRecv)
4354
{
@@ -139,6 +150,28 @@ MessageProcessingResult CCoinJoinClientQueueManager::ProcessMessage(NodeId from,
139150
return ret;
140151
}
141152

153+
void CCoinJoinClientQueueManager::DoMaintenance()
154+
{
155+
if (!m_mn_sync.IsBlockchainSynced() || ShutdownRequested()) return;
156+
157+
CheckQueue();
158+
}
159+
160+
CCoinJoinClientManager::CCoinJoinClientManager(const std::shared_ptr<wallet::CWallet>& wallet,
161+
CDeterministicMNManager& dmnman, CMasternodeMetaMan& mn_metaman,
162+
const CMasternodeSync& mn_sync, const llmq::CInstantSendManager& isman,
163+
const std::unique_ptr<CCoinJoinClientQueueManager>& queueman) :
164+
m_wallet{wallet},
165+
m_dmnman{dmnman},
166+
m_mn_metaman{mn_metaman},
167+
m_mn_sync{mn_sync},
168+
m_isman{isman},
169+
m_queueman{queueman}
170+
{
171+
}
172+
173+
CCoinJoinClientManager::~CCoinJoinClientManager() = default;
174+
142175
void CCoinJoinClientManager::ProcessMessage(CNode& peer, CChainState& active_chainstate, CConnman& connman, const CTxMemPool& mempool, std::string_view msg_type, CDataStream& vRecv)
143176
{
144177
if (!CCoinJoinClientOptions::IsEnabled()) return;
@@ -1816,13 +1849,6 @@ void CCoinJoinClientManager::UpdatedBlockTip(const CBlockIndex* pindex)
18161849
WalletCJLogPrint(m_wallet, "CCoinJoinClientManager::UpdatedBlockTip -- nCachedBlockHeight: %d\n", nCachedBlockHeight);
18171850
}
18181851

1819-
void CCoinJoinClientQueueManager::DoMaintenance()
1820-
{
1821-
if (!m_mn_sync.IsBlockchainSynced() || ShutdownRequested()) return;
1822-
1823-
CheckQueue();
1824-
}
1825-
18261852
void CCoinJoinClientManager::DoMaintenance(ChainstateManager& chainman, CConnman& connman, const CTxMemPool& mempool)
18271853
{
18281854
if (!CCoinJoinClientOptions::IsEnabled()) return;
@@ -1874,6 +1900,28 @@ void CCoinJoinClientManager::GetJsonInfo(UniValue& obj) const
18741900
obj.pushKV("sessions", arrSessions);
18751901
}
18761902

1903+
CoinJoinWalletManager::CoinJoinWalletManager(ChainstateManager& chainman, CDeterministicMNManager& dmnman,
1904+
CMasternodeMetaMan& mn_metaman, const CTxMemPool& mempool,
1905+
const CMasternodeSync& mn_sync, const llmq::CInstantSendManager& isman,
1906+
const std::unique_ptr<CCoinJoinClientQueueManager>& queueman) :
1907+
m_chainman{chainman},
1908+
m_dmnman{dmnman},
1909+
m_mn_metaman{mn_metaman},
1910+
m_mempool{mempool},
1911+
m_mn_sync{mn_sync},
1912+
m_isman{isman},
1913+
m_queueman{queueman}
1914+
{
1915+
}
1916+
1917+
CoinJoinWalletManager::~CoinJoinWalletManager()
1918+
{
1919+
LOCK(cs_wallet_manager_map);
1920+
for (auto& [wallet_name, cj_man] : m_wallet_manager_map) {
1921+
cj_man.reset();
1922+
}
1923+
}
1924+
18771925
void CoinJoinWalletManager::Add(const std::shared_ptr<CWallet>& wallet)
18781926
{
18791927
LOCK(cs_wallet_manager_map);

src/coinjoin/client.h

Lines changed: 17 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -75,24 +75,14 @@ class CoinJoinWalletManager {
7575
using wallet_name_cjman_map = std::map<const std::string, std::unique_ptr<CCoinJoinClientManager>>;
7676

7777
public:
78-
CoinJoinWalletManager(ChainstateManager& chainman, CDeterministicMNManager& dmnman, CMasternodeMetaMan& mn_metaman,
79-
const CTxMemPool& mempool, const CMasternodeSync& mn_sync, const llmq::CInstantSendManager& isman,
80-
const std::unique_ptr<CCoinJoinClientQueueManager>& queueman) :
81-
m_chainman(chainman),
82-
m_dmnman(dmnman),
83-
m_mn_metaman(mn_metaman),
84-
m_mempool(mempool),
85-
m_mn_sync(mn_sync),
86-
m_isman{isman},
87-
m_queueman(queueman)
88-
{}
89-
90-
~CoinJoinWalletManager() {
91-
LOCK(cs_wallet_manager_map);
92-
for (auto& [wallet_name, cj_man] : m_wallet_manager_map) {
93-
cj_man.reset();
94-
}
95-
}
78+
CoinJoinWalletManager() = delete;
79+
CoinJoinWalletManager(const CoinJoinWalletManager&) = delete;
80+
CoinJoinWalletManager& operator=(const CoinJoinWalletManager&) = delete;
81+
explicit CoinJoinWalletManager(ChainstateManager& chainman, CDeterministicMNManager& dmnman,
82+
CMasternodeMetaMan& mn_metaman, const CTxMemPool& mempool,
83+
const CMasternodeSync& mn_sync, const llmq::CInstantSendManager& isman,
84+
const std::unique_ptr<CCoinJoinClientQueueManager>& queueman);
85+
~CoinJoinWalletManager();
9686

9787
void Add(const std::shared_ptr<wallet::CWallet>& wallet) EXCLUSIVE_LOCKS_REQUIRED(!cs_wallet_manager_map);
9888
void DoMaintenance(CConnman& connman) EXCLUSIVE_LOCKS_REQUIRED(!cs_wallet_manager_map);
@@ -235,14 +225,12 @@ class CCoinJoinClientQueueManager : public CCoinJoinBaseManager
235225
mutable Mutex cs_ProcessDSQueue;
236226

237227
public:
228+
CCoinJoinClientQueueManager() = delete;
229+
CCoinJoinClientQueueManager(const CCoinJoinClientQueueManager&) = delete;
230+
CCoinJoinClientQueueManager& operator=(const CCoinJoinClientQueueManager&) = delete;
238231
explicit CCoinJoinClientQueueManager(CoinJoinWalletManager& walletman, CDeterministicMNManager& dmnman,
239-
CMasternodeMetaMan& mn_metaman, const CMasternodeSync& mn_sync) :
240-
m_walletman(walletman),
241-
m_dmnman(dmnman),
242-
m_mn_metaman(mn_metaman),
243-
m_mn_sync(mn_sync)
244-
{
245-
}
232+
CMasternodeMetaMan& mn_metaman, const CMasternodeSync& mn_sync);
233+
~CCoinJoinClientQueueManager();
246234

247235
[[nodiscard]] MessageProcessingResult ProcessMessage(NodeId from, CConnman& connman, std::string_view msg_type,
248236
CDataStream& vRecv)
@@ -285,21 +273,13 @@ class CCoinJoinClientManager
285273
bool fCreateAutoBackups{true}; // builtin support for automatic backups
286274

287275
CCoinJoinClientManager() = delete;
288-
CCoinJoinClientManager(CCoinJoinClientManager const&) = delete;
289-
CCoinJoinClientManager& operator=(CCoinJoinClientManager const&) = delete;
290-
276+
CCoinJoinClientManager(const CCoinJoinClientManager&) = delete;
277+
CCoinJoinClientManager& operator=(const CCoinJoinClientManager&) = delete;
291278
explicit CCoinJoinClientManager(const std::shared_ptr<wallet::CWallet>& wallet, CDeterministicMNManager& dmnman,
292279
CMasternodeMetaMan& mn_metaman, const CMasternodeSync& mn_sync,
293280
const llmq::CInstantSendManager& isman,
294-
const std::unique_ptr<CCoinJoinClientQueueManager>& queueman) :
295-
m_wallet(wallet),
296-
m_dmnman(dmnman),
297-
m_mn_metaman(mn_metaman),
298-
m_mn_sync(mn_sync),
299-
m_isman{isman},
300-
m_queueman(queueman)
301-
{
302-
}
281+
const std::unique_ptr<CCoinJoinClientQueueManager>& queueman);
282+
~CCoinJoinClientManager();
303283

304284
void ProcessMessage(CNode& peer, CChainState& active_chainstate, CConnman& connman, const CTxMemPool& mempool, std::string_view msg_type, CDataStream& vRecv) EXCLUSIVE_LOCKS_REQUIRED(!cs_deqsessions);
305285

src/coinjoin/coinjoin.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ void CCoinJoinBaseSession::SetNull()
122122
nTimeLastSuccessfulStep = GetTime();
123123
}
124124

125+
CCoinJoinBaseManager::CCoinJoinBaseManager() = default;
126+
127+
CCoinJoinBaseManager::~CCoinJoinBaseManager() = default;
128+
125129
void CCoinJoinBaseManager::SetNull()
126130
{
127131
LOCK(cs_vecqueue);
@@ -394,6 +398,10 @@ bilingual_str CoinJoin::GetMessageByID(PoolMessage nMessageID)
394398
}
395399
}
396400

401+
CDSTXManager::CDSTXManager() = default;
402+
403+
CDSTXManager::~CDSTXManager() = default;
404+
397405
void CDSTXManager::AddDSTX(const CCoinJoinBroadcastTx& dstx)
398406
{
399407
AssertLockNotHeld(cs_mapdstx);

src/coinjoin/coinjoin.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,8 @@ class CCoinJoinBaseManager
331331
void CheckQueue() EXCLUSIVE_LOCKS_REQUIRED(!cs_vecqueue);
332332

333333
public:
334-
CCoinJoinBaseManager() = default;
334+
CCoinJoinBaseManager();
335+
virtual ~CCoinJoinBaseManager();
335336

336337
int GetQueueSize() const EXCLUSIVE_LOCKS_REQUIRED(!cs_vecqueue) { LOCK(cs_vecqueue); return vecCoinJoinQueue.size(); }
337338
bool GetQueueItemAndTry(CCoinJoinQueue& dsqRet) EXCLUSIVE_LOCKS_REQUIRED(!cs_vecqueue);
@@ -371,7 +372,11 @@ class CDSTXManager
371372
std::map<uint256, CCoinJoinBroadcastTx> mapDSTX GUARDED_BY(cs_mapdstx);
372373

373374
public:
374-
CDSTXManager() = default;
375+
CDSTXManager(const CDSTXManager&) = delete;
376+
CDSTXManager& operator=(const CDSTXManager&) = delete;
377+
CDSTXManager();
378+
~CDSTXManager();
379+
375380
void AddDSTX(const CCoinJoinBroadcastTx& dstx) EXCLUSIVE_LOCKS_REQUIRED(!cs_mapdstx);
376381
CCoinJoinBroadcastTx GetDSTX(const uint256& hash) EXCLUSIVE_LOCKS_REQUIRED(!cs_mapdstx);
377382

src/coinjoin/server.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,27 @@
2323

2424
#include <univalue.h>
2525

26+
CCoinJoinServer::CCoinJoinServer(ChainstateManager& chainman, CConnman& _connman, CDeterministicMNManager& dmnman,
27+
CDSTXManager& dstxman, CMasternodeMetaMan& mn_metaman, CTxMemPool& mempool,
28+
PeerManager& peerman, const CActiveMasternodeManager& mn_activeman,
29+
const CMasternodeSync& mn_sync, const llmq::CInstantSendManager& isman) :
30+
m_chainman{chainman},
31+
connman{_connman},
32+
m_dmnman{dmnman},
33+
m_dstxman{dstxman},
34+
m_mn_metaman{mn_metaman},
35+
mempool{mempool},
36+
m_peerman{peerman},
37+
m_mn_activeman{mn_activeman},
38+
m_mn_sync{mn_sync},
39+
m_isman{isman},
40+
vecSessionCollaterals{},
41+
fUnitTest{false}
42+
{
43+
}
44+
45+
CCoinJoinServer::~CCoinJoinServer() = default;
46+
2647
MessageProcessingResult CCoinJoinServer::ProcessMessage(CNode& peer, std::string_view msg_type, CDataStream& vRecv)
2748
{
2849
if (!m_mn_sync.IsBlockchainSynced()) return {};

src/coinjoin/server.h

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -94,23 +94,14 @@ class CCoinJoinServer : public CCoinJoinBaseSession, public CCoinJoinBaseManager
9494
void SetNull() override EXCLUSIVE_LOCKS_REQUIRED(cs_coinjoin);
9595

9696
public:
97+
CCoinJoinServer() = delete;
98+
CCoinJoinServer(const CCoinJoinServer&) = delete;
99+
CCoinJoinServer& operator=(const CCoinJoinServer&) = delete;
97100
explicit CCoinJoinServer(ChainstateManager& chainman, CConnman& _connman, CDeterministicMNManager& dmnman,
98101
CDSTXManager& dstxman, CMasternodeMetaMan& mn_metaman, CTxMemPool& mempool,
99102
PeerManager& peerman, const CActiveMasternodeManager& mn_activeman,
100-
const CMasternodeSync& mn_sync, const llmq::CInstantSendManager& isman) :
101-
m_chainman(chainman),
102-
connman(_connman),
103-
m_dmnman(dmnman),
104-
m_dstxman(dstxman),
105-
m_mn_metaman(mn_metaman),
106-
mempool(mempool),
107-
m_peerman(peerman),
108-
m_mn_activeman(mn_activeman),
109-
m_mn_sync(mn_sync),
110-
m_isman{isman},
111-
vecSessionCollaterals(),
112-
fUnitTest(false)
113-
{}
103+
const CMasternodeSync& mn_sync, const llmq::CInstantSendManager& isman);
104+
~CCoinJoinServer();
114105

115106
[[nodiscard]] MessageProcessingResult ProcessMessage(CNode& pfrom, std::string_view msg_type, CDataStream& vRecv);
116107

0 commit comments

Comments
 (0)