MongoDB C++ Driver
mongocxx-3.0.0
|
A variant view type that accesses values in serialized BSON documents. More...
#include <element.hpp>
Public Member Functions | |
element () | |
Construct an invalid element. More... | |
element (const std::uint8_t *raw, std::uint32_t length, std::uint32_t offset) | |
Construct an element as an offset into a buffer of bson bytes. More... | |
operator bool () const | |
Conversion operator to bool which is true for valid elements. | |
const std::uint8_t * | raw () const |
Getter for the raw bson bytes the element points to. More... | |
void | raw (const std::uint8_t *raw) |
Setter for the raw bson bytes the element points to. More... | |
std::uint32_t | length () const |
Getter for length of the raw bson bytes the element points to. More... | |
void | length (std::uint32_t length) |
Setter for length of the raw bson bytes the element points to. More... | |
std::uint32_t | offset () const |
Getter for the offset into the raw bson bytes the element points to. More... | |
void | offset (std::uint32_t offset) |
Setter for the offset into the raw bson bytes the element points to. More... | |
bsoncxx::type | type () const |
Getter for the type of the element. More... | |
stdx::string_view | key () const |
Getter for the element's key. More... | |
types::b_double | get_double () const |
Getter for elements of the b_double type. More... | |
types::b_utf8 | get_utf8 () const |
Getter for elements of the b_utf8 type. More... | |
types::b_document | get_document () const |
Getter for elements of the b_document type. More... | |
types::b_array | get_array () const |
Getter for elements of the b_array type. More... | |
types::b_binary | get_binary () const |
Getter for elements of the b_binary type. More... | |
types::b_undefined | get_undefined () const |
Getter for elements of the b_undefined type. More... | |
types::b_oid | get_oid () const |
Getter for elements of the b_oid type. More... | |
types::b_bool | get_bool () const |
Getter for elements of the b_bool type. More... | |
types::b_date | get_date () const |
Getter for elements of the b_date type. More... | |
types::b_null | get_null () const |
Getter for elements of the b_null type. More... | |
types::b_regex | get_regex () const |
Getter for elements of the b_regex type. More... | |
types::b_dbpointer | get_dbpointer () const |
Getter for elements of the b_dbpointer type. More... | |
types::b_code | get_code () const |
Getter for elements of the b_code type. More... | |
types::b_symbol | get_symbol () const |
Getter for elements of the b_symbol type. More... | |
types::b_codewscope | get_codewscope () const |
Getter for elements of the b_codewscope type. More... | |
types::b_int32 | get_int32 () const |
Getter for elements of the b_int32 type. More... | |
types::b_timestamp | get_timestamp () const |
Getter for elements of the b_timestamp type. More... | |
types::b_int64 | get_int64 () const |
Getter for elements of the b_int64 type. More... | |
types::b_minkey | get_minkey () const |
Getter for elements of the b_minkey type. More... | |
types::b_maxkey | get_maxkey () const |
Getter for elements of the b_maxkey type. More... | |
types::value | get_value () const |
Getter for a types::value variant wrapper of the value portion of the element. More... | |
element | operator[] (stdx::string_view key) const |
If this element is a document, finds the first element of the document with the provided key. More... | |
array::element | operator[] (std::uint32_t i) const |
If this element is an array, indexes into this BSON array. More... | |
A variant view type that accesses values in serialized BSON documents.
Element functions as a variant type, where the kind of the element can be interrogated by calling type(), the key can be extracted by calling key() and a specific value can be extracted through get_X() accessors.
bsoncxx::document::element::element | ( | ) |
Construct an invalid element.
This is useful when mapping the end iterator of a document or array view.
|
explicit |
Construct an element as an offset into a buffer of bson bytes.
raw | A pointer to the raw bson bytes. |
length | The size of the bson buffer. |
offset | The element's offset into the buffer. |
types::b_array bsoncxx::document::element::get_array | ( | ) | const |
Getter for elements of the b_array type.
bsoncxx::exception | if this element is not a b_array. |
types::b_binary bsoncxx::document::element::get_binary | ( | ) | const |
Getter for elements of the b_binary type.
bsoncxx::exception | if this element is not a b_binary. |
types::b_bool bsoncxx::document::element::get_bool | ( | ) | const |
Getter for elements of the b_bool type.
bsoncxx::exception | if this element is not a b_bool. |
types::b_code bsoncxx::document::element::get_code | ( | ) | const |
Getter for elements of the b_code type.
bsoncxx::exception | if this element is not a b_code. |
types::b_codewscope bsoncxx::document::element::get_codewscope | ( | ) | const |
Getter for elements of the b_codewscope type.
bsoncxx::exception | if this element is not a b_codewscope. |
types::b_date bsoncxx::document::element::get_date | ( | ) | const |
Getter for elements of the b_date type.
bsoncxx::exception | if this element is not a b_date. |
types::b_dbpointer bsoncxx::document::element::get_dbpointer | ( | ) | const |
Getter for elements of the b_dbpointer type.
bsoncxx::exception | if this element is not a b_dbpointer. |
types::b_document bsoncxx::document::element::get_document | ( | ) | const |
Getter for elements of the b_document type.
bsoncxx::exception | if this element is not a b_document. |
types::b_double bsoncxx::document::element::get_double | ( | ) | const |
Getter for elements of the b_double type.
bsoncxx::exception | if this element is not a b_double. |
types::b_int32 bsoncxx::document::element::get_int32 | ( | ) | const |
Getter for elements of the b_int32 type.
bsoncxx::exception | if this element is not a b_int32. |
types::b_int64 bsoncxx::document::element::get_int64 | ( | ) | const |
Getter for elements of the b_int64 type.
bsoncxx::exception | if this element is not a b_int64. |
types::b_maxkey bsoncxx::document::element::get_maxkey | ( | ) | const |
Getter for elements of the b_maxkey type.
bsoncxx::exception | if this element is not a b_maxkey. |
types::b_minkey bsoncxx::document::element::get_minkey | ( | ) | const |
Getter for elements of the b_minkey type.
bsoncxx::exception | if this element is not a b_minkey. |
types::b_null bsoncxx::document::element::get_null | ( | ) | const |
Getter for elements of the b_null type.
bsoncxx::exception | if this element is not a b_null. |
types::b_oid bsoncxx::document::element::get_oid | ( | ) | const |
Getter for elements of the b_oid type.
bsoncxx::exception | if this element is not a b_oid. |
types::b_regex bsoncxx::document::element::get_regex | ( | ) | const |
Getter for elements of the b_regex type.
bsoncxx::exception | if this element is not a b_regex. |
types::b_symbol bsoncxx::document::element::get_symbol | ( | ) | const |
Getter for elements of the b_symbol type.
bsoncxx::exception | if this element is not a b_symbol. |
types::b_timestamp bsoncxx::document::element::get_timestamp | ( | ) | const |
Getter for elements of the b_timestamp type.
bsoncxx::exception | if this element is not a b_timestamp. |
types::b_undefined bsoncxx::document::element::get_undefined | ( | ) | const |
Getter for elements of the b_undefined type.
bsoncxx::exception | if this element is not a b_undefined. |
types::b_utf8 bsoncxx::document::element::get_utf8 | ( | ) | const |
Getter for elements of the b_utf8 type.
bsoncxx::exception | if this element is not a b_utf8. |
types::value bsoncxx::document::element::get_value | ( | ) | const |
Getter for a types::value variant wrapper of the value portion of the element.
stdx::string_view bsoncxx::document::element::key | ( | ) | const |
Getter for the element's key.
std::uint32_t bsoncxx::document::element::length | ( | ) | const |
Getter for length of the raw bson bytes the element points to.
void bsoncxx::document::element::length | ( | std::uint32_t | length | ) |
Setter for length of the raw bson bytes the element points to.
length | The length of the bytes this element points to. |
std::uint32_t bsoncxx::document::element::offset | ( | ) | const |
Getter for the offset into the raw bson bytes the element points to.
void bsoncxx::document::element::offset | ( | std::uint32_t | offset | ) |
Setter for the offset into the raw bson bytes the element points to.
offset | The offset into the bytes this element points to. |
element bsoncxx::document::element::operator[] | ( | stdx::string_view | key | ) | const |
If this element is a document, finds the first element of the document with the provided key.
If there is no such element, an invalid document::element will be returned. The runtime of operator[] is linear in the length of the document.
bsoncxx::exception | if this element is not a document. |
key | The key to search for. |
array::element bsoncxx::document::element::operator[] | ( | std::uint32_t | i | ) | const |
If this element is an array, indexes into this BSON array.
If the index is out-of-bounds, an invalid array::element will be returned. As BSON represents arrays as documents, the runtime of operator[] is linear in the length of the array.
bsoncxx::exception | if this element is not an array. |
i | The index of the element. |
const std::uint8_t* bsoncxx::document::element::raw | ( | ) | const |
Getter for the raw bson bytes the element points to.
void bsoncxx::document::element::raw | ( | const std::uint8_t * | raw | ) |
Setter for the raw bson bytes the element points to.
raw | The bytes this element should point to. |
bsoncxx::type bsoncxx::document::element::type | ( | ) | const |
Getter for the type of the element.