From 23694c755d07cdd69140f47ce0ac56f25c7ffe17 Mon Sep 17 00:00:00 2001 From: James Whiteman Date: Wed, 26 Jan 2022 11:53:02 -0800 Subject: [PATCH] Use root controller with factory pattern --- .gitignore | 3 +++ command/linux/setup.sh | 1 + compile/act/root.cpp | 25 ++++++++++--------------- compile/act/root.h | 13 ++++--------- compile/main.cpp | 10 ++++------ compile/project_files.txt | 2 +- earn/executable | Bin 17824 -> 0 bytes 7 files changed, 23 insertions(+), 31 deletions(-) delete mode 100755 earn/executable diff --git a/.gitignore b/.gitignore index 84ca878..35030d4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ link/ .vscode/ +earn/ +*.swp +*.swo diff --git a/command/linux/setup.sh b/command/linux/setup.sh index e69de29..3ea6af6 100755 --- a/command/linux/setup.sh +++ b/command/linux/setup.sh @@ -0,0 +1 @@ +apt install -y libx11-dev diff --git a/compile/act/root.cpp b/compile/act/root.cpp index a32c66e..2ad23fc 100644 --- a/compile/act/root.cpp +++ b/compile/act/root.cpp @@ -1,22 +1,10 @@ #include "act/root.h" +#include "allocate/factory.h" #include "draw/window.h" -#include -root_controller_t::configuration_t::configuration_t(std::vector modes_p) { - modes_m = modes_p; -} -root_controller_t::root_controller_t(root_controller_t::configuration_t configuration_p) { - configuration_m = configuration_p; -} -root_controller_t* root_controller_factory_t::create(root_controller_t::configuration_t configuration_p) { - void* ptr = malloc(sizeof(root_controller_t)); - return static_cast(ptr); -} -factory_t::status_t root_controller_factory_t::dispose(root_controller_t* root_controller_p) { - free(root_controller_p); - return factory_t::status_t::ok; +root_controller_t::root_controller_t(root_controller_t::configuration_t* configuration_p) { + mode_m = configuration_p->mode_m; } controller_t::status_t root_controller_t::on_event(controller_t::event_t event_p) { - if ( window_service_t* window_service = new window_service_t(); window_service_t::status_t window_status = window_service->create_window(); controller_t::status_t controller_status; @@ -31,3 +19,10 @@ controller_t::status_t root_controller_t::on_event(controller_t::event_t event_p } return controller_status; } +root_controller_t* root_controller_factory_t::create(root_controller_t::configuration_t* configuration_p) { + return new root_controller_t(configuration_p); +} +factory_t::status_t root_controller_factory_t::dispose(root_controller_t* root_controller_p) { + delete root_controller_p; + return factory_t::status_t::ok; +} diff --git a/compile/act/root.h b/compile/act/root.h index bfdb4cc..96e37eb 100644 --- a/compile/act/root.h +++ b/compile/act/root.h @@ -10,20 +10,15 @@ class root_controller_t : public controller_t { app, game }; - class configuration_t { - private: - std::vector modes_m; - public: - configuration_t(std::vector modes_p); + struct configuration_t { + mode_t mode_m; }; + root_controller_t(configuration_t* configuration_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; + mode_t mode_m; }; class root_controller_factory_t : public factory_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; }; diff --git a/compile/main.cpp b/compile/main.cpp index 8a2c086..76890fb 100644 --- a/compile/main.cpp +++ b/compile/main.cpp @@ -2,12 +2,10 @@ #include "act/root.h" #include int main(int argc, char *argv[]) { - root_controller_factory_t factory_l; - std::vector modes_l; - modes_l.push_back(root_controller_t::mode_t::app); - root_controller_t::configuration_t configuration_l(modes_l); - root_controller_t* controller_l = factory_l.create(&configuration_l); + root_controller_t::configuration_t configuration_l; + configuration_l.mode_m = root_controller_t::mode_t::app; + root_controller_t* controller_l = new root_controller_t(&configuration_l); controller_t::status_t status_l = controller_l->on_event(controller_t::event_t::start); - factory_l.dispose(controller_l); + delete controller_l; return status_l; } diff --git a/compile/project_files.txt b/compile/project_files.txt index 8ef6bb7..4ff57a3 100644 --- a/compile/project_files.txt +++ b/compile/project_files.txt @@ -1,3 +1,3 @@ main.cpp act/root.cpp -platform/linux/draw/window.cpp +target/linux/draw/window.cpp diff --git a/earn/executable b/earn/executable deleted file mode 100755 index a700a52dccc5c88cddd1b95c1f12cb721b594d71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17824 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