Files
rippled/include/xrpl/json/JsonPropertyStream.h
Bart 34ef577604 refactor: Replace include guards by '#pragma once' (#6322)
This change replaces all include guards in the `src/` and `include/` directories by `#pragma once`.
2026-02-04 09:50:21 -05:00

69 lines
1.5 KiB
C++

#pragma once
#include <xrpl/beast/utility/PropertyStream.h>
#include <xrpl/json/json_value.h>
namespace xrpl {
/** A PropertyStream::Sink which produces a Json::Value of type objectValue. */
class JsonPropertyStream : public beast::PropertyStream
{
public:
Json::Value m_top;
std::vector<Json::Value*> m_stack;
public:
JsonPropertyStream();
Json::Value const&
top() const;
protected:
void
map_begin() override;
void
map_begin(std::string const& key) override;
void
map_end() override;
void
add(std::string const& key, short value) override;
void
add(std::string const& key, unsigned short value) override;
void
add(std::string const& key, int value) override;
void
add(std::string const& key, unsigned int value) override;
void
add(std::string const& key, long value) override;
void
add(std::string const& key, float v) override;
void
add(std::string const& key, double v) override;
void
add(std::string const& key, std::string const& v) override;
void
array_begin() override;
void
array_begin(std::string const& key) override;
void
array_end() override;
void
add(short value) override;
void
add(unsigned short value) override;
void
add(int value) override;
void
add(unsigned int value) override;
void
add(long value) override;
void
add(float v) override;
void
add(double v) override;
void
add(std::string const& v) override;
};
} // namespace xrpl