Ariles
Loading...
Searching...
No Matches
writer.h
Go to the documentation of this file.
1/**
2 @file
3 @author Alexander Sherikov
4
5 @copyright 2018-2026 Alexander Sherikov, Licensed under the Apache License, Version 2.0.
6 (see @ref LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
7
8 @brief
9*/
10
11#pragma once
12
13namespace ariles2
14{
15 namespace ns_python
16 {
17 namespace impl
18 {
19 class Writer;
20 }
21
22
23 /**
24 * @brief Configuration writer class
25 */
26 class Writer : public serialization::PIMPLVisitor<write::Visitor, impl::Writer>
27 {
28 public:
29 explicit Writer(const std::string &file_name);
30 explicit Writer(std::ostream &output_stream);
31
32 void flush();
33
34 void startRoot(const std::string &name, const Parameters &);
35
36 void startMap(const Parameters &, const std::size_t /*num_entries*/);
37 void endMap();
38 void startMapEntry(const std::string &map_name);
39 void endMapEntry();
40
41
42 void startVector(const std::size_t size);
43 void endVectorElement();
44 void endVector();
45
46 void startMatrix(
47 const bool dynamic,
48 const std::size_t cols,
49 const std::size_t rows,
50 const Parameters &param);
51 void startMatrixRow(const std::size_t cols, const Parameters &param);
52 void endMatrixElement();
53 void endMatrixRow(const Parameters &param);
54 void endMatrix(const bool dynamic, const Parameters &param);
55
56 void startArray(const std::size_t size, const bool /*compact*/ = false);
57 void endArrayElement();
58 void endArray();
59
60
61#define ARILES2_BASIC_TYPE(type) void writeElement(const type &element, const Parameters &param);
62
64
65#undef ARILES2_BASIC_TYPE
66 };
67 } // namespace ns_python
68} // namespace ariles2
Configuration writer class.
Definition writer.h:27
void flush()
Flush the configuration to the output.
Definition writer.cpp:60
void startMatrix(const bool dynamic, const std::size_t cols, const std::size_t rows, const Parameters &param)
Definition writer.cpp:150
void endMatrix(const bool dynamic, const Parameters &param)
Definition writer.cpp:160
void endMap()
Ends a nested map in the configuration file.
Definition writer.cpp:106
void startArray(const std::size_t size, const bool=false)
Definition writer.cpp:112
void startMapEntry(const std::string &map_name)
Starts a nested map in the configuration file.
Definition writer.cpp:93
void startRoot(const std::string &name, const Parameters &)
Definition writer.cpp:66
void endMatrixRow(const Parameters &param)
Definition writer.cpp:172
void startMatrixRow(const std::size_t cols, const Parameters &param)
Definition writer.cpp:167
void startVector(const std::size_t size)
Definition writer.cpp:132
void startMap(const Parameters &, const std::size_t)
Starts a nested map in the configuration file.
Definition writer.cpp:88
#define ARILES2_BASIC_TYPES_LIST
Definition helpers.h:72
#define CPPUT_MACRO_SUBSTITUTE(macro)
Definition misc.h:21