#ifndef THING_MANAGER_H #define THING_MANAGER_H #include "thing.h" #include #include #include #include #include namespace iot { class ThingManager { public: static ThingManager& GetInstance() { static ThingManager instance; return instance; } ThingManager(const ThingManager&) = delete; ThingManager& operator=(const ThingManager&) = delete; void AddThing(Thing* thing); std::string GetDescriptorsJson(); bool GetStatesJson(std::string& json, bool delta = false); void Invoke(const cJSON* command); private: ThingManager() = default; ~ThingManager() = default; std::vector things_; std::map last_states_; }; } // namespace iot #endif // THING_MANAGER_H