Antares Xpansion
Investment simulations for Antares studies
Loading...
Searching...
No Matches
JsonWriter.h
1
2#pragma once
3
4#include <json/writer.h>
5
6#include <filesystem>
7#include <fstream>
8
9#include "antares-xpansion/benders/output/OutputWriter.h"
10#include "antares-xpansion/xpansion_interfaces/Clock.h"
11
12namespace Output {
13
19class JsonWriter : public OutputWriter {
20 private:
21 std::shared_ptr<Clock> _clock;
22 std::filesystem::path _filename;
23 std::ofstream _jsonOut_l;
24 // attributes of the optimization execution
25 Json::Value _output;
26 void write_iterations(const IterationsData &iterations_data);
27
28 void _open_file();
29
30 public:
34 JsonWriter() = delete;
35
36 JsonWriter(std::shared_ptr<Clock> p_clock,
37 const std::filesystem::path &json_filename);
38
39 JsonWriter(const std::filesystem::path &json_filename,
40 const Json::Value &json_file_content);
41
45 virtual ~JsonWriter() = default;
46
50 void updateBeginTime() override;
51
55 void updateEndTime() override;
56
57 virtual void update_solution(const SolutionData &solution_data);
58
62 virtual void dump();
63
68 void initialize();
69
70 void end_writing(const IterationsData &iterations_data);
71
72 void write_iteration(const Iteration &iteration_data,
73 const size_t iteration_num) override;
74 void write_solver_name(const std::string &solver_name) override;
75 void write_master_name(const std::string &master_name) override;
76 void write_log_level(const int log_level) override;
77 void write_solution(const SolutionData &solution) override;
78 void write_nbweeks(const int nb_weeks) override;
79 void write_duration(const double duration) override;
80 std::string solution_status() const override;
81 void WriteProblem(const ProblemData &problem_data) override;
82 void WriteProblemFormat(const std::string format) override;
83};
84} // namespace Output
JsonWriter class to describe the execuion session of an antares xpansion optimization in a json file.
Definition JsonWriter.h:19
virtual void update_solution(const SolutionData &solution_data)
saves some entries to be later written to the json file
Definition JsonWriter.cpp:113
void updateBeginTime() override
updates the execution begin time
Definition JsonWriter.cpp:36
void updateEndTime() override
updates the end of execution time
Definition JsonWriter.cpp:40
virtual void dump()
write the json data into a file
Definition JsonWriter.cpp:138
JsonWriter()=delete
JsonWriter default constructor.
virtual ~JsonWriter()=default
destructor of class JsonWriter
void initialize()
initialize outputs
Definition JsonWriter.cpp:31
OutputWriter class to describe the execuion session of an antares xpansion optimization in a log file...
Definition OutputWriter.h:93
Definition OutputWriter.h:39
struct containing some entries to be later written to the json file
Definition OutputWriter.h:77
Definition OutputWriter.h:83
struct saves some entries to be later written to the json file
Definition OutputWriter.h:60