root: macro: web/server common code refactor

This commit is contained in:
2024-07-20 19:39:36 -07:00
parent fbf8b7ffae
commit f8494c18b4
2 changed files with 57 additions and 17 deletions

View File

@@ -0,0 +1,54 @@
// 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_COMMON_SERVER_HH_
#define CONTAINER_SRC_ROOT_MACRO_COMMON_SERVER_HH_
#include <THttpServer.h>
#include <memory>
//! \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::internal
//! \brief ROOT macros for internal use only
//! \since docker-finance 1.0.0
namespace internal
{
//! \brief HTTP Server instance
//! \note In namespace scope because of ROOT's static functions requirement
//! \since docker-finance 1.0.0
auto g_HTTPServer = std::make_unique<::THttpServer>("http:8080");
} // namespace internal
} // namespace macro
} // namespace docker_finance
#endif // CONTAINER_SRC_ROOT_MACRO_COMMON_SERVER_HH_
// # vim: sw=2 sts=2 si ai et

View File

@@ -23,10 +23,7 @@
#ifndef CONTAINER_SRC_ROOT_MACRO_WEB_SERVER_C_
#define CONTAINER_SRC_ROOT_MACRO_WEB_SERVER_C_
#include <THttpServer.h>
#include <memory>
#include "../common/server.hh"
#include "../common/utility.hh"
//! \namespace docker_finance
@@ -38,17 +35,6 @@ namespace docker_finance
//! \since docker-finance 1.0.0
namespace macro
{
//! \namespace docker_finance::macro::internal
//! \brief ROOT macros for internal use only
//! \since docker-finance 1.0.0
namespace internal
{
//! \brief HTTP Server instance
//! \note In namespace scope because of ROOT's static functions requirement
//! \since docker-finance 1.0.0
auto g_HTTPServer = std::make_unique<::THttpServer>("http:8080");
} // namespace internal
//! \brief Web server managing class
//! \ingroup cpp_macro
//! \since docker-finance 1.0.0
@@ -69,12 +55,12 @@ class Web final
//! \details Registers internal macros
static void register_commands()
{
::docker_finance::macro::internal::Command::load({"web/internal/crypto.C"});
internal::Command::load({"web/internal/crypto.C"});
internal::g_HTTPServer->RegisterCommand(
"/rng_sample",
"::docker_finance::macro::internal::Crypto::rng_sample(\"%arg1%\")");
::docker_finance::macro::internal::Command::load({"web/internal/meta.C"});
internal::Command::load({"web/internal/meta.C"});
internal::g_HTTPServer->RegisterCommand(
"/meta_sample",
"::docker_finance::macro::internal::Meta::meta_sample(\"%arg1%\")");