| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #ifndef TOON_MESSAGEHANDLER_H
- #define TOON_MESSAGEHANDLER_H
- #include <MQTT.h>
- #include <SimpleSignal.h>
- #include <json.hpp>
- #include <string>
- 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<void()> ReconnectCallbackMethod;
- public:
- size_t Connect(ReconnectCallbackMethod function);
- void Disconnect(size_t connection);
- private:
- typedef Simple::Signal<void()> 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 // TOON_MESSAGEHANDLER_H
|