The C++ framework for developing highly scalable, high performance servers on Windows platforms.

CharReaderBuilder Class Reference

Inheritance diagram for CharReaderBuilder:
Collaboration diagram for CharReaderBuilder:

List of all members.


Detailed Description

Build a CharReader implementation.

Deprecated:
This is experimental and will be altered before the next release.
Usage:
  using namespace Json;
  CharReaderBuilder builder;
  builder.settings_["collectComments"] = false;
  Value value;
  std::string errs;
  bool ok = parseFromStream(builder, std::cin, &value, &errs);

Public Member Functions

 CharReaderBuilder ()
virtual ~CharReaderBuilder ()
virtual CharReadernewCharReader () const
bool validate (JB_Json::Value *invalid) const
 
Returns:
true if 'settings' are legal and consistent; otherwise, indicate bad settings via 'invalid'.


Static Public Member Functions

static void setDefaults (JB_Json::Value *settings)
 Called by ctor, but you can use this to reset settings_.
static void strictMode (JB_Json::Value *settings)
 Same as old Features::strictMode().

Public Attributes

JB_Json::Value settings_
 Configuration of this builder.

Constructor & Destructor Documentation

~CharReaderBuilder (  )  [virtual]


Member Function Documentation

CharReader * newCharReader (  )  const [virtual]

Allocate a CharReader via operator new().

Exceptions:
std::exception if something goes wrong (e.g. invalid settings)

Implements CharReader::Factory.

bool validate ( JB_Json::Value invalid  )  const

Returns:
true if 'settings' are legal and consistent; otherwise, indicate bad settings via 'invalid'.

void setDefaults ( JB_Json::Value settings  )  [static]

Called by ctor, but you can use this to reset settings_.

Precondition:
'settings' != NULL (but JB_Json::null is fine)
Remarks:
Defaults: src/lib_json/json_reader.cpp CharReaderBuilderStrictMode

[CharReaderBuilderDefaults]

[CharReaderBuilderDefaults]

void strictMode ( JB_Json::Value settings  )  [static]

Same as old Features::strictMode().

Precondition:
'settings' != NULL (but JB_Json::null is fine)
Remarks:
Defaults: src/lib_json/json_reader.cpp CharReaderBuilderDefaults

[CharReaderBuilderStrictMode]

[CharReaderBuilderStrictMode]


Member Data Documentation

Configuration of this builder.

These are case-sensitive. Available settings (case-sensitive):

  • `"collectComments": false or true`
    • true to collect comment and allow writing them back during serialization, false to discard comments. This parameter is ignored if allowComments is false.
  • `"allowComments": false or true`
    • true if comments are allowed.
  • `"strictRoot": false or true`
    • true if root must be either an array or an object value
  • `"allowDroppedNullPlaceholders": false or true`
  • `"allowNumericKeys": false or true`
    • true if numeric object keys are allowed.
  • `"stackLimit": integer`
    • Exceeding stackLimit (recursive depth of `readValue()`) will cause an exception.
    • This is a security issue (seg-faults caused by deeply nested JSON), so the default is low.
  • `"failIfExtra": false or true`
    • If true, `parse()` returns false when extra non-whitespace trails the JSON value in the input string.

You can examine 'settings_` yourself to see the defaults. You can also write and read them just like any JSON Value.

See also:
setDefaults()


Generated on Sun Sep 12 19:08:09 2021 for The Server Framework - v7.4 by doxygen 1.5.3