[refactor] Make MainSignals RAII styled

This commit is contained in:
TheCharlatan
2023-11-27 11:46:36 +01:00
parent 84f5c135b8
commit 4abde2c4e3
5 changed files with 18 additions and 45 deletions

View File

@@ -94,31 +94,18 @@ public:
}
};
CMainSignals::CMainSignals() {}
CMainSignals::CMainSignals(CScheduler& scheduler)
: m_internals{std::make_unique<MainSignalsImpl>(scheduler)} {}
CMainSignals::~CMainSignals() {}
void CMainSignals::RegisterBackgroundSignalScheduler(CScheduler& scheduler)
{
assert(!m_internals);
m_internals = std::make_unique<MainSignalsImpl>(scheduler);
}
void CMainSignals::UnregisterBackgroundSignalScheduler()
{
m_internals.reset(nullptr);
}
void CMainSignals::FlushBackgroundCallbacks()
{
if (m_internals) {
m_internals->m_schedulerClient.EmptyQueue();
}
m_internals->m_schedulerClient.EmptyQueue();
}
size_t CMainSignals::CallbacksPending()
{
if (!m_internals) return 0;
return m_internals->m_schedulerClient.CallbacksPending();
}
@@ -143,16 +130,11 @@ void CMainSignals::UnregisterSharedValidationInterface(std::shared_ptr<CValidati
void CMainSignals::UnregisterValidationInterface(CValidationInterface* callbacks)
{
if (m_internals) {
m_internals->Unregister(callbacks);
}
m_internals->Unregister(callbacks);
}
void CMainSignals::UnregisterAllValidationInterfaces()
{
if (!m_internals) {
return;
}
m_internals->Clear();
}