Antares Xpansion
Investment simulations for Antares studies
All Classes Namespaces Files Functions Variables Typedefs Pages
Master.h
1//
2// Created by jmkerloch on 19/04/2021.
3//
4
5#ifndef ANTARESXPANSION_MASTER_H
6#define ANTARESXPANSION_MASTER_H
7
8#include <fstream>
9#include <iostream>
10#include <list>
11#include <memory>
12
13#include "antares-xpansion/xpansion_interfaces/ILogger.h"
14
15namespace xpansion
16{
17namespace logger
18{
19
20class Master: public ILogger
21{
22public:
23 Master() = default;
24 ~Master() = default;
25
26 void addLogger(const std::shared_ptr<ILogger>& logger)
27 {
28 _loggers.push_back(logger);
29 }
30
31 void display_message(const std::string& str) override;
32 void display_message(const std::string& str,
33 LogUtils::LOGLEVEL level,
34 const std::string& context) override;
35
36 virtual void PrintIterationSeparatorBegin() override;
37 virtual void PrintIterationSeparatorEnd() override;
38
39 void log_at_initialization(const int it_number) override;
40
41 void log_iteration_candidates(const LogData& d) override;
42
43 void log_master_solving_duration(double durationInSeconds) override;
44
45 void LogSubproblemsSolvingWalltime(double durationInSeconds) override;
46
47 void LogSubproblemsSolvingCumulativeCpuTime(double durationInSeconds) override;
48
49 void log_at_iteration_end(const LogData& d) override;
50
51 void log_at_ending(const LogData& d) override;
52
53 void log_total_duration(double durationInSeconds) override;
54
55 void log_stop_criterion_reached(const StoppingCriterion stopping_criterion) override;
56
57 void display_restart_message() override;
58 void restart_elapsed_time(const double elapsed_time) override;
59 void number_of_iterations_before_restart(const int num_iterations) override;
60 void restart_best_iteration(const int best_iterations) override;
61 void restart_best_iterations_infos(const LogData& best_iterations_data) override;
62 void LogAtInitialRelaxation() override;
63 void LogAtSwitchToInteger() override;
64 void cumulative_number_of_sub_problem_solved(int number) override;
65
66private:
67 std::list<std::shared_ptr<ILogger>> _loggers;
68};
69
70} // namespace logger
71} // namespace xpansion
72
73#endif // ANTARESXPANSION_MASTER_H
abstract class for operational logs
Definition ILogger.h:180
Definition Master.h:21
void display_message(const std::string &str) override
pure virtual method to display a std::string message
Definition Master.cpp:8
Definition ILogger.h:51