#ifndef TOON_MESSAGEHANDLER_H #define TOON_MESSAGEHANDLER_H #include #include #include #include namespace ToonBridge { namespace Toon { class MessageHandler { public: MessageHandler(MQTT::MQTT& mqtt, const std::string& mqttTopic); ~MessageHandler(); void HandleMessage(const std::string& message); public: typedef std::function ReconnectCallbackMethod; public: size_t Connect(ReconnectCallbackMethod function); void Disconnect(size_t connection); private: typedef Simple::Signal TTLMessage; private: void HandlePowerUsageMessage(const nlohmann::json& data); void HandleGasUsageMessage(const nlohmann::json& data); void HandleWaterUsageMessage(const nlohmann::json& data); void HandleThermostatInfoMessage(const nlohmann::json& data); void HandleThermostatStatesMessage(const nlohmann::json& data); private: MQTT::MQTT& m_mqtt; std::string m_mqttTopic; TTLMessage m_signal; }; } // namespace Toon } // namespace ToonBridge #endif // DEVICE_ACTIVITYDEVICE_H