Files

47 lines
933 B
C++

#ifndef _SMO_MIND_MANAGER_H
#define _SMO_MIND_MANAGER_H
#include <config.h>
#include <memory>
#include <vector>
#include <mind.h>
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<Mind> getMind(void) const;
void addMind(const std::shared_ptr<Mind>& mind);
void removeMind(const std::shared_ptr<Mind>& mind);
public:
std::vector<std::shared_ptr<Mind>> minds;
};
} // namespace mind
} // namespace smo
#endif // _SMO_MIND_MANAGER_H