Ariles
Loading...
Searching...
No Matches
writer_compact.h
Go to the documentation of this file.
1/**
2 @file
3 @author Alexander Sherikov
4
5 @copyright 2014-2017 INRIA. Licensed under the Apache License, Version 2.0.
6 (see @ref LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
7
8 @copyright 2017-2018 Alexander Sherikov, Licensed under the Apache License, Version 2.0.
9 (see @ref LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
10
11 @brief
12*/
13
14#pragma once
15
16namespace ariles2
17{
18 namespace ns_msgpack_compact
19 {
20 namespace impl
21 {
22 class Writer;
23 }
24
25
26 /**
27 * @brief Configuration writer class
28 */
29 class Writer : public serialization::PIMPLVisitor<write::Visitor, impl::Writer>
30 {
31 public:
32 /**
33 * @brief Constructor
34 *
35 * @param[in] file_name
36 */
37 explicit Writer(const std::string &file_name);
38
39
40 /**
41 * @brief Constructor
42 *
43 * @param[out] output_stream
44 */
45 explicit Writer(std::ostream &output_stream);
46
47
48 void startMap(const Parameters &, const std::size_t num_entries);
49
50 bool startIteratedMap(const std::size_t /*num_entries*/, const Parameters &)
51 {
52 return (false);
53 }
54
55
56 void flush();
57
58
59 void startArray(const std::size_t size, const bool /*compact*/ = false);
60
61
62#define ARILES2_BASIC_TYPE(type) void writeElement(const type &element, const Parameters &param);
63
65
66#undef ARILES2_BASIC_TYPE
67 };
68 } // namespace ns_msgpack_compact
69} // namespace ariles2
Configuration writer class.
void startArray(const std::size_t size, const bool=false)
bool startIteratedMap(const std::size_t, const Parameters &)
void startMap(const Parameters &, const std::size_t num_entries)
Starts a nested map in the configuration file.
void flush()
Flush the configuration to the output.
#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