parser::write

Parse a buffer containing a complete JSON text.

Synopsis

std::size_t
write(
    char const* data,
    std::size_t size,
    boost::system::error_code& ec); (1)

std::size_t
write(
    char const* data,
    std::size_t size,
    std::error_code& ec); (2)

std::size_t
write(
    string_view s,
    boost::system::error_code& ec); (3)

std::size_t
write(
    string_view s,
    std::error_code& ec); (4)

std::size_t
write(
    char const* data,
    std::size_t size); (5)

std::size_t
write(
    string_view s); (6)

Description

This function parses a complete JSON text contained in the specified character buffer. The entire buffer must be consumed; if there are additional characters past the end of the complete JSON text, the parse fails and an error is returned.

Example

parser p;                                       // construct a parser
size_t n = p.write( "[1,2,3]" );                // parse a complete JSON text
assert( n == 7 );                               // all characters consumed
value jv = p.release();                         // take ownership of the value

Complexity

Linear in size.

Exception Safety

Basic guarantee. Calls to memory_resource::allocate may throw. Upon error or exception, subsequent calls will fail until reset is called to parse a new JSON text.

Return Value

The number of characters consumed from the buffer.

Return Value

The number of characters consumed from the buffer.

Return Value

The number of characters consumed from the buffer.

Return Value

The number of characters consumed from the buffer.

Return Value

The number of characters consumed from the buffer.

Return Value

The number of characters consumed from the buffer.

Parameters

Name Description

data

A pointer to a buffer of size characters to parse.

size

The number of characters pointed to by data.

ec

Set to the error, if any occurred.

s

The character string to parse.

Exceptions

Type Thrown On

boost::system::system_error

Thrown on error.