diff options
Diffstat (limited to 'app/source/Cplt/Utils/Sigslot.cpp')
-rw-r--r-- | app/source/Cplt/Utils/Sigslot.cpp | 57 |
1 files changed, 19 insertions, 38 deletions
diff --git a/app/source/Cplt/Utils/Sigslot.cpp b/app/source/Cplt/Utils/Sigslot.cpp index 1132dfb..14deece 100644 --- a/app/source/Cplt/Utils/Sigslot.cpp +++ b/app/source/Cplt/Utils/Sigslot.cpp @@ -2,28 +2,23 @@ #include <doctest/doctest.h> -bool SignalStub::Connection::IsOccupied() const -{ +bool SignalStub::Connection::IsOccupied() const { return id != InvalidId; } SignalStub::SignalStub(IWrapper& wrapper) - : mWrapper{ &wrapper } -{ + : mWrapper{ &wrapper } { } -SignalStub::~SignalStub() -{ +SignalStub::~SignalStub() { RemoveAllConnections(); } -std::span<const SignalStub::Connection> SignalStub::GetConnections() const -{ +std::span<const SignalStub::Connection> SignalStub::GetConnections() const { return mConnections; } -SignalStub::Connection& SignalStub::InsertConnection(SlotGuard* guard) -{ +SignalStub::Connection& SignalStub::InsertConnection(SlotGuard* guard) { Connection* result; int size = static_cast<int>(mConnections.size()); for (int i = 0; i < size; ++i) { @@ -47,8 +42,7 @@ setup: return *result; } -void SignalStub::RemoveConnection(int id) -{ +void SignalStub::RemoveConnection(int id) { if (id >= 0 && id < mConnections.size()) { auto& conn = mConnections[id]; if (conn.IsOccupied()) { @@ -64,29 +58,24 @@ void SignalStub::RemoveConnection(int id) } } -void SignalStub::RemoveConnectionFor(SlotGuard& guard) -{ +void SignalStub::RemoveConnectionFor(SlotGuard& guard) { guard.RemoveConnectionFor(*this); } -void SignalStub::RemoveAllConnections() -{ +void SignalStub::RemoveAllConnections() { for (size_t i = 0; i < mConnections.size(); ++i) { RemoveConnection(i); } } -SlotGuard::SlotGuard() -{ +SlotGuard::SlotGuard() { } -SlotGuard::~SlotGuard() -{ +SlotGuard::~SlotGuard() { DisconnectAll(); } -void SlotGuard::DisconnectAll() -{ +void SlotGuard::DisconnectAll() { for (auto& conn : mConnections) { if (conn.stub) { // Also calls SlotGuard::removeConnection, our copy of the data will be cleared in it @@ -95,8 +84,7 @@ void SlotGuard::DisconnectAll() } } -int SlotGuard::InsertConnection(SignalStub& stub, int stubId) -{ +int SlotGuard::InsertConnection(SignalStub& stub, int stubId) { int size = static_cast<int>(mConnections.size()); for (int i = 0; i < size; ++i) { auto& conn = mConnections[i]; @@ -114,8 +102,7 @@ int SlotGuard::InsertConnection(SignalStub& stub, int stubId) return size; } -void SlotGuard::RemoveConnectionFor(SignalStub& stub) -{ +void SlotGuard::RemoveConnectionFor(SignalStub& stub) { for (auto& conn : mConnections) { if (conn.stub == &stub) { conn.stub->RemoveConnection(conn.stubId); @@ -123,13 +110,11 @@ void SlotGuard::RemoveConnectionFor(SignalStub& stub) } } -void SlotGuard::RemoveConnection(int slotId) -{ +void SlotGuard::RemoveConnection(int slotId) { mConnections[slotId] = {}; } -TEST_CASE("Signal connect and disconnect") -{ +TEST_CASE("Signal connect and disconnect") { Signal<> sig; int counter = 0; @@ -146,8 +131,7 @@ TEST_CASE("Signal connect and disconnect") CHECK(counter == 2); } -TEST_CASE("Signal with parameters") -{ +TEST_CASE("Signal with parameters") { Signal<int> sig; int counter = 0; @@ -167,8 +151,7 @@ TEST_CASE("Signal with parameters") CHECK(counter == 5); } -TEST_CASE("Signal disconnectAll()") -{ +TEST_CASE("Signal disconnectAll()") { Signal<> sig; int counter1 = 0; @@ -190,8 +173,7 @@ TEST_CASE("Signal disconnectAll()") CHECK(counter2 == 2); } -TEST_CASE("SlotGuard auto-disconnection") -{ +TEST_CASE("SlotGuard auto-disconnection") { int counter1 = 0; int counter2 = 0; Signal<> sig; @@ -215,8 +197,7 @@ TEST_CASE("SlotGuard auto-disconnection") CHECK(counter2 == 2); } -TEST_CASE("Signal destruct before SlotGuard") -{ +TEST_CASE("Signal destruct before SlotGuard") { int counter = 0; SlotGuard guard; |