31 lines
831 B
C++
31 lines
831 B
C++
#ifndef ACT_ROOT
|
|
#define ACT_ROOT
|
|
#include "act/controller.h"
|
|
#include "allocate/factory.h"
|
|
#include <vector>
|
|
class root_controller_t : public controller_t {
|
|
public:
|
|
enum mode_t {
|
|
cli,
|
|
app,
|
|
game
|
|
};
|
|
class configuration_t {
|
|
private:
|
|
std::vector<mode_t> modes_m;
|
|
public:
|
|
configuration_t(std::vector<mode_t> modes_p);
|
|
};
|
|
controller_t::status_t on_event(event_t event_p) override;
|
|
private:
|
|
configuration_t configuration_m;
|
|
root_controller_t(configuration_t configuration_p);
|
|
friend class root_controller_factory_t;
|
|
};
|
|
class root_controller_factory_t : public factory_t<root_controller_t::configuration_t, root_controller_t> {
|
|
public:
|
|
root_controller_t* create(root_controller_t::configuration_t* configuration_p) override;
|
|
factory_t::status_t dispose(root_controller_t* root_controller_p) override;
|
|
};
|
|
#endif
|