#ifndef TOON_BRIDGE_H #define TOON_BRIDGE_H #include "MessageHandler.h" #include "MQTTSettings.h" #include "ToonSettings.h" #include "WebSocketSubscription.h" #include #include #include #include #include #include namespace ToonBridge { namespace Toon { class Bridge { public: Bridge(int port, const ToonSettings& toonSettings, const MQTTSettings& mqttSettings); ~Bridge(); void Wait(); private: void Start(); Http::HttpServer::HttpReply HttpCallback(const std::string& uri, const std::vector& postData); void ReconnectCallback(WebSocketSubscription* pSubscription); void CheckMessageReceived(); private: std::unique_ptr m_pHttpServer; MQTT::MQTT m_mqttClient; MessageHandler m_messageHandler; int m_port; ToonSettings m_toonSettings; MQTTSettings m_mqttSettings; std::unique_ptr m_pWebSocketSubscription; Timer::Timer m_messageCheckTimer; std::mutex m_mutex; bool m_messageReceived; }; } // namespace Toon } // namespace ToonBridge #endif // TOON_BRIDGE_H