mirror of
https://github.com/Expand-sys/CCash
synced 2025-12-17 00:22:14 +11:00
✨ NumOfLogs()
This commit is contained in:
parent
b0fdfc5f4f
commit
bb6b2f6c44
1 changed files with 57 additions and 59 deletions
116
main.cpp
116
main.cpp
|
|
@ -36,74 +36,76 @@ void SaveSig(int s)
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
if (argc != 3)
|
|
||||||
{
|
{
|
||||||
std::cerr << "Usage: sudo ./bank <admin account> <saving frequency in minutes>\n";
|
|
||||||
return 0;
|
if (argc != 3)
|
||||||
}
|
{
|
||||||
if (geteuid() != 0)
|
std::cerr << "Usage: sudo ./bank <admin account> <saving frequency in minutes>\n";
|
||||||
{
|
return 0;
|
||||||
std::cerr << "ERROR: CCash MUST be ran as root\n";
|
}
|
||||||
return 0;
|
if (geteuid() != 0)
|
||||||
}
|
{
|
||||||
std::cout
|
std::cerr << "ERROR: CCash MUST be ran as root\n";
|
||||||
<< "\nAPI Version : " << API_VERSION
|
return 0;
|
||||||
<< "\n\nAVX : " << (__builtin_cpu_supports("avx") ? "enabled" : "disabled")
|
}
|
||||||
<< "\nAVX 2 : " << (__builtin_cpu_supports("avx2") ? "enabled" : "disabled")
|
std::cout
|
||||||
<< "\nSSE 2 : " << (__builtin_cpu_supports("sse2") ? "enabled" : "disabled")
|
<< "\nAPI Version : " << API_VERSION
|
||||||
<< "\nSSE 3 : " << (__builtin_cpu_supports("sse3") ? "enabled" : "disabled")
|
<< "\n\nAVX : " << (__builtin_cpu_supports("avx") ? "enabled" : "disabled")
|
||||||
<< "\nSSE 4.1 : " << (__builtin_cpu_supports("sse4.1") ? "enabled" : "disabled")
|
<< "\nAVX 2 : " << (__builtin_cpu_supports("avx2") ? "enabled" : "disabled")
|
||||||
<< "\nSSE 4.2 : " << (__builtin_cpu_supports("sse4.2") ? "enabled" : "disabled")
|
<< "\nSSE 2 : " << (__builtin_cpu_supports("sse2") ? "enabled" : "disabled")
|
||||||
|
<< "\nSSE 3 : " << (__builtin_cpu_supports("sse3") ? "enabled" : "disabled")
|
||||||
|
<< "\nSSE 4.1 : " << (__builtin_cpu_supports("sse4.1") ? "enabled" : "disabled")
|
||||||
|
<< "\nSSE 4.2 : " << (__builtin_cpu_supports("sse4.2") ? "enabled" : "disabled")
|
||||||
#if MULTI_THREADED
|
#if MULTI_THREADED
|
||||||
<< "\n\nThreads : " << get_nprocs() + 1
|
<< "\n\nThreads : " << get_nprocs() + 1
|
||||||
<< "\nMulti threading : enabled";
|
<< "\nMulti threading : enabled";
|
||||||
#else
|
#else
|
||||||
<< "\n\nThreads : " << 2
|
<< "\n\nThreads : " << 2
|
||||||
<< "\nMulti threading : disabled";
|
<< "\nMulti threading : disabled";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//Loading users from users.json
|
//Loading users from users.json
|
||||||
bank.Load();
|
bank.Load();
|
||||||
|
std::cout << "\n\nLoaded " << bank.NumOfUsers() << " Users"
|
||||||
|
<< "\nLoaded " << bank.NumOfLogs() << " Logs"
|
||||||
|
<< "\nLoaded " << bank.SumBal() << " CSH"
|
||||||
|
<< std::endl; //flushing before EventLoop
|
||||||
|
|
||||||
std::cout << "\n\nLoaded " << bank.NumOfUsers() << " Users"
|
//Sig handling
|
||||||
<< "\nLoaded " << bank.NumOfLogs() << " Logs"
|
struct sigaction sigIntHandler;
|
||||||
<< std::endl; //flushing before EventLoop
|
|
||||||
|
|
||||||
//Sig handling
|
sigIntHandler.sa_handler = SaveSig;
|
||||||
struct sigaction sigIntHandler;
|
sigemptyset(&sigIntHandler.sa_mask);
|
||||||
|
sigIntHandler.sa_flags = 0;
|
||||||
|
|
||||||
sigIntHandler.sa_handler = SaveSig;
|
sigaction(SIGINT, &sigIntHandler, NULL);
|
||||||
sigemptyset(&sigIntHandler.sa_mask);
|
|
||||||
sigIntHandler.sa_flags = 0;
|
|
||||||
|
|
||||||
sigaction(SIGINT, &sigIntHandler, NULL);
|
//Admin account
|
||||||
|
bank.admin_account = argv[1];
|
||||||
|
|
||||||
//Admin account
|
//Auto Saving
|
||||||
bank.admin_account = argv[1];
|
const unsigned long saving_freq = std::stoul(std::string(argv[2]));
|
||||||
|
if (saving_freq) //if saving frequency is 0 then auto saving is turned off
|
||||||
//Auto Saving
|
{
|
||||||
const unsigned long saving_freq = std::stoul(std::string(argv[2]));
|
std::thread([saving_freq]() {
|
||||||
if (saving_freq) //if saving frequency is 0 then auto saving is turned off
|
while (1)
|
||||||
{
|
|
||||||
std::thread([saving_freq]() {
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
std::this_thread::sleep_for(std::chrono::minutes(saving_freq));
|
|
||||||
std::cout << "Saving " << std::time(0) << "...\n";
|
|
||||||
if (bank.GetChangeState())
|
|
||||||
{
|
{
|
||||||
std::cout << " to disk...\n";
|
std::this_thread::sleep_for(std::chrono::minutes(saving_freq));
|
||||||
bank.Save();
|
std::cout << "Saving " << std::time(0) << "...\n";
|
||||||
|
if (bank.GetChangeState())
|
||||||
|
{
|
||||||
|
std::cout << " to disk...\n";
|
||||||
|
bank.Save();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::cout << " no changes...\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
})
|
||||||
{
|
.detach();
|
||||||
std::cout << " no changes...\n";
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.detach();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto API = std::make_shared<api>(bank);
|
auto API = std::make_shared<api>(bank);
|
||||||
auto user_filter_default = std::make_shared<UserFilter<true, false>>(bank);
|
auto user_filter_default = std::make_shared<UserFilter<true, false>>(bank);
|
||||||
auto user_filter_sparse = std::make_shared<UserFilter<false, false>>(bank);
|
auto user_filter_sparse = std::make_shared<UserFilter<false, false>>(bank);
|
||||||
|
|
@ -111,10 +113,6 @@ int main(int argc, char **argv)
|
||||||
auto json_resp_and_req_filter = std::make_shared<JsonFilter<true>>();
|
auto json_resp_and_req_filter = std::make_shared<JsonFilter<true>>();
|
||||||
auto json_resp_filter = std::make_shared<JsonFilter<false>>();
|
auto json_resp_filter = std::make_shared<JsonFilter<false>>();
|
||||||
|
|
||||||
app().registerPostHandlingAdvice(
|
|
||||||
[](const drogon::HttpRequestPtr &req, const drogon::HttpResponsePtr &resp) {
|
|
||||||
resp->addHeader("Access-Control-Allow-Origin", "*"); //CORS
|
|
||||||
});
|
|
||||||
app()
|
app()
|
||||||
.loadConfigFile(config_location)
|
.loadConfigFile(config_location)
|
||||||
.registerFilter(user_filter_default)
|
.registerFilter(user_filter_default)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue