1#ifndef BEAST_UTILITY_PROPERTYSTREAM_H_INCLUDED
2#define BEAST_UTILITY_PROPERTYSTREAM_H_INCLUDED
4#include <xrpl/beast/core/List.h>
42 template <
typename Value>
93 add(
char const* value)
98 template <
typename Value>
112 add(
signed char value);
114 add(
unsigned char value);
118 add(
unsigned short value);
122 add(
unsigned int value);
126 add(
unsigned long value);
128 add(
long long value);
130 add(
unsigned long long value);
136 add(
long double value);
182 template <
typename Value>
189 template <
typename T>
210 explicit Map(
Set& parent);
224 template <
typename Value>
231 template <
typename Key,
typename Value>
233 add(Key key, Value value)
const
246 return Proxy(*
this, key);
249 template <
typename Key>
261template <
typename Value>
294 template <
typename Value>
337 template <
class Derived>
341 add(*
static_cast<Source*
>(child));
Intrusive doubly linked list.
Source & operator*() const
Source * operator->() const
PropertyStream & m_stream
Proxy operator[](Key key) const
Proxy operator[](std::string const &key)
void add(Key key, Value value) const
void add(std::string const &key, Value value) const
Map & operator=(Map const &)=delete
Proxy operator[](char const *key)
PropertyStream & stream()
std::ostream & operator<<(std::ostream &manip(std::ostream &)) const
std::ostringstream m_ostream
Proxy & operator=(Value value)
PropertyStream & m_stream
void add(Value value) const
Set & operator=(Set const &)=delete
Subclasses can be called to write to a stream and have children.
std::recursive_mutex lock_
Derived * add(Derived *child)
Add a child source by pointer.
Source(Source const &)=delete
Source & operator=(Source const &)=delete
Abstract stream with RAII containers that produce a property tree.
void add(std::string const &key, char const *value)
virtual void add(std::string const &key, std::string const &value)=0
virtual void array_end()=0
virtual void add(std::string const &value)=0
virtual ~PropertyStream()=default
virtual void map_begin()=0
void lexical_add(Value value)
virtual void array_begin(std::string const &key)=0
virtual void array_begin()=0
virtual void map_begin(std::string const &key)=0
void lexical_add(std::string const &key, Value value)
void add(char const *value)