20#ifndef BEAST_UTILITY_PROPERTYSTREAM_H_INCLUDED
21#define BEAST_UTILITY_PROPERTYSTREAM_H_INCLUDED
23#include <xrpl/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>
282template <
typename Value>
315 template <
typename Value>
358 template <
class Derived>
362 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)