diff --git a/apps/Makefile b/apps/Makefile index d27ce678c8248f1aa90eb8860deff1f09c17909b..57f49dc96bba751c5d65711e4e6be7bf4a080e2b 100644 --- a/apps/Makefile +++ b/apps/Makefile @@ -1,8 +1,11 @@ -apps += base event eventx util -apps += network -apps += terminal -apps += log -apps += main +apps += cpp_tbox/base +apps += cpp_tbox/event +apps += cpp_tbox/eventx +apps += cpp_tbox/util +apps += cpp_tbox/network +apps += cpp_tbox/terminal +apps += cpp_tbox/log +apps += cpp_tbox/main apps += sample all test clean distclean: diff --git a/apps/base b/apps/base deleted file mode 120000 index cc11ec6980ca78965fafe6360da09b782bebe282..0000000000000000000000000000000000000000 --- a/apps/base +++ /dev/null @@ -1 +0,0 @@ -cpp_tbox/base \ No newline at end of file diff --git a/apps/coroutine b/apps/coroutine deleted file mode 120000 index 7c8d184eadd1616017ec9b1ba84d94be49e259dc..0000000000000000000000000000000000000000 --- a/apps/coroutine +++ /dev/null @@ -1 +0,0 @@ -cpp_tbox/coroutine \ No newline at end of file diff --git a/apps/event b/apps/event deleted file mode 120000 index 53295476b242a4dd2c54297e984c21dd097c48f0..0000000000000000000000000000000000000000 --- a/apps/event +++ /dev/null @@ -1 +0,0 @@ -cpp_tbox/event \ No newline at end of file diff --git a/apps/eventx b/apps/eventx deleted file mode 120000 index 30c23f319ab9050ab065cee0bb9e2e9f9bee9882..0000000000000000000000000000000000000000 --- a/apps/eventx +++ /dev/null @@ -1 +0,0 @@ -cpp_tbox/eventx \ No newline at end of file diff --git a/apps/log b/apps/log deleted file mode 120000 index 27e89ffd5ea1b49635cc7b44d12b8236831c8f39..0000000000000000000000000000000000000000 --- a/apps/log +++ /dev/null @@ -1 +0,0 @@ -cpp_tbox/log/ \ No newline at end of file diff --git a/apps/main b/apps/main deleted file mode 120000 index 8e06be6b24557aeb201a88b111ba391ab67cb516..0000000000000000000000000000000000000000 --- a/apps/main +++ /dev/null @@ -1 +0,0 @@ -cpp_tbox/main \ No newline at end of file diff --git a/apps/network b/apps/network deleted file mode 120000 index 3827d30217e877b83538fead863dc483df406fdf..0000000000000000000000000000000000000000 --- a/apps/network +++ /dev/null @@ -1 +0,0 @@ -cpp_tbox/network \ No newline at end of file diff --git a/apps/sample b/apps/sample deleted file mode 120000 index c17dd4beddcb3dc1b2e4118f4c6b6dae9069a652..0000000000000000000000000000000000000000 --- a/apps/sample +++ /dev/null @@ -1 +0,0 @@ -cpp_tbox/sample/ \ No newline at end of file diff --git a/apps/sample/Makefile b/apps/sample/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..6807b64d57417a02735e5fec8bd43d50aebaafb7 --- /dev/null +++ b/apps/sample/Makefile @@ -0,0 +1,31 @@ +EXE_NAME := sample + +CPP_SRC_FILES := app_main.cpp build_time.cpp +TEST_CPP_SRC_FILES := +TEST_LDFLAGS := + +CONF_FILES := default.conf + +include app1/app.mk +include app2/app.mk + +CXXFLAGS := -DLOG_MODULE_ID='"$(EXE_NAME)"' $(CXXFLAGS) +LDFLAGS += \ + -ltbox_main \ + -ltbox_terminal \ + -ltbox_network \ + -ltbox_eventx \ + -ltbox_eventx \ + -ltbox_event \ + -ltbox_log \ + -ltbox_util \ + -ltbox_base \ + -lpthread \ + -rdynamic + +TEST_LDFLAGS += $(LDFLAGS) + +pre_build : + touch build_time.cpp + +include ../cpp_tbox/tools/exe_common.mk diff --git a/apps/sample/README.md b/apps/sample/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9b9e2901241801fccaf47b79171cb534aef0d0ba --- /dev/null +++ b/apps/sample/README.md @@ -0,0 +1,2 @@ +这是一个单进程,多应用的示例。它有两个应用。 +两个应用虽运行在同一个进程里,但两者的代码分别在各自的子目录下,独立逻辑,不相干扰。 diff --git a/apps/sample/app1/app.cpp b/apps/sample/app1/app.cpp new file mode 100644 index 0000000000000000000000000000000000000000..58531abcd22286673baf20321f5675436da04cf6 --- /dev/null +++ b/apps/sample/app1/app.cpp @@ -0,0 +1,39 @@ +#include "app.h" +#include + +namespace app1 { + +App::App(tbox::main::Context &ctx) : + Module("app1", ctx) +{ + LogTag(); +} + +App::~App() +{ + LogTag(); +} + +bool App::onInit(const tbox::Json &cfg) +{ + LogTag(); + return true; +} + +bool App::onStart() +{ + LogTag(); + return true; +} + +void App::onStop() +{ + LogTag(); +} + +void App::onCleanup() +{ + LogTag(); +} + +} diff --git a/apps/sample/app1/app.h b/apps/sample/app1/app.h new file mode 100644 index 0000000000000000000000000000000000000000..b52f1fcab3cf38465f099cc2fc87b8a81ad5eb98 --- /dev/null +++ b/apps/sample/app1/app.h @@ -0,0 +1,23 @@ +#ifndef TBOX_MAIN_EXAMPLE_APP1_H_20211226 +#define TBOX_MAIN_EXAMPLE_APP1_H_20211226 + +#include + +namespace app1 { + +class App : public tbox::main::Module +{ + public: + App(tbox::main::Context &ctx); + ~App(); + + protected: + virtual bool onInit(const tbox::Json &cfg) override; + virtual bool onStart() override; + virtual void onStop() override; + virtual void onCleanup() override; +}; + +} + +#endif //TBOX_MAIN_EXAMPLE_APP1_H_20211226 diff --git a/apps/sample/app1/app.mk b/apps/sample/app1/app.mk new file mode 100644 index 0000000000000000000000000000000000000000..5b296fc692c2d280ef3cf05cc9e0338818e71127 --- /dev/null +++ b/apps/sample/app1/app.mk @@ -0,0 +1,7 @@ +CPP_SRC_FILES += app1/app.cpp +CC_SRC_FILES += +C_SRC_FILES += +LDFLAGS += + +TEST_CPP_SRC_FILES += +TEST_LDFLAGS += diff --git a/apps/sample/app2/app.cpp b/apps/sample/app2/app.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f7317c0b6d5e83251f1f3f8fa7dfbf4a4402a15a --- /dev/null +++ b/apps/sample/app2/app.cpp @@ -0,0 +1,39 @@ +#include "app.h" +#include + +namespace app2 { + +App::App(tbox::main::Context &ctx) : + Module("app2", ctx) +{ + LogTag(); +} + +App::~App() +{ + LogTag(); +} + +bool App::onInit(const tbox::Json &cfg) +{ + LogTag(); + return true; +} + +bool App::onStart() +{ + LogTag(); + return true; +} + +void App::onStop() +{ + LogTag(); +} + +void App::onCleanup() +{ + LogTag(); +} + +} diff --git a/apps/sample/app2/app.h b/apps/sample/app2/app.h new file mode 100644 index 0000000000000000000000000000000000000000..1889d039061356efd3406cd6dd0374f312a166b6 --- /dev/null +++ b/apps/sample/app2/app.h @@ -0,0 +1,23 @@ +#ifndef TBOX_MAIN_EXAMPLE_APP2_H_20211226 +#define TBOX_MAIN_EXAMPLE_APP2_H_20211226 + +#include + +namespace app2 { + +class App : public tbox::main::Module +{ + public: + App(tbox::main::Context &ctx); + ~App(); + + protected: + virtual bool onInit(const tbox::Json &cfg) override; + virtual bool onStart() override; + virtual void onStop() override; + virtual void onCleanup() override; +}; + +} + +#endif //TBOX_MAIN_EXAMPLE_APP2_H_20211226 diff --git a/apps/sample/app2/app.mk b/apps/sample/app2/app.mk new file mode 100644 index 0000000000000000000000000000000000000000..6766a6629988b2a9fdd0c58ac1bda323f46de299 --- /dev/null +++ b/apps/sample/app2/app.mk @@ -0,0 +1,7 @@ +CPP_SRC_FILES += app2/app.cpp +CC_SRC_FILES += +C_SRC_FILES += +LDFLAGS += + +TEST_CPP_SRC_FILES += +TEST_LDFLAGS += diff --git a/apps/sample/app_main.cpp b/apps/sample/app_main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..45221605e3cc2c25111e9bcd2447831c500d4f62 --- /dev/null +++ b/apps/sample/app_main.cpp @@ -0,0 +1,29 @@ +#include + +#include "app1/app.h" +#include "app2/app.h" + +namespace tbox { +namespace main { + +void RegisterApps(Module &apps, Context &ctx) +{ + apps.add(new app1::App(ctx)); + apps.add(new app2::App(ctx)); +} + +std::string GetAppDescribe() +{ + return "This is a sample within two apps."; +} + +void GetAppVersion(int &major, int &minor, int &rev, int &build) +{ + major = 1; + minor = 0; + rev = 0; + build = 0; +} + +} +} diff --git a/apps/sample/build_time.cpp b/apps/sample/build_time.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f57a10f66093296460fdee88472ef3cf1fd0f8e0 --- /dev/null +++ b/apps/sample/build_time.cpp @@ -0,0 +1,12 @@ +#include + +namespace tbox { +namespace main { + +std::string GetAppBuildTime() +{ + return __DATE__ " " __TIME__; +} + +} +} diff --git a/apps/sample/default.conf b/apps/sample/default.conf new file mode 100644 index 0000000000000000000000000000000000000000..401584f327c07dbffaf060c0683071a226c633b1 --- /dev/null +++ b/apps/sample/default.conf @@ -0,0 +1,14 @@ +{ + "pid_file": "/tmp/sample.pid", + "thread_pool": { + "max": 5, + "min": 1 + }, + "telnetd": { + "bind": "/tmp/sample-telnetd.sock" + }, + "tcp_rpc": { + "bind": "/tmp/sample-rpc.sock" + } +} + diff --git a/apps/terminal b/apps/terminal deleted file mode 120000 index 6abdb88119d92df85e83406b8c645ae3c56aa7e0..0000000000000000000000000000000000000000 --- a/apps/terminal +++ /dev/null @@ -1 +0,0 @@ -cpp_tbox/terminal \ No newline at end of file diff --git a/apps/tools b/apps/tools deleted file mode 120000 index 4a0aff477f9b128920c0cbed7135bee5282b9b54..0000000000000000000000000000000000000000 --- a/apps/tools +++ /dev/null @@ -1 +0,0 @@ -cpp_tbox/tools \ No newline at end of file diff --git a/apps/util b/apps/util deleted file mode 120000 index f878e793013ddb56af880f413edca91a53ce6190..0000000000000000000000000000000000000000 --- a/apps/util +++ /dev/null @@ -1 +0,0 @@ -cpp_tbox/util \ No newline at end of file