47 lines
933 B
C++
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
|