22 #define ARILES2_VISITOR_INCLUDED_namevalue2
33 namespace ns_namevalue2
40 virtual std::string &
name(
const std::size_t index) = 0;
41 virtual double &
value(
const std::size_t index) = 0;
42 virtual std::size_t
size()
const = 0;
43 virtual void reserve(
const std::size_t size) = 0;
44 virtual void resize(
const std::size_t size) = 0;
59 const std::string separator_ =
".";
60 const std::string bracket_left_ =
"{";
61 const std::string bracket_right_ =
"}";
65 explicit Writer(
const std::shared_ptr<NameValueContainer> &container,
const std::size_t
reserve = 0);
66 virtual void startRoot(
const std::string &name,
const Parameters ¶m);
68 virtual void startMap(
const Parameters &,
const std::size_t num_entries);
69 virtual void startMapEntry(
const std::string &map_name);
70 virtual void endMapEntry();
71 virtual void endMap();
72 virtual bool startIteratedMap(
const std::size_t ,
const Parameters &);
73 virtual void startArray(
const std::size_t size,
const bool =
false);
74 virtual void endArrayElement();
75 virtual void endArray();
78 #define ARILES2_BASIC_TYPE(type) void writeElement(const type &element, const Parameters &);
82 #undef ARILES2_BASIC_TYPE
85 void writeElement(
const std::string &element,
const Parameters ¶meters);
86 virtual const Parameters &getDefaultParameters()
const;
virtual ~NameValueContainer()=default
virtual void resize(const std::size_t size)=0
virtual double & value(const std::size_t index)=0
virtual std::size_t size() const =0
virtual void reserve(const std::size_t size)=0
virtual std::string & name(const std::size_t index)=0
Configuration writer class.
std::shared_ptr< NameValueContainer > name_value_pairs_
#define ARILES2_BASIC_NUMERIC_TYPES_LIST
visitor::Parameters Parameters
CPPUT_MACRO_SUBSTITUTE(ARILES2_BASIC_NUMERIC_TYPES_LIST) void Writer
GenericWriter< NameValuePair > Writer
std::string reserve(t_String &&...strings)