#ifndef _SMO_MIND_MANAGER_H #define _SMO_MIND_MANAGER_H #include #include #include #include namespace smo { namespace mind { /** EXPLANATION: * MindManager is responsible for managing the lifecycle of all minds. * It is responsible for creating, destroying, and managing the minds. * * For now it does nothing since we haven't yet added support for multiple * minds. */ class MindManager { public: MindManager(void) = default; ~MindManager(void) = default; static MindManager& getInstance() { static MindManager instance; return instance; } public: void initialize(void) {}; void finalize(void) {}; std::shared_ptr getMind(void) const; void addMind(const std::shared_ptr& mind); void removeMind(const std::shared_ptr& mind); public: std::vector> minds; }; extern std::shared_ptr globalMind; } // namespace mind } // namespace smo #endif // _SMO_MIND_MANAGER_H