#ifndef SHADE_REPOSITORY_H #define SHADE_REPOSITORY_H #include #include #include "Shade.h" class ShadeRepository { private: std::vector shades; std::vector> shadeAddedCallbacks; std::vector> shadeChangedCallbacks; public: void upsert(Shade shade); std::vector::iterator begin(); std::vector::iterator end(); Shade* findById(const uint16_t id); Shade* findByKey(const std::string& key); void addShadeAddedCallback(std::function callback); void addShadeChangedCallback(std::function callback); }; #endif // SHADE_REPOSITORY_H