#ifndef SOURCE_GROUP_FACTORY_H #define SOURCE_GROUP_FACTORY_H #include #include #include "settings/SourceGroupType.h" class SourceGroup; class SourceGroupSettings; class SourceGroupFactoryModule; class SourceGroupFactory { public: static std::shared_ptr getInstance(); void addModule(std::shared_ptr module); std::vector> createSourceGroups(std::vector> allSourceGroupSettings); std::shared_ptr createSourceGroup(std::shared_ptr settings); private: static std::shared_ptr s_instance; SourceGroupFactory(); std::vector> m_modules; }; #endif // SOURCE_GROUP_FACTORY_H