90 lines
2.6 KiB
C
90 lines
2.6 KiB
C
// docker-finance | modern accounting for the power-user
|
|
//
|
|
// Copyright (C) 2021-2024 Aaron Fiore (Founder, Evergreen Crypto LLC)
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
//! \file
|
|
//! \author Aaron Fiore (Founder, Evergreen Crypto LLC)
|
|
//! \note File intended to be loaded into ROOT.cern framework / Cling interpreter
|
|
//! \since docker-finance 1.0.0
|
|
|
|
#ifndef CONTAINER_SRC_ROOT_MACRO_WEB_SERVER_C_
|
|
#define CONTAINER_SRC_ROOT_MACRO_WEB_SERVER_C_
|
|
|
|
#include "../common/server.hh"
|
|
#include "../common/utility.hh"
|
|
|
|
//! \namespace docker_finance
|
|
//! \since docker-finance 1.0.0
|
|
namespace docker_finance
|
|
{
|
|
//! \namespace docker_finance::macro
|
|
//! \brief ROOT macros
|
|
//! \since docker-finance 1.0.0
|
|
namespace macro
|
|
{
|
|
//! \namespace docker_finance::macro::web
|
|
//! \brief ROOT web-based macros
|
|
//! \since docker-finance 1.0.0
|
|
namespace web
|
|
{
|
|
//! \brief Web server managing class
|
|
//! \ingroup cpp_macro
|
|
//! \since docker-finance 1.0.0
|
|
class Server final
|
|
{
|
|
public:
|
|
Server() = default;
|
|
~Server() = default;
|
|
|
|
Server(const Server&) = delete;
|
|
Server& operator=(const Server&) = delete;
|
|
|
|
Server(Server&&) = default;
|
|
Server& operator=(Server&&) = default;
|
|
|
|
private:
|
|
//! \brief ROOT HTTP server command registrar
|
|
//! \details Registers internal macros
|
|
static void register_commands()
|
|
{
|
|
namespace common = ::docker_finance::macro::common;
|
|
namespace internal = ::docker_finance::macro::internal;
|
|
|
|
common::Command::load({"web/internal/crypto.C"});
|
|
internal::g_HTTPServer->RegisterCommand(
|
|
"/rng_sample",
|
|
"::docker_finance::macro::web::internal::Random::rng_sample(\"%arg1%"
|
|
"\")");
|
|
|
|
common::Command::load({"web/internal/meta.C"});
|
|
internal::g_HTTPServer->RegisterCommand(
|
|
"/meta_sample",
|
|
"::docker_finance::macro::web::internal::Meta::meta_sample(\"%arg1%"
|
|
"\")");
|
|
}
|
|
|
|
public:
|
|
//! \brief Start webserver
|
|
static void run() { Server::register_commands(); }
|
|
};
|
|
} // namespace web
|
|
} // namespace macro
|
|
} // namespace docker_finance
|
|
|
|
#endif // CONTAINER_SRC_ROOT_MACRO_WEB_SERVER_C_
|
|
|
|
// # vim: sw=2 sts=2 si ai et
|