20#ifndef BEAST_UTILITY_PROPERTYSTREAM_H_INCLUDED
21#define BEAST_UTILITY_PROPERTYSTREAM_H_INCLUDED
23#include <xrpl/beast/core/List.h>
61 template <
typename Value>
117 template <
typename Value>
131 add(
signed char value);
133 add(
unsigned char value);
137 add(
unsigned short value);
141 add(
unsigned int value);
145 add(
unsigned long value);
147 add(
long long value);
149 add(
unsigned long long value);
155 add(
long double value);
201 template <
typename Value>
208 template <
typename T>
229 explicit Map(
Set& parent);
243 template <
typename Value>
250 template <
typename Key,
typename Value>
252 add(Key key, Value value)
const
265 return Proxy(*
this, key);
268 template <
typename Key>
280template <
typename Value>
313 template <
typename Value>
356 template <
class Derived>
360 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)