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>
119 template <
typename Value>
133 add(
signed char value);
135 add(
unsigned char value);
139 add(
unsigned short value);
143 add(
unsigned int value);
147 add(
unsigned long value);
149 add(
long long value);
151 add(
unsigned long long value);
157 add(
long double value);
203 template <
typename Value>
210 template <
typename T>
231 explicit Map(
Set& parent);
245 template <
typename Value>
252 template <
typename Key,
typename Value>
254 add(Key key, Value value)
const
267 return Proxy(*
this, key);
270 template <
typename Key>
282 template <
typename Value>
308 operator=(
Set const&) =
delete;
315 template <
typename Value>
345 operator=(
Source const&) =
delete;
358 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.