20#ifndef ORES_CLI_APP_APPLICATION_HPP
21#define ORES_CLI_APP_APPLICATION_HPP
27#include "ores.logging/make_logger.hpp"
28#include "ores.database/domain/context.hpp"
29#include "ores.database/domain/database_options.hpp"
30#include "ores.cli/config/options.hpp"
31#include "ores.cli/config/import_options.hpp"
32#include "ores.cli/config/export_options.hpp"
33#include "ores.cli/config/delete_options.hpp"
34#include "ores.cli/config/add_options.hpp"
35#include "ores.cli/config/add_currency_options.hpp"
36#include "ores.cli/config/add_account_options.hpp"
37#include "ores.cli/config/add_system_setting_options.hpp"
38#include "ores.cli/config/add_login_info_options.hpp"
39#include "ores.cli/config/add_role_options.hpp"
40#include "ores.cli/config/add_permission_options.hpp"
41#include "ores.cli/config/add_country_options.hpp"
42#include "ores.cli/config/add_change_reason_options.hpp"
43#include "ores.cli/config/add_change_reason_category_options.hpp"
44#include "ores.cli/config/add_compute_app_options.hpp"
45#include "ores.cli/config/add_compute_app_version_options.hpp"
46#include "ores.cli/config/add_compute_batch_options.hpp"
47#include "ores.cli/config/add_compute_workunit_options.hpp"
48#include "ores.cli/config/add_day_count_fraction_type_options.hpp"
49#include "ores.cli/config/add_business_day_convention_type_options.hpp"
50#include "ores.cli/config/add_floating_index_type_options.hpp"
51#include "ores.cli/config/add_payment_frequency_type_options.hpp"
52#include "ores.cli/config/add_leg_type_options.hpp"
61 inline static std::string_view logger_name =
62 "ores.cli.application";
64 [[nodiscard]]
static auto& lg() {
66 static auto instance = make_logger(logger_name);
72 const std::optional<database::database_options>& db_opts);
78 make_context(
const std::optional<database::database_options>& db_opts);
88 void set_tenant_context(
const std::string& tenant);
89 void import_currencies(
const std::vector<std::filesystem::path> files)
const;
90 void import_data(
const std::optional<config::import_options>& ocfg)
const;
107 void export_data(
const std::optional<config::export_options>& ocfg)
const;
118 void delete_data(
const std::optional<config::delete_options>& ocfg)
const;
134 void add_data(
const std::optional<config::add_options>& ocfg)
const;
164 std::ostream& output_stream_;
Application hosting infrastructure for the CLI tool.
Definition application.hpp:54
Implements logging infrastructure for ORE Studio.
Definition boost_severity.hpp:28
Entry point for the ores command line application.
Definition application.hpp:59
void run(const config::options &cfg) const
Executes the application.
Definition application.cpp:934
Configuration for adding an account entity via command-line arguments.
Definition add_account_options.hpp:32
Configuration for adding a business day convention type via command-line arguments.
Definition add_business_day_convention_type_options.hpp:32
Configuration for adding a change reason category entity via command-line arguments.
Definition add_change_reason_category_options.hpp:32
Configuration for adding a change reason entity via command-line arguments.
Definition add_change_reason_options.hpp:32
Configuration for adding a compute app entity via command-line arguments.
Definition add_compute_app_options.hpp:32
Configuration for adding a compute app_version entity via command-line arguments.
Definition add_compute_app_version_options.hpp:33
Configuration for adding a compute batch entity via command-line arguments.
Definition add_compute_batch_options.hpp:32
Configuration for adding a compute host via command-line arguments.
Definition add_compute_host_options.hpp:32
Configuration for adding a compute workunit via command-line arguments.
Definition add_compute_workunit_options.hpp:32
Configuration for adding a country entity via command-line arguments.
Definition add_country_options.hpp:32
Configuration for adding a currency entity via command-line arguments.
Definition add_currency_options.hpp:32
Configuration for adding a day count fraction type via command-line arguments.
Definition add_day_count_fraction_type_options.hpp:32
Configuration for adding a floating index type via command-line arguments.
Definition add_floating_index_type_options.hpp:32
Configuration for adding a leg type via command-line arguments.
Definition add_leg_type_options.hpp:32
Configuration for adding a login_info entity via command-line arguments.
Definition add_login_info_options.hpp:32
Configuration for adding a payment frequency type via command-line arguments.
Definition add_payment_frequency_type_options.hpp:32
Configuration for adding a permission entity via command-line arguments.
Definition add_permission_options.hpp:32
Configuration for adding a role entity via command-line arguments.
Definition add_role_options.hpp:33
Configuration for adding a system setting entity via command-line arguments.
Definition add_system_setting_options.hpp:32
Configuration related to deleting entities.
Definition delete_options.hpp:32
Configuration related to exporting data into a supported export format.
Definition export_options.hpp:34
All of the configuration options required by the command line application.
Definition options.hpp:39
Context for the operations on a postgres database.
Definition context.hpp:47