mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2025-10-15 23:20:05 +02:00
StreamWriter
This commit is contained in:
@@ -23,6 +23,35 @@ namespace Json {
|
||||
|
||||
class Value;
|
||||
|
||||
class JSON_API StreamWriter {
|
||||
protected:
|
||||
std::ostream& sout_; // not owned; will not delete
|
||||
public:
|
||||
StreamWriter(std::ostream* sout);
|
||||
virtual ~StreamWriter();
|
||||
/// Write Value into document as configured in sub-class.
|
||||
/// \return zero on success
|
||||
/// \throw std::exception possibly, depending on configuration
|
||||
virtual int write(Value const& root) const = 0;
|
||||
};
|
||||
|
||||
class JSON_API StreamWriterBuilder {
|
||||
public:
|
||||
virtual ~StreamWriterBuilder();
|
||||
/// Do not delete stream (i.e. not owned), but keep a reference.
|
||||
virtual StreamWriter* newStreamWriter(std::ostream* stream) const;
|
||||
};
|
||||
|
||||
class JSON_API StreamWriterBuilderFactory {
|
||||
public:
|
||||
virtual ~StreamWriterBuilderFactory();
|
||||
virtual StreamWriterBuilder* newStreamWriterBuilder();
|
||||
};
|
||||
|
||||
/// \brief Write into stringstream, then return string, for convenience.
|
||||
std::string writeString(Value const& root, StreamWriterBuilder const& builder);
|
||||
|
||||
|
||||
/** \brief Abstract class for writers.
|
||||
*/
|
||||
class JSON_API Writer {
|
||||
|
Reference in New Issue
Block a user