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_yaml_cpp
16  {
17  namespace impl
18  {
20  }
21 
22 
23  /**
24  * @brief Configuration reader class
25  */
26  class ARILES2_VISIBILITY_ATTRIBUTE 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 startMap(const Parameters &, const std::size_t /*num_entries*/);
34  void startMapEntry(const std::string &map_name);
35  void endMap();
36 
37 
38  void flush();
39 
40 
41  void startArray(const std::size_t /*size*/, const bool compact = false);
42  void endArray();
43 
44  void startRoot(const std::string &name, const Parameters &);
45  void endRoot(const std::string &name);
46 
47 
48 #define ARILES2_BASIC_TYPE(type) void writeElement(const type &element, const Parameters &param);
49 
51 
52 #undef ARILES2_BASIC_TYPE
53  };
54  } // namespace ns_yaml_cpp
55 } // namespace ariles2
ariles2
Definition: basic.h:16
ARILES2_BASIC_TYPES_LIST
#define ARILES2_BASIC_TYPES_LIST
Definition: helpers.h:131
ariles2::ns_yaml_cpp::impl::Writer
class ARILES2_VISIBILITY_ATTRIBUTE Writer
Definition: writer.h:19
ariles2::serialization::PIMPLVisitor
Definition: serialization.h:121
ARILES2_VISIBILITY_ATTRIBUTE
#define ARILES2_VISIBILITY_ATTRIBUTE
Definition: helpers.h:138
ariles2::ns_yaml_cpp::ARILES2_MACRO_SUBSTITUTE
ARILES2_MACRO_SUBSTITUTE(ARILES2_BASIC_INTEGER_TYPES_LIST) ARILES2_MACRO_SUBSTITUTE(ARILES2_BASIC_REAL_TYPES_LIST) void Writer
Definition: writer.cpp:198
ariles2::ns_yaml_cpp::impl::Writer
Definition: writer.cpp:22
ariles2::ns_yaml_cpp::Writer
Configuration reader class.
Definition: writer.h:26