#ifndef SERIALIZER_H_ #define SERIALIZER_H_ #include #include #include #include #include #include #include #include #define SERIALIZATION_DIR "/etc/fantasize" #define FANS_JSON_FILENAME "fans.json" using json = nlohmann::json; class Serializer { public: Serializer(); void SerializeFans(std::vector> fans); std::vector> DeserializeFans(std::vector> availableSensors); std::vector> DeserializeFanCurves(std::vector> availableSensors, std::vector> availableFans, bool &everythingFound); std::shared_ptr DeserializeSettings(); private: void WriteJson(json o); json ReadJson(); std::unique_ptr aggregatorFromString(std::string str) const; }; #endif // SERIALIZER_H_