MongoDB C++ Driver mongocxx-3.11.0
Loading...
Searching...
No Matches
bsoncxx::v_noabi Namespace Reference

Description

Declares entities whose ABI stability is NOT guaranteed.

Namespaces

namespace  array
 Declares entities representing a BSON array.
 
namespace  builder
 Declares entities used to build BSON documents.
 
namespace  document
 Declares entities representing a BSON document.
 
namespace  stdx
 Declares C++17 standard library polyfills.
 
namespace  string
 Declares entities related to handling string types.
 
namespace  types
 Declares entities representing BSON value types.
 

Classes

class  decimal128
 Represents an IEEE 754-2008 BSON Decimal128 value in a platform-independent way. More...
 
class  exception
 Class representing any exceptions emitted from the bsoncxx library or its underlying implementation. More...
 
class  oid
 Represents a MongoDB ObjectId. As this BSON type is used within the MongoDB server as a primary key for each document, it is useful for representing a 'pointer' to another document. More...
 
class  validator
 A validator is used to enable or disable specific checks that can be performed during BSON validation. More...
 
class  view_or_value
 Class representing a view-or-value variant type. More...
 

Enumerations

enum class  binary_sub_type : std::uint8_t
 An enumeration of each BSON binary sub type. More...
 
enum class  error_code : std::int32_t
 Enum representing the various error types that can occur while operating on BSON values. More...
 
enum class  ExtendedJsonMode : std::uint8_t
 An enumeration of the types of Extended JSON that the to_json function accepts. More...
 
enum class  type : std::uint8_t
 An enumeration of each BSON type. More...
 

Functions

const std::error_category & error_category ()
 Get the error_category for exceptions originating from the bsoncxx library.
 
document::value from_json (stdx::string_view json)
 Constructs a new document::value from the provided JSON text.
 
std::error_code make_error_code (error_code error)
 Translate a bsoncxx::v_noabi::error_code into a std::error_code.
 
document::value operator""_bson (const char *json, size_t len)
 Constructs a new document::value from the provided JSON text. This is the UDL version of from_json().
 
std::string to_string (binary_sub_type rhs)
 Returns a stringification of the given binary sub type.
 
std::string to_string (type rhs)
 Returns a stringification of the given type.
 
stdx::optional< document::viewvalidate (const std::uint8_t *data, std::size_t length)
 Validates a BSON document. This is a simplified overload that will only do the bare minimum validation of document structure, and does not provide any further information if the document is found to be invalid.
 
stdx::optional< document::viewvalidate (const std::uint8_t *data, std::size_t length, const validator &validator, std::size_t *invalid_offset=nullptr)
 Validates a BSON document. This overload provides additional control over the precise validation that is performed, and will give the caller access to the offset at which the document was found to be invalid.
 
std::string to_json (document::view view, ExtendedJsonMode mode=ExtendedJsonMode::k_legacy)
 Converts a BSON document to a JSON string, in extended format.
 
std::string to_json (array::view view, ExtendedJsonMode mode=ExtendedJsonMode::k_legacy)
 Converts a BSON document to a JSON string, in extended format.
 
template<typename View , typename Value >
bool operator== (const view_or_value< View, Value > &lhs, const view_or_value< View, Value > &rhs)
 Compare view_or_value objects for (in)equality.
 
template<typename View , typename Value >
bool operator!= (const view_or_value< View, Value > &lhs, const view_or_value< View, Value > &rhs)
 Compare view_or_value objects for (in)equality.
 
template<typename View , typename Value >
bool operator== (const view_or_value< View, Value > &lhs, const view_or_value< View, Value > &rhs)
 Compare view_or_value objects for (in)equality.
 
template<typename View , typename Value >
bool operator!= (const view_or_value< View, Value > &lhs, const view_or_value< View, Value > &rhs)
 Compare view_or_value objects for (in)equality.
 
template<typename View , typename Value >
bool operator== (const view_or_value< View, Value > &lhs, View rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator== (View lhs, const view_or_value< View, Value > &rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator!= (const view_or_value< View, Value > &lhs, View rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator!= (View lhs, const view_or_value< View, Value > &rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator== (const view_or_value< View, Value > &lhs, const Value &rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator== (const Value &lhs, const view_or_value< View, Value > &rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator!= (const view_or_value< View, Value > &lhs, const Value &rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator!= (const Value &lhs, const view_or_value< View, Value > &rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator== (const view_or_value< View, Value > &lhs, View rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator== (View lhs, const view_or_value< View, Value > &rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator!= (const view_or_value< View, Value > &lhs, View rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator!= (View lhs, const view_or_value< View, Value > &rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator== (const view_or_value< View, Value > &lhs, const Value &rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator== (const Value &lhs, const view_or_value< View, Value > &rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator!= (const view_or_value< View, Value > &lhs, const Value &rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 
template<typename View , typename Value >
bool operator!= (const Value &lhs, const view_or_value< View, Value > &rhs)
 Mixed (in)equality operators for view_or_value against View and Value types.
 

Enumeration Type Documentation

◆ binary_sub_type

enum class bsoncxx::v_noabi::binary_sub_type : std::uint8_t
strong

An enumeration of each BSON binary sub type.

Enumerator
k_binary 0x00 

Generic binary subtype.

k_function 0x01 

Function.

k_binary_deprecated 0x02 

Binary (Old).

Deprecated
k_uuid_deprecated 0x03 

UUID (Old).

Deprecated
k_uuid 0x04 

UUID.

k_md5 0x05 

MD5.

k_encrypted 0x06 

Encrypted BSON value.

k_column 0x07 

Compressed BSON column.

k_sensitive 0x08 

Sensitive.

k_user 0x80 

User defined.

◆ error_code

enum class bsoncxx::v_noabi::error_code : std::int32_t
strong

Enum representing the various error types that can occur while operating on BSON values.

Enumerator
k_cannot_append_key_in_sub_array 

A new key was appended while building a subarray.

k_cannot_close_array_in_sub_document 

A subarray was closed while building a subdocument.

k_cannot_close_document_in_sub_array 

A subdocument was closed while building a subarray.

k_cannot_perform_array_operation_on_document 

An array operation was performed while building a document.

k_cannot_perform_document_operation_on_array 

A document operation was performed while building an array.

k_need_element_type_k_double 

The underlying value does not have the requested type.

k_need_element_type_k_string 

The underlying value does not have the requested type.

k_need_element_type_k_document 

The underlying value does not have the requested type.

k_need_element_type_k_array 

The underlying value does not have the requested type.

k_need_element_type_k_binary 

The underlying value does not have the requested type.

k_need_element_type_k_undefined 

The underlying value does not have the requested type.

k_need_element_type_k_oid 

The underlying value does not have the requested type.

k_need_element_type_k_bool 

The underlying value does not have the requested type.

k_need_element_type_k_date 

The underlying value does not have the requested type.

k_need_element_type_k_null 

The underlying value does not have the requested type.

k_need_element_type_k_regex 

The underlying value does not have the requested type.

k_need_element_type_k_dbpointer 

The underlying value does not have the requested type.

k_need_element_type_k_code 

The underlying value does not have the requested type.

k_need_element_type_k_symbol 

The underlying value does not have the requested type.

k_need_element_type_k_codewscope 

The underlying value does not have the requested type.

k_need_element_type_k_int32 

The underlying value does not have the requested type.

k_need_element_type_k_timestamp 

The underlying value does not have the requested type.

k_need_element_type_k_int64 

The underlying value does not have the requested type.

k_need_element_type_k_decimal128 

The underlying value does not have the requested type.

k_need_element_type_k_maxkey 

The underlying value does not have the requested type.

k_need_element_type_k_minkey 

The underlying value does not have the requested type.

k_need_key 

No key was provided when one was needed.

k_no_array_to_close 

An array was closed while no array was open.

k_no_document_to_close 

A document was closed while no document was open.

k_unmatched_key_in_builder 

Attempted to view or extract a document when a key was still awaiting a matching value.

k_unset_element 

An empty element was accessed.

k_json_parse_failure 

A JSON document failed to parse.

k_invalid_oid 

An Object ID string failed to parse.

k_failed_converting_bson_to_json 

This type is unused and deprecated.

k_invalid_decimal128 

A Decimal128 string failed to parse.

k_internal_error 

BSON data could not be processed, but no specific reason was available.

k_cannot_begin_appending_array 

Failed to begin appending an array to a BSON document or array.

k_cannot_begin_appending_document 

Failed to begin appending a BSON document to a BSON document or array.

k_cannot_end_appending_array 

Failed to complete appending an array to a BSON document or array.

k_cannot_end_appending_document 

Failed to complete appending a BSON document to a BSON document or array.

k_invalid_binary_subtype 

Invalid binary subtype.

k_invalid_bson_type_id 

Invalid type.

k_cannot_append_double 

Failed to append a value of the given type.

k_cannot_append_string 

Failed to append a value of the given type.

k_cannot_append_document 

Failed to append a value of the given type.

k_cannot_append_array 

Failed to append a value of the given type.

k_cannot_append_binary 

Failed to append a value of the given type.

k_cannot_append_undefined 

Failed to append a value of the given type.

k_cannot_append_oid 

Failed to append a value of the given type.

k_cannot_append_bool 

Failed to append a value of the given type.

k_cannot_append_date 

Failed to append a value of the given type.

k_cannot_append_null 

Failed to append a value of the given type.

k_cannot_append_regex 

Failed to append a value of the given type.

k_cannot_append_dbpointer 

Failed to append a value of the given type.

k_cannot_append_code 

Failed to append a value of the given type.

k_cannot_append_symbol 

Failed to append a value of the given type.

k_cannot_append_codewscope 

Failed to append a value of the given type.

k_cannot_append_int32 

Failed to append a value of the given type.

k_cannot_append_timestamp 

Failed to append a value of the given type.

k_cannot_append_int64 

Failed to append a value of the given type.

k_cannot_append_decimal128 

Failed to append a value of the given type.

k_cannot_append_maxkey 

Failed to append a value of the given type.

k_cannot_append_minkey 

Failed to append a value of the given type.

k_cannot_append_utf8 

Failed to append a value of the given type.

k_need_element_type_k_utf8 
Deprecated
Use k_need_element_type_k_string instead.

◆ ExtendedJsonMode

enum class bsoncxx::v_noabi::ExtendedJsonMode : std::uint8_t
strong

An enumeration of the types of Extended JSON that the to_json function accepts.

Enumerator
k_legacy 

to produce Legacy Extended JSON

k_canonical 

to produce Canonical Extended JSON

k_relaxed 

to produce Relaxed Extended JSON

◆ type

enum class bsoncxx::v_noabi::type : std::uint8_t
strong

An enumeration of each BSON type.

Enumerator
k_double 0x01 

64-bit binary floating point.

k_string 0x02 

UTF-8 string.

k_utf8 0x02 

Equivalent to k_string.

Deprecated
k_document 0x03 

Embedded document.

k_array 0x04 

Array.

k_binary 0x05 

Binary data.

k_undefined 0x06 

Undefined value.

Deprecated
k_oid 0x07 

ObjectId.

k_bool 0x08 

Boolean.

k_date 0x09 

UTC datetime.

k_null 0x0A 

Null value.

k_regex 0x0B 

Regular expression.

k_dbpointer 0x0C 

DBPointer.

Deprecated
k_code 0x0D 

JavaScript code.

k_symbol 0x0E 

Symbol.

Deprecated
k_codewscope 0x0F 

JavaScript code with scope.

k_int32 0x10 

32-bit integer.

k_timestamp 0x11 

Timestamp.

k_int64 0x12 

64-bit integer.

k_decimal128 0x13 

128-bit decimal floating point.

k_maxkey 0x7F 

Min key.

k_minkey 0xFF 

Max key.

Function Documentation

◆ error_category()

const std::error_category & bsoncxx::v_noabi::error_category ( )

Get the error_category for exceptions originating from the bsoncxx library.

Returns
The bsoncxx error_category

◆ from_json()

document::value bsoncxx::v_noabi::from_json ( stdx::string_view json)

Constructs a new document::value from the provided JSON text.

Parameters
jsonA string_view into a JSON document.
Returns
A document::value if conversion worked.
Exceptions
bsoncxx::v_noabi::exceptionwith error details if the conversion failed.

◆ make_error_code()

std::error_code bsoncxx::v_noabi::make_error_code ( error_code error)
inline

Translate a bsoncxx::v_noabi::error_code into a std::error_code.

Parameters
errorAn error from bsoncxx
Returns
An error_code

◆ operator!=() [1/10]

template<typename View , typename Value >
bool operator!= ( const Value & lhs,
const view_or_value< View, Value > & rhs )

Mixed (in)equality operators for view_or_value against View and Value types.

◆ operator!=() [2/10]

template<typename View , typename Value >
bool operator!= ( const view_or_value< View, Value > & lhs,
const Value & rhs )

Mixed (in)equality operators for view_or_value against View and Value types.

◆ operator!=() [3/10]

template<typename View , typename Value >
bool operator!= ( const view_or_value< View, Value > & lhs,
const view_or_value< View, Value > & rhs )

Compare view_or_value objects for (in)equality.

◆ operator!=() [4/10]

template<typename View , typename Value >
bool operator!= ( const view_or_value< View, Value > & lhs,
View rhs )

Mixed (in)equality operators for view_or_value against View and Value types.

◆ operator!=() [5/10]

template<typename View , typename Value >
bool operator!= ( View lhs,
const view_or_value< View, Value > & rhs )

Mixed (in)equality operators for view_or_value against View and Value types.

◆ operator""_bson()

document::value bsoncxx::v_noabi::operator""_bson ( const char * json,
size_t len )

Constructs a new document::value from the provided JSON text. This is the UDL version of from_json().

Parameters
jsonA string into a JSON document.
lenThe length of the JSON string. This is calculated automatically upon use of the UDL.
Returns
A document::value if conversion worked.
Exceptions
bsoncxx::v_noabi::exceptionwith error details if the conversion failed.

◆ operator==() [1/10]

template<typename View , typename Value >
bool operator== ( const Value & lhs,
const view_or_value< View, Value > & rhs )

Mixed (in)equality operators for view_or_value against View and Value types.

◆ operator==() [2/10]

template<typename View , typename Value >
bool operator== ( const view_or_value< View, Value > & lhs,
const Value & rhs )

Mixed (in)equality operators for view_or_value against View and Value types.

◆ operator==() [3/10]

template<typename View , typename Value >
bool operator== ( const view_or_value< View, Value > & lhs,
const view_or_value< View, Value > & rhs )

Compare view_or_value objects for (in)equality.

◆ operator==() [4/10]

template<typename View , typename Value >
bool operator== ( const view_or_value< View, Value > & lhs,
View rhs )

Mixed (in)equality operators for view_or_value against View and Value types.

◆ operator==() [5/10]

template<typename View , typename Value >
bool operator== ( View lhs,
const view_or_value< View, Value > & rhs )

Mixed (in)equality operators for view_or_value against View and Value types.

◆ to_json() [1/2]

std::string bsoncxx::v_noabi::to_json ( array::view view,
ExtendedJsonMode mode = ExtendedJsonMode::k_legacy )

Converts a BSON document to a JSON string, in extended format.

Parameters
viewA valid BSON document or array.
modeAn optional JSON representation mode.
Exceptions
bsoncxx::v_noabi::exceptionwith error details if the conversion failed.
Returns
An extended JSON string.

◆ to_json() [2/2]

std::string bsoncxx::v_noabi::to_json ( document::view view,
ExtendedJsonMode mode = ExtendedJsonMode::k_legacy )

Converts a BSON document to a JSON string, in extended format.

Parameters
viewA valid BSON document or array.
modeAn optional JSON representation mode.
Exceptions
bsoncxx::v_noabi::exceptionwith error details if the conversion failed.
Returns
An extended JSON string.

◆ to_string() [1/2]

std::string bsoncxx::v_noabi::to_string ( binary_sub_type rhs)

Returns a stringification of the given binary sub type.

Parameters
rhsThe type to stringify.
Returns
a std::string representation of the type.

◆ to_string() [2/2]

std::string bsoncxx::v_noabi::to_string ( type rhs)

Returns a stringification of the given type.

Parameters
rhsThe type to stringify.
Returns
a std::string representation of the type.

◆ validate() [1/2]

stdx::optional< document::view > bsoncxx::v_noabi::validate ( const std::uint8_t * data,
std::size_t length )

Validates a BSON document. This is a simplified overload that will only do the bare minimum validation of document structure, and does not provide any further information if the document is found to be invalid.

Parameters
dataA buffer containing a BSON document to validate.
lengthThe size of the buffer.
Returns
An engaged optional containing a view if the document is valid, or an unengaged optional if the document is invalid.

◆ validate() [2/2]

stdx::optional< document::view > bsoncxx::v_noabi::validate ( const std::uint8_t * data,
std::size_t length,
const validator & validator,
std::size_t * invalid_offset = nullptr )

Validates a BSON document. This overload provides additional control over the precise validation that is performed, and will give the caller access to the offset at which the document was found to be invalid.

Parameters
dataA buffer containing a BSON document to validate.
lengthThe size of the buffer.
validatorA validator used to configure what checks are done. If validation fails, it will contain the offset at which the document was found to be invalid.
invalid_offsetIf validation fails, the offset at which the document was found to be invalid will be stored here (if non-null).
Returns
An engaged optional containing a view if the document is valid, or an unengaged optional if the document is invalid.