File tree Expand file tree Collapse file tree 5 files changed +26
-23
lines changed
Expand file tree Collapse file tree 5 files changed +26
-23
lines changed Original file line number Diff line number Diff 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();
8072root["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.
8577Json::StreamWriterBuilder builder;
8678builder.indentation_ = " "; // or whatever you like
Original file line number Diff line number Diff 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+ */
277291class 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};
Original file line number Diff line number Diff 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.
Original file line number Diff line number Diff line change @@ -915,6 +915,8 @@ CharReaderBuilder::CharReaderBuilder()
915915 : collectComments_(true )
916916 , features_(Features::all())
917917{}
918+ CharReaderBuilder::~CharReaderBuilder ()
919+ {}
918920CharReader* CharReaderBuilder::newCharReader () const
919921{
920922 return new OldReader (collectComments_, features_);
Original file line number Diff line number Diff line change @@ -971,6 +971,8 @@ StreamWriterBuilder::StreamWriterBuilder()
971971 : cs_(StreamWriter::CommentStyle::All)
972972 , indentation_(" \t " )
973973{}
974+ StreamWriterBuilder::~StreamWriterBuilder ()
975+ {}
974976StreamWriter* StreamWriterBuilder::newStreamWriter (std::ostream* stream) const
975977{
976978 std::string colonSymbol = " : " ;
You can’t perform that action at this time.
0 commit comments