Ariles
writer.h
Go to the documentation of this file.
1 /**
2  @file
3  @author Alexander Sherikov
4 
5  @copyright 2018 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 
13 namespace ariles2
14 {
15  namespace ns_pugixml
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 
33  void flush();
34 
35 
36  void startMapEntry(const std::string &map_name);
37  void endMapEntry();
38 
39 
40  void startArray(const std::size_t size, const bool /*compact*/ = false);
41  void startArrayElement();
42  void endArrayElement();
43  void endArray();
44 
45 
46  void startRoot(const std::string &name, const Parameters &);
47  void endRoot(const std::string &name);
48 
49 
50 #define ARILES2_BASIC_TYPE(type) void writeElement(const type &element, const Parameters &param);
51 
53 
54 #undef ARILES2_BASIC_TYPE
55  };
56  } // namespace ns_pugixml
57 } // namespace ariles2
Configuration writer class.
Definition: writer.h:27
void startRoot(const std::string &name, const Parameters &)
Definition: writer.cpp:108
void startArray(const std::size_t size, const bool=false)
Definition: writer.cpp:83
void endRoot(const std::string &name)
Definition: writer.cpp:121
void startMapEntry(const std::string &map_name)
Starts a nested map in the configuration file.
Definition: writer.cpp:72
Writer(const std::string &file_name)
Definition: writer.cpp:52
void flush()
Flush the configuration to the output.
Definition: writer.cpp:65
#define ARILES2_BASIC_TYPES_LIST
Definition: helpers.h:72
#define CPPUT_MACRO_SUBSTITUTE(macro)
Definition: misc.h:21
GenericWriter< NameValuePair > Writer
Definition: writer.h:252
Definition: basic.h:17