src/application/app_config.hpp
Namespaces
Classes
Types
Types Documentation
using AppConfigPtr
using sgns::application::AppConfigPtr = std::shared_ptr<AppConfiguration>;
Source code
#ifndef SUPERGENIUS_APP_CONFIG_HPP
#define SUPERGENIUS_APP_CONFIG_HPP
#include <spdlog/spdlog.h>
#include <boost/asio/ip/tcp.hpp>
#include <memory>
#include <string>
namespace sgns::application
{
class AppConfiguration
{
public:
enum struct LoadScheme
{
kBlockProducing,
kValidating,
kFullSyncing,
};
virtual ~AppConfiguration() = default;
[[nodiscard]] virtual const std::string &genesis_path() const = 0;
[[nodiscard]] virtual const std::string &keystore_path() const = 0;
[[nodiscard]] virtual const std::string &rocksdb_path() const = 0;
[[nodiscard]] virtual uint16_t p2p_port() const = 0;
[[nodiscard]] virtual const boost::asio::ip::tcp::endpoint &rpc_http_endpoint() const = 0;
[[nodiscard]] virtual const boost::asio::ip::tcp::endpoint &rpc_ws_endpoint() const = 0;
[[nodiscard]] virtual spdlog::level::level_enum verbosity() const = 0;
[[nodiscard]] virtual bool is_only_finalizing() const = 0;
virtual bool initialize_from_args( LoadScheme scheme, int argc, char **argv ) = 0;
};
using AppConfigPtr = std::shared_ptr<AppConfiguration>;
} // namespace sgns::application
#endif // SUPERGENIUS_APP_CONFIG_HPP
Updated on 2026-03-04 at 13:10:44 -0800