mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2025-10-14 15:05:34 +02:00
StreamWriter::Builder
This commit is contained in:
@@ -696,9 +696,21 @@ int MyStreamWriter::write(Value const& root) const
|
||||
sout_ << root;
|
||||
return 0;
|
||||
}
|
||||
class StreamWriterBuilder {
|
||||
typedef StreamWriter::CommentStyle CommentStyle;
|
||||
CommentStyle cs_;
|
||||
public:
|
||||
virtual ~StreamWriterBuilder();
|
||||
virtual void setCommentStyle(CommentStyle cs);
|
||||
virtual StreamWriter* newStreamWriter(std::ostream* sout) const;
|
||||
};
|
||||
StreamWriterBuilder::~StreamWriterBuilder()
|
||||
{
|
||||
}
|
||||
void StreamWriterBuilder::setCommentStyle(CommentStyle cs)
|
||||
{
|
||||
cs_ = cs;
|
||||
}
|
||||
StreamWriter* StreamWriterBuilder::newStreamWriter(std::ostream* stream) const
|
||||
{
|
||||
// return new StyledStreamWriter(stream);
|
||||
@@ -707,10 +719,26 @@ StreamWriter* StreamWriterBuilder::newStreamWriter(std::ostream* stream) const
|
||||
StreamWriterBuilderFactory::~StreamWriterBuilderFactory()
|
||||
{
|
||||
}
|
||||
StreamWriterBuilder* StreamWriterBuilderFactory::newStreamWriterBuilder()
|
||||
StreamWriterBuilder* StreamWriterBuilderFactory::newStreamWriterBuilder() const
|
||||
{
|
||||
return new StreamWriterBuilder;
|
||||
}
|
||||
|
||||
StreamWriter::Builder::Builder(StreamWriterBuilderFactory const* f)
|
||||
: own_(f->newStreamWriterBuilder())
|
||||
{
|
||||
}
|
||||
StreamWriter::Builder::~Builder()
|
||||
{
|
||||
delete own_;
|
||||
}
|
||||
void StreamWriter::Builder::setCommentStyle(CommentStyle cs)
|
||||
{
|
||||
own_->setCommentStyle(cs);
|
||||
}
|
||||
|
||||
/// Do not take ownership of sout, but maintain a reference.
|
||||
StreamWriter* newStreamWriter(std::ostream* sout);
|
||||
std::string writeString(Value const& root, StreamWriterBuilder const& builder) {
|
||||
std::ostringstream sout;
|
||||
std::unique_ptr<StreamWriter> const sw(builder.newStreamWriter(&sout));
|
||||
|
Reference in New Issue
Block a user