20 #ifndef BEAST_UTILITY_PROPERTYSTREAM_H_INCLUDED
21 #define BEAST_UTILITY_PROPERTYSTREAM_H_INCLUDED
23 #include <ripple/beast/core/List.h>
63 template <
typename Value>
125 template <
typename Value>
139 add(
signed char value);
141 add(
unsigned char value);
145 virtual void add (char16_t value);
146 virtual void add (char32_t value);
151 add(
unsigned short value);
155 add(
unsigned int value);
159 add(
unsigned long value);
161 add(
long long value);
163 add(
unsigned long long value);
169 add(
long double value);
215 template <
typename Value>
222 template <
typename T>
243 explicit Map(
Set& parent);
257 template <
typename Value>
264 template <
typename Key,
typename Value>
266 add(Key key, Value value)
const
279 return Proxy(*
this, key);
282 template <
typename Key>
294 template <
typename Value>
320 operator=(
Set const&) =
delete;
327 template <
typename Value>
357 operator=(
Source const&) =
delete;
370 template <
class Derived>
PropertyStream & stream()
Derived * add(Derived *child)
Add a child source by pointer.
Subclasses can be called to write to a stream and have children.
virtual void map_begin()=0
Source & operator*() const
void add(std::string const &key, char const *value)
Proxy operator[](Key key) const
void add(Key key, Value value) const
PropertyStream & m_stream
Source * operator->() const
std::ostream & operator<<(std::ostream &manip(std::ostream &)) const
virtual void add(std::string const &key, std::string const &value)=0
std::recursive_mutex lock_
Proxy operator[](char const *key)
void add(std::string const &key, Value value) const
void add(Value value) const
virtual void array_begin()=0
virtual ~PropertyStream()=default
virtual void array_end()=0
Proxy operator[](std::string const &key)
Map(PropertyStream &stream)
Map & operator=(Map const &)=delete
Proxy & operator=(Value value)
void lexical_add(Value value)
std::ostringstream m_ostream
void add(char const *value)
Abstract stream with RAII containers that produce a property tree.
PropertyStream & m_stream
Proxy(Map const &map, std::string const &key)
void lexical_add(std::string const &key, Value value)
Intrusive doubly linked list.