| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*
- * author: Patrick-Christopher Mattulat
- * e-mail: webmaster@lynarstudios.com
- */
- #include <cycle/Engine.hpp>
- #include <factory/KeyboardFactory.hpp>
- #include <factory/WindowApiFactory.hpp>
- #include <messaging/StatusCodeOk.hpp>
- using ls::atlantis::cycle::Engine;
- using ls::atlantis::cycle::EngineParameter;
- using ls::atlantis::cycle::EngineRuntimeData;
- using ls::atlantis::factory::KeyboardFactory;
- using ls::atlantis::factory::WindowApiFactory;
- using ls::atlantis::interfaces::AStatusCode;
- using ls::atlantis::messaging::StatusCodeOk;
- using ::std::make_shared;
- using ::std::shared_ptr;
- Engine::Engine(const EngineParameter &_parameter)
- : data(make_shared<EngineRuntimeData>()),
- parameter(_parameter)
- {}
- Engine::~Engine() = default;
- shared_ptr<EngineRuntimeData> Engine::getData() const
- {
- return this->data;
- }
- shared_ptr<AStatusCode> Engine::init() const
- {
- shared_ptr<AStatusCode> result = _initWindowApi();
- if (result->getCode() == StatusCodeOk().getCode())
- {
- result = this->_initKeyboard();
- }
- return result;
- }
- shared_ptr<AStatusCode> Engine::_initKeyboard() const
- {
- const auto keyboard = KeyboardFactory::build(this->parameter.getWindowApiType());
- this->data->setKeyboard(keyboard);
- return make_shared<StatusCodeOk>();
- }
- shared_ptr<AStatusCode> Engine::_initWindowApi() const
- {
- const auto windowApi = WindowApiFactory::build(this->parameter.getWindowApiType());
- this->data->setWindowApi(windowApi);
- return windowApi->init();
- }
|