Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ RUN apt-get -y update && apt-get -y upgrade \
&& apt-get -y install software-properties-common \
&& apt-get -y install wget \
# GCC stuff
&& apt-get -y install build-essential gcc-14 g++-14 \
&& apt-get -y install build-essential gcc-15 g++-15 \
# Clang stuff
#&& wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc >/dev/null \
#&& add-apt-repository -y 'deb http://apt.llvm.org/noble/ llvm-toolchain-noble-18 main' \
#&& apt update \
#&& apt-get -y install clang-18 \
&& update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-14 100 \
&& update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-14 100 \
&& update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100 \
&& update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100 \
&& apt-get -y install libstdc++-14-dev \
&& update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-15 100 \
&& update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-15 100 \
&& update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-15 100 \
&& update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-15 100 \
&& apt-get -y install libstdc++-15-dev \
&& apt-get -y install cmake \
&& apt-get -y install git \
# Install required library packages
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ Any compiler version equal or greater than the supported version should be capab
| | Supported | Minimum |
|-------|:-----------:|:-----------:|
| MSVC | 19.30 (VS2022) | 19.30 (VS2022) |
| Clang | 18 | 18 |
| GCC | 14 | 14 |
| Clang | 21 | 21 |
| GCC | 16 | 15 |

> [!NOTE]
> Minimum versions support all language features required to build the project but will not receive any fixes to support their continued use (e.g. compiler-specific workarounds).
Expand Down
4 changes: 2 additions & 2 deletions src/account/Service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ namespace opts = boost::program_options;

namespace ember::account {

Service::Service(log::Logger& logger, commands::PrefixedRegistry& cmd_register)
Service::Service(log::Logger& logger, commands::Registry& registry)
: logger(logger)
, cmd_register(cmd_register)
, registry(registry)
, start_time(std::chrono::steady_clock::now())
, service(BOOST_ASIO_CONCURRENCY_HINT_UNSAFE_IO) {}

Expand Down
6 changes: 3 additions & 3 deletions src/account/Service.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#pragma once

#include "ServiceContext.h"
#include <commands/PrefixedRegistry.h>
#include <commands/Registry.h>
#include <logger/LoggerFwd.h>
#include <shared/utility/cstring_view.hpp>
#include <boost/asio/io_context.hpp>
Expand All @@ -23,7 +23,7 @@ constexpr cstring_view app_name { "Account Daemon" };

class Service {
log::Logger& logger;
commands::PrefixedRegistry& cmd_register;
commands::Registry& registry;
std::chrono::steady_clock::time_point start_time;
boost::asio::io_context service;
ServiceContext context;
Expand All @@ -34,7 +34,7 @@ class Service {
public:
static boost::program_options::options_description options();

Service(log::Logger& logger, commands::PrefixedRegistry& cmd_register);
Service(log::Logger& logger, commands::Registry& registry);

~Service() {
stop();
Expand Down
10 changes: 4 additions & 6 deletions src/account/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
#include "Service.h"
#include <logger/Logger.h>
#include <banner/Banner.h>
#include <commands/PrefixedRegistry.h>
#include <commands/Registry.h>
#include <thread/Utility.h>
#include <shared/utility/CommandHelpers.h>
Expand All @@ -29,7 +28,7 @@ using namespace ember;
namespace opts = boost::program_options;

opts::variables_map parse_arguments(int argc, const char* argv[]);
int run(const opts::variables_map& args, log::Logger& logger, commands::PrefixedRegistry& cmd_register);
int run(const opts::variables_map& args, log::Logger& logger, commands::Registry& registry);

/*
* We want to do the minimum amount of work required to get
Expand All @@ -52,23 +51,22 @@ int main(int argc, const char* argv[]) try {

LOG_DEBUG_SYNC(logger, "Registering command handlers...");
commands::Registry registry;
commands::PrefixedRegistry cmd_register(registry);
utility::register_command_handlers(registry, logger);
utility::register_shared_commands(registry, logger);

const auto ret = run(args, logger, cmd_register);
const auto ret = run(args, logger, registry);
LOG_INFO_SYNC(logger, "{} terminated (returned '{}')", account::app_name, ret);
return ret;
} catch(const std::exception& e) {
std::cerr << e.what();
return EXIT_FAILURE;
}

int run(const opts::variables_map& args, log::Logger& logger, commands::PrefixedRegistry& cmd_register) {
int run(const opts::variables_map& args, log::Logger& logger, commands::Registry& registry) {
boost::asio::io_context io_ctx;
boost::asio::signal_set signals(io_ctx, SIGINT, SIGTERM);

account::Service service(logger, cmd_register);
account::Service service(logger, registry);

signals.async_wait([&](auto ec, auto signal) {
if(ec) {
Expand Down
12 changes: 6 additions & 6 deletions src/character/Service.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#pragma once

#include <logger/LoggerFwd.h>
#include <commands/PrefixedRegistry.h>
#include <commands/Registry.h>
#include <shared/utility/cstring_view.hpp>
#include <boost/asio/io_context.hpp>
#include <boost/program_options/variables_map.hpp>
Expand All @@ -27,17 +27,17 @@ class Service {
std::binary_semaphore stop_flag { 0 };

log::Logger& logger;
commands::PrefixedRegistry& cmd_register;
commands::Registry& registry;
std::chrono::steady_clock::time_point start_time;

void launch(const boost::program_options::variables_map& args, boost::asio::io_context& service);
public:
static boost::program_options::options_description options();

explicit Service(log::Logger& logger, commands::PrefixedRegistry& cmd_register)
: logger(logger),
cmd_register(cmd_register),
start_time(std::chrono::steady_clock::now()) {}
explicit Service(log::Logger& logger, commands::Registry& registry)
: logger(logger)
, registry(registry)
, start_time(std::chrono::steady_clock::now()) {}

~Service() {
stop();
Expand Down
8 changes: 3 additions & 5 deletions src/character/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
#include "Service.h"
#include <logger/Logger.h>
#include <banner/Banner.h>
#include <commands/PrefixedRegistry.h>
#include <commands/Registry.h>
#include <thread/Utility.h>
#include <shared/utility/CommandHelpers.h>
Expand All @@ -29,7 +28,7 @@ using namespace ember;
namespace opts = boost::program_options;

opts::variables_map parse_arguments(int argc, const char* argv[]);
int run(const opts::variables_map& args, log::Logger& logger, commands::PrefixedRegistry& cmd_register);
int run(const opts::variables_map& args, log::Logger& logger, commands::Registry& registry);

/*
* We want to do the minimum amount of work required to get
Expand All @@ -52,19 +51,18 @@ int main(int argc, const char* argv[]) try {

LOG_DEBUG_SYNC(logger, "Registering command handlers...");
commands::Registry registry;
commands::PrefixedRegistry cmd_register(registry);
utility::register_command_handlers(registry, logger);
utility::register_shared_commands(registry, logger);

const auto ret = run(args, logger, cmd_register);
const auto ret = run(args, logger, registry);
LOG_INFO_SYNC(logger, "{} terminated (returned '{}')", character::app_name, ret);
return ret;
} catch(const std::exception& e) {
std::cerr << e.what();
return EXIT_FAILURE;
}

int run(const opts::variables_map& args, log::Logger& logger, commands::PrefixedRegistry& cmd_register) try {
int run(const opts::variables_map& args, log::Logger& logger, commands::Registry& cmd_register) try {
boost::asio::io_context io_ctx;
boost::asio::signal_set signals(io_ctx, SIGINT, SIGTERM);

Expand Down
2 changes: 2 additions & 0 deletions src/fusion/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ endif()

add_executable(${EXECUTABLE_NAME}
main.cpp
CommandHelpers.h
CommandHelpers.cpp
${ICON_RESOURCE}
)

Expand Down
Loading