stream_parser::finish
Indicate the end of JSON input.
Synopsis
void
finish(
boost::system::error_code& ec); (1)
void
finish(
std::error_code& ec); (2)
void
finish(); (3)
Description
This function is used to indicate that there are no more character buffers in the current JSON text being parsed. If the resulting JSON text is incomplete, (1) and (2) assign the relevant error_code
to ec
, while (3) throws an exception.
Upon error or exception, subsequent calls will fail until reset
is called to parse a new JSON text.
Example
In the code below, finish
is called to indicate there are no more digits in the resulting number:
stream_parser p; // construct a parser
p.write( "3." ); // write the first part of the number
p.write( "14" ); // write the second part of the number
assert( ! p.done() ); // there could be more digits
p.finish(); // indicate the end of the JSON input
assert( p.done() ); // now we are finished
value jv = p.release(); // take ownership of the value
Complexity
Constant.
Exception Safety
Basic guarantee. Calls to memory_resource::allocate
may throw.
Parameters
Name | Description |
---|---|
|
Set to the error, if any occurred. |
Exceptions
Type | Thrown On |
---|---|
|
Parsing error. |