From 8aafec9082a2cd1f0a75c6900368012bda02db62 Mon Sep 17 00:00:00 2001 From: hhvrc Date: Fri, 15 Nov 2024 17:38:36 +0100 Subject: [PATCH] Disable move and copy on classes --- include/CaptivePortalInstance.h | 4 +++ include/GatewayClient.h | 4 +++ include/PinPatternManager.h | 1 + include/RGBPatternManager.h | 1 + include/ReadWriteMutex.h | 44 +++++++++++++++++++-------------- include/WebSocketDeFragger.h | 8 +++--- include/radio/RFTransmitter.h | 4 +++ 7 files changed, 44 insertions(+), 22 deletions(-) diff --git a/include/CaptivePortalInstance.h b/include/CaptivePortalInstance.h index 4b0c4fa5..782c77a5 100644 --- a/include/CaptivePortalInstance.h +++ b/include/CaptivePortalInstance.h @@ -1,5 +1,6 @@ #pragma once +#include "Common.h" #include "WebSocketDeFragger.h" #include @@ -14,6 +15,9 @@ namespace OpenShock { class CaptivePortalInstance { + DISABLE_COPY(CaptivePortalInstance); + DISABLE_MOVE(CaptivePortalInstance); + public: CaptivePortalInstance(); ~CaptivePortalInstance(); diff --git a/include/GatewayClient.h b/include/GatewayClient.h index c131c76c..fa530938 100644 --- a/include/GatewayClient.h +++ b/include/GatewayClient.h @@ -1,5 +1,6 @@ #pragma once +#include "Common.h" #include "GatewayClientState.h" #include @@ -11,6 +12,9 @@ namespace OpenShock { class GatewayClient { + DISABLE_COPY(GatewayClient); + DISABLE_MOVE(GatewayClient); + public: GatewayClient(const std::string& authToken); ~GatewayClient(); diff --git a/include/PinPatternManager.h b/include/PinPatternManager.h index 29dad47f..75f88200 100644 --- a/include/PinPatternManager.h +++ b/include/PinPatternManager.h @@ -13,6 +13,7 @@ namespace OpenShock { class PinPatternManager { DISABLE_COPY(PinPatternManager); + DISABLE_MOVE(PinPatternManager); public: struct State { diff --git a/include/RGBPatternManager.h b/include/RGBPatternManager.h index e98e1760..6d8c15b7 100644 --- a/include/RGBPatternManager.h +++ b/include/RGBPatternManager.h @@ -15,6 +15,7 @@ namespace OpenShock { class RGBPatternManager { DISABLE_COPY(RGBPatternManager); + DISABLE_MOVE(RGBPatternManager); public: RGBPatternManager() = delete; diff --git a/include/ReadWriteMutex.h b/include/ReadWriteMutex.h index 2f4e1ad6..70768e45 100644 --- a/include/ReadWriteMutex.h +++ b/include/ReadWriteMutex.h @@ -8,6 +8,7 @@ namespace OpenShock { class ReadWriteMutex { DISABLE_COPY(ReadWriteMutex); DISABLE_MOVE(ReadWriteMutex); + public: ReadWriteMutex(); ~ReadWriteMutex(); @@ -17,6 +18,7 @@ namespace OpenShock { bool lockWrite(TickType_t xTicksToWait); void unlockWrite(); + private: SemaphoreHandle_t m_mutex; SemaphoreHandle_t m_readSem; @@ -26,8 +28,11 @@ namespace OpenShock { class ScopedReadLock { DISABLE_COPY(ScopedReadLock); DISABLE_MOVE(ScopedReadLock); + public: - ScopedReadLock(ReadWriteMutex* mutex, TickType_t xTicksToWait = portMAX_DELAY) : m_mutex(mutex) { + ScopedReadLock(ReadWriteMutex* mutex, TickType_t xTicksToWait = portMAX_DELAY) + : m_mutex(mutex) + { bool result = false; if (m_mutex != nullptr) { result = m_mutex->lockRead(xTicksToWait); @@ -38,17 +43,17 @@ namespace OpenShock { } } - ~ScopedReadLock() { + ~ScopedReadLock() + { if (m_mutex != nullptr) { m_mutex->unlockRead(); } } - bool isLocked() const { - return m_mutex != nullptr; - } + bool isLocked() const { return m_mutex != nullptr; } - bool unlock() { + bool unlock() + { if (m_mutex != nullptr) { m_mutex->unlockRead(); m_mutex = nullptr; @@ -58,9 +63,8 @@ namespace OpenShock { return false; } - ReadWriteMutex* getMutex() const { - return m_mutex; - } + ReadWriteMutex* getMutex() const { return m_mutex; } + private: ReadWriteMutex* m_mutex; }; @@ -68,8 +72,11 @@ namespace OpenShock { class ScopedWriteLock { DISABLE_COPY(ScopedWriteLock); DISABLE_MOVE(ScopedWriteLock); + public: - ScopedWriteLock(ReadWriteMutex* mutex, TickType_t xTicksToWait = portMAX_DELAY) : m_mutex(mutex) { + ScopedWriteLock(ReadWriteMutex* mutex, TickType_t xTicksToWait = portMAX_DELAY) + : m_mutex(mutex) + { bool result = false; if (m_mutex != nullptr) { result = m_mutex->lockWrite(xTicksToWait); @@ -80,17 +87,17 @@ namespace OpenShock { } } - ~ScopedWriteLock() { + ~ScopedWriteLock() + { if (m_mutex != nullptr) { m_mutex->unlockWrite(); } } - bool isLocked() const { - return m_mutex != nullptr; - } + bool isLocked() const { return m_mutex != nullptr; } - bool unlock() { + bool unlock() + { if (m_mutex != nullptr) { m_mutex->unlockWrite(); m_mutex = nullptr; @@ -100,10 +107,9 @@ namespace OpenShock { return false; } - ReadWriteMutex* getMutex() const { - return m_mutex; - } + ReadWriteMutex* getMutex() const { return m_mutex; } + private: ReadWriteMutex* m_mutex; }; -} // namespace OpenShock +} // namespace OpenShock diff --git a/include/WebSocketDeFragger.h b/include/WebSocketDeFragger.h index 1ad54313..fa85d037 100644 --- a/include/WebSocketDeFragger.h +++ b/include/WebSocketDeFragger.h @@ -5,15 +5,16 @@ #include -#include #include #include +#include namespace OpenShock { class WebSocketDeFragger { DISABLE_COPY(WebSocketDeFragger); - public: + DISABLE_MOVE(WebSocketDeFragger); + public: typedef std::function EventCallback; WebSocketDeFragger(EventCallback callback); @@ -23,6 +24,7 @@ namespace OpenShock { void onEvent(const EventCallback& callback); void clear(uint8_t socketId); void clear(); + private: void start(uint8_t socketId, WebSocketMessageType type, const uint8_t* data, uint32_t length); void append(uint8_t socketId, const uint8_t* data, uint32_t length); @@ -38,4 +40,4 @@ namespace OpenShock { std::map m_messages; EventCallback m_callback; }; -} +} // namespace OpenShock diff --git a/include/radio/RFTransmitter.h b/include/radio/RFTransmitter.h index 80d56d14..893ff951 100644 --- a/include/radio/RFTransmitter.h +++ b/include/radio/RFTransmitter.h @@ -1,5 +1,6 @@ #pragma once +#include "Common.h" #include "ShockerCommandType.h" #include "ShockerModelType.h" @@ -13,6 +14,9 @@ namespace OpenShock { class RFTransmitter { + DISABLE_COPY(RFTransmitter); + DISABLE_MOVE(RFTransmitter); + public: RFTransmitter(gpio_num_t gpioPin); ~RFTransmitter();