X Tutup
Skip to content

Commit 66a8ba2

Browse files
committed
clarify Builders
1 parent 249fd18 commit 66a8ba2

File tree

5 files changed

+26
-23
lines changed

5 files changed

+26
-23
lines changed

doc/jsoncpp.dox

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,8 @@ preserved.
5050
\section _example Code example
5151

5252
\code
53-
Json::Value root; // will contain the root value after parsing.
54-
Json::Reader reader;
55-
bool parsingSuccessful = reader.parse( config_doc, root );
56-
if ( !parsingSuccessful )
57-
{
58-
// report to the user the failure and their locations in the document.
59-
std::cout << "Failed to parse configuration\n"
60-
<< reader.getFormattedErrorMessages();
61-
return;
62-
}
53+
Json::Value root; // 'root' will contain the root value after parsing.
54+
std::cin >> root; // Or see CharReaderBuilder.
6355

6456
// Get the value of the member of root named 'encoding', return 'UTF-8' if there is no
6557
// such member.
@@ -80,7 +72,7 @@ root["indent"]["length"] = getCurrentIndentLength();
8072
root["indent"]["use_space"] = getCurrentIndentUseSpace();
8173

8274
// (NEW IN 1.4.0)
83-
// To write into a steam with minimal memory overhead,
75+
// To write into a stream with minimal memory overhead,
8476
// create a Builder for a StreamWriter.
8577
Json::StreamWriterBuilder builder;
8678
builder.indentation_ = " "; // or whatever you like

include/json/reader.h

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -274,21 +274,27 @@ class JSON_API CharReader {
274274
}; // Factory
275275
}; // CharReader
276276

277+
/** \brief Build a CharReader implementation.
278+
279+
Usage:
280+
\code
281+
using namespace Json;
282+
CharReaderBuilder builder;
283+
builder.collectComments_ = true;
284+
std::shared_ptr<CharReader> reader(
285+
builder.newCharReader());
286+
Value value;
287+
std::string errs;
288+
bool ok = parseFromStream(std::cin, &value, &errs);
289+
\endcode
290+
*/
277291
class CharReaderBuilder : public CharReader::Factory {
292+
public:
278293
bool collectComments_;
279294
Features features_;
280-
public:
281-
CharReaderBuilder();
282-
283-
CharReaderBuilder& withCollectComments(bool v) {
284-
collectComments_ = v;
285-
return *this;
286-
}
287295

288-
CharReaderBuilder& withFeatures(Features const& v) {
289-
features_ = v;
290-
return *this;
291-
}
296+
CharReaderBuilder();
297+
virtual ~CharReaderBuilder();
292298

293299
virtual CharReader* newCharReader() const;
294300
};

include/json/writer.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,10 @@ class JSON_API StreamWriterBuilder : public StreamWriter::Factory {
105105
std::string indentation_;
106106

107107
StreamWriterBuilder();
108+
virtual ~StreamWriterBuilder();
108109

109110
/// Do not take ownership of sout, but maintain a reference.
110-
StreamWriter* newStreamWriter(std::ostream* sout) const;
111+
virtual StreamWriter* newStreamWriter(std::ostream* sout) const;
111112
};
112113

113114
/** \brief Build a StreamWriter implementation.

src/lib_json/json_reader.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -915,6 +915,8 @@ CharReaderBuilder::CharReaderBuilder()
915915
: collectComments_(true)
916916
, features_(Features::all())
917917
{}
918+
CharReaderBuilder::~CharReaderBuilder()
919+
{}
918920
CharReader* CharReaderBuilder::newCharReader() const
919921
{
920922
return new OldReader(collectComments_, features_);

src/lib_json/json_writer.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -971,6 +971,8 @@ StreamWriterBuilder::StreamWriterBuilder()
971971
: cs_(StreamWriter::CommentStyle::All)
972972
, indentation_("\t")
973973
{}
974+
StreamWriterBuilder::~StreamWriterBuilder()
975+
{}
974976
StreamWriter* StreamWriterBuilder::newStreamWriter(std::ostream* stream) const
975977
{
976978
std::string colonSymbol = " : ";

0 commit comments

Comments
 (0)
X Tutup