From 0cae801ba3587da8cc858537a64eebde97ea4507 Mon Sep 17 00:00:00 2001 From: EntireTwix Date: Fri, 23 Jul 2021 22:43:47 -0700 Subject: [PATCH] :racehorse::fire: made BankAPI static --- include/bank_api.h | 42 +++++++++++++++++++++--------------------- main.cpp | 24 ++++++++++-------------- src/bank_api.cpp | 34 +++++++++++++++++----------------- 3 files changed, 48 insertions(+), 52 deletions(-) diff --git a/include/bank_api.h b/include/bank_api.h index c10dc93..5591f18 100644 --- a/include/bank_api.h +++ b/include/bank_api.h @@ -8,34 +8,34 @@ using namespace drogon; #define req_args const HttpRequestPtr &req, std::function &&callback -class api : public HttpController +class api : public HttpController { public: - void JsonCpp(req_args) const; - void Json(req_args) const; + static void JsonCpp(req_args); + static void Json(req_args); #if API_VERSION >= 1 - void GetBal(req_args, const std::string &name) const; - void GetLogs(req_args); - void SendFunds(req_args) const; - void VerifyPassword(req_args) const; + static void GetBal(req_args, const std::string &name); + static void GetLogs(req_args); + static void SendFunds(req_args); + static void VerifyPassword(req_args); - void ChangePassword(req_args) const; - void AdminChangePassword(req_args) const; - void SetBal(req_args) const; - void ImpactBal(req_args) const; + static void ChangePassword(req_args); + static void AdminChangePassword(req_args); + static void SetBal(req_args); + static void ImpactBal(req_args); - void Help(req_args) const; - void Close(req_args) const; - void Contains(req_args, const std::string &name) const; - void AdminVerifyAccount(req_args) const; - void PruneUsers(req_args) const; - void ApiProperties(req_args) const; + static void Help(req_args); + static void Close(req_args); + static void Contains(req_args, const std::string &name); + static void AdminVerifyAccount(req_args); + static void PruneUsers(req_args); + static void ApiProperties(req_args); - void AddUser(req_args) const; - void AdminAddUser(req_args) const; - void DelSelf(req_args) const; - void AdminDelUser(req_args) const; + static void AddUser(req_args); + static void AdminAddUser(req_args); + static void DelSelf(req_args); + static void AdminDelUser(req_args); #endif diff --git a/main.cpp b/main.cpp index 220c79a..b6bb32a 100644 --- a/main.cpp +++ b/main.cpp @@ -17,12 +17,10 @@ using namespace std::chrono; using namespace drogon; -static Bank bank; - void SaveSig(int s) { std::cout << "\nSaving on close...\n" - << bank.Save(); + << Bank::Save(); exit(1); } @@ -73,12 +71,12 @@ int main(int argc, char **argv) #endif //Loading users from users.json - bank.Load(); - size_t num_of_logs = bank.NumOfLogs(); - size_t num_of_users = bank.NumOfUsers(); + Bank::Load(); + size_t num_of_logs = Bank::NumOfLogs(); + size_t num_of_users = Bank::NumOfUsers(); std::cout << "\n\nLoaded " << num_of_users << " Users ~" << (float)(sizeof(User) * num_of_users) / 1048576 << "Mb" << "\nLoaded " << num_of_logs << " Logs ~" << (float)(num_of_logs * (90 + 80 + (max_name_size * 2))) / 1048576 << "Mb" //90:string representation(heap), sizeof(Transaction), max_name_size*2:filled to&from(heap) - << "\nLoaded " << bank.SumBal() << " CSH" + << "\nLoaded " << Bank::SumBal() << " CSH" << std::endl; //flushing before EventLoop //Sig handling @@ -91,7 +89,7 @@ int main(int argc, char **argv) sigaction(SIGINT, &sigIntHandler, NULL); //Admin account - bank.admin_account = argv[1]; + Bank::admin_account = argv[1]; //Auto Saving const unsigned long saving_freq = std::stoul(std::string(argv[2])); @@ -102,16 +100,15 @@ int main(int argc, char **argv) { std::this_thread::sleep_for(std::chrono::minutes(saving_freq)); std::cout << "Saving " << std::time(0) << "...\n" - << bank.Save(); + << Bank::Save(); } }) .detach(); } } //destroying setup variables - static auto API = std::make_shared(bank); - static auto user_filter_default = std::make_shared>(bank); - static auto user_filter_sparse = std::make_shared>(bank); - static auto admin_filter = std::make_shared>(bank); + static auto user_filter_default = std::make_shared>(); + static auto user_filter_sparse = std::make_shared>(); + static auto admin_filter = std::make_shared>(); static auto json_resp_and_req_filter = std::make_shared>(); static auto json_resp_filter = std::make_shared>(); @@ -122,7 +119,6 @@ int main(int argc, char **argv) .registerFilter(admin_filter) .registerFilter(json_resp_and_req_filter) .registerFilter(json_resp_filter) - .registerController(API) #if MULTI_THREADED .setThreadNum(get_nprocs()) #endif diff --git a/src/bank_api.cpp b/src/bank_api.cpp index f45e1fa..615f80f 100644 --- a/src/bank_api.cpp +++ b/src/bank_api.cpp @@ -49,7 +49,7 @@ static thread_local ondemand::parser parser; #if API_VERSION >= 1 //Usage -void api::GetBal(req_args, const std::string &name) const +void api::GetBal(req_args, const std::string &name) { RESPONSE_PARSE(Bank::GetBal(name)); } @@ -64,7 +64,7 @@ void api::GetLogs(req_args) callback(resp); #endif } -void api::SendFunds(req_args) const +void api::SendFunds(req_args) { SIMD_JSON_GEN; BankResponse res; @@ -88,10 +88,10 @@ void api::SendFunds(req_args) const } RESPONSE_PARSE(std::move(res)); } -void api::VerifyPassword(req_args) const { RESPOND_TRUE; } +void api::VerifyPassword(req_args) { RESPOND_TRUE; } //Meta Usage -void api::ChangePassword(req_args) const +void api::ChangePassword(req_args) { SIMD_JSON_GEN; BankResponse res; @@ -115,7 +115,7 @@ void api::ChangePassword(req_args) const } RESPONSE_PARSE(std::move(res)); } -void api::AdminChangePassword(req_args) const +void api::AdminChangePassword(req_args) { SIMD_JSON_GEN; BankResponse res; @@ -148,7 +148,7 @@ void api::AdminChangePassword(req_args) const } RESPONSE_PARSE(std::move(res)); } -void api::SetBal(req_args) const +void api::SetBal(req_args) { SIMD_JSON_GEN; BankResponse res; @@ -172,7 +172,7 @@ void api::SetBal(req_args) const } RESPONSE_PARSE(std::move(res)); } -void api::ImpactBal(req_args) const +void api::ImpactBal(req_args) { SIMD_JSON_GEN; BankResponse res; @@ -198,19 +198,19 @@ void api::ImpactBal(req_args) const } //System Usage -void api::Help(req_args) const +void api::Help(req_args) { static thread_local auto resp = HttpResponse::newRedirectionResponse("https://github.com/EntireTwix/CCash/blob/README.md", k301MovedPermanently); CACHE_FOREVER; callback(resp); } -void api::Close(req_args) const +void api::Close(req_args) { Bank::Save(); RESPOND_TRUE; //filter handles admin creds app().quit(); } -void api::Contains(req_args, const std::string &name) const +void api::Contains(req_args, const std::string &name) { BankResponse res; if (Bank::Contains(name)) @@ -223,11 +223,11 @@ void api::Contains(req_args, const std::string &name) const } RESPONSE_PARSE(std::move(res)); } -void api::AdminVerifyAccount(req_args) const +void api::AdminVerifyAccount(req_args) { RESPOND_TRUE; //filter handles admin creds } -void api::ApiProperties(req_args) const +void api::ApiProperties(req_args) { std::string info = "{\"version\":" + std::to_string(API_VERSION) + ",\"max_log\":" + std::to_string(MAX_LOG_SIZE); if constexpr (RETURN_ON_DEL) @@ -243,7 +243,7 @@ void api::ApiProperties(req_args) const CACHE_FOREVER; callback(resp); } -void api::PruneUsers(req_args) const +void api::PruneUsers(req_args) { SIMD_JSON_GEN; BankResponse res; @@ -279,7 +279,7 @@ void api::PruneUsers(req_args) const RESPONSE_PARSE(std::move(res)); } -void api::AddUser(req_args) const +void api::AddUser(req_args) { SIMD_JSON_GEN; BankResponse res; @@ -304,7 +304,7 @@ void api::AddUser(req_args) const } RESPONSE_PARSE(std::move(res)); } -void api::AdminAddUser(req_args) const +void api::AdminAddUser(req_args) { SIMD_JSON_GEN; BankResponse res; @@ -330,12 +330,12 @@ void api::AdminAddUser(req_args) const } RESPONSE_PARSE(std::move(res)); } -void api::DelSelf(req_args) const +void api::DelSelf(req_args) { Bank::DelSelf(NAME_PARAM); RESPOND_TRUE; } -void api::AdminDelUser(req_args) const +void api::AdminDelUser(req_args) { SIMD_JSON_GEN; BankResponse res;