Loading [MathJax]/extensions/MathMenu.js
Antares Xpansion
Investment simulations for Antares studies
All Classes Namespaces Files Functions Variables Typedefs Pages
GeneralDataReader.h
1#ifndef SRC_CPP_LPNAMER_INPUTREADER_GENERALDATAREADER_H
2#define SRC_CPP_LPNAMER_INPUTREADER_GENERALDATAREADER_H
3
4#include <algorithm>
5#include <filesystem>
6#include <fstream>
7#include <numeric>
8#include <sstream>
9#include <stdexcept>
10#include <vector>
11
12#include "antares-xpansion/lpnamer/helper/ProblemGenerationLogger.h"
13#include "antares-xpansion/lpnamer/input_reader/INIReader.h"
14#include "antares-xpansion/xpansion_interfaces/StringManip.h"
15
17{
18private:
19 std::shared_ptr<ProblemGenerationLog::ProblemGenerationLogger> logger_;
20 INIReader reader_;
21 int mc_years_;
22 bool user_playlist_;
23 bool playlist_reset_option_;
24 std::vector<int> active_year_list_;
25 std::vector<int> inactive_year_list_;
26 std::vector<std::string> file_lines_;
27
28 std::vector<int> GetActiveYears_();
29 std::vector<int> ActiveYearsFromActiveList();
30 std::vector<int> ActiveYearsFromInactiveList();
31 void SetPlaylistResetOption();
32 void SetPlaylistYearLists();
33 std::string ReadPlaylist(const std::string& current_section, const std::string& line);
34 void ReadPlaylistVal(const std::string& key, int val);
35 void ReadPlaylist(const std::string& line);
36
37public:
38 explicit GeneralDataIniReader(
39 const std::filesystem::path& file_path,
40 std::shared_ptr<ProblemGenerationLog::ProblemGenerationLogger> logger);
41
42 int GetNbYears() const
43 {
44 return mc_years_;
45 }
46
47 std::vector<int> GetActiveYears();
48 std::pair<std::vector<int>, std::vector<int>> GetRawPlaylist();
49};
50
51#endif // SRC_CPP_LPNAMER_INPUTREADER_GENERALDATAREADER_H
Definition GeneralDataReader.h:17
Definition INIReader.h:337