A read-only BSON document that owns its underlying buffer.
More...
#include <value.hpp>
|
(Note that these are not member functions.)
|
|
bool | operator== (const value &lhs, const value &rhs) |
| Compares two document values for (in)-equality.
|
|
A read-only BSON document that owns its underlying buffer.
When a document::value goes out of scope, the underlying buffer is freed. Generally this class should be used sparingly; document::view should be used instead wherever possible.
◆ value() [1/4]
bsoncxx::document::value::value |
( |
std::uint8_t * |
data, |
|
|
std::size_t |
length, |
|
|
deleter_type |
dtor |
|
) |
| |
Constructs a value from a buffer.
This constructor transfers ownership of the buffer to the resulting value. A user-provided deleter is used to destroy the buffer.
- Parameters
-
data | A pointer to a buffer containing a valid BSON document. |
length | The length of the document. |
dtor | A user provided deleter. |
◆ value() [2/4]
bsoncxx::document::value::value |
( |
unique_ptr_type |
ptr, |
|
|
std::size_t |
length |
|
) |
| |
Constructs a value from a std::unique_ptr to a buffer.
The ownership of the buffer is transferred to the constructed value.
- Parameters
-
ptr | A pointer to a buffer containing a valid BSON document. |
length | The length of the document. |
◆ value() [3/4]
Constructs a value from a view of a document.
The data referenced by the document::view will be copied into a new buffer managed by the constructed value.
- Parameters
-
view | A view of another document to copy. |
◆ value() [4/4]
template<typename T , typename std::enable_if<!std::is_same< T, typename array::view >::value, int >::type = 0>
bsoncxx::document::value::value |
( |
const T & |
t | ) |
|
|
inlineexplicit |
Constructor used for serialization of user objects.
This uses argument-dependent lookup to find the function declaration void to_bson(T& t, bsoncxx::document::value doc)
.
- Parameters
-
t | A user-defined object to serialize into a BSON object. |
◆ begin()
- Returns
- A const_iterator to the first element of the document.
◆ cbegin()
- Returns
- A const_iterator to the first element of the document.
◆ cend()
- Returns
- A const_iterator to the past-the-end element of the document.
◆ data()
const std::uint8_t* bsoncxx::document::value::data |
( |
| ) |
const |
Access the raw bytes of the underlying document.
- Returns
- A pointer to the value's buffer.
◆ empty()
bool bsoncxx::document::value::empty |
( |
| ) |
const |
Checks if the underlying document is empty, i.e.
it is equivalent to the trivial document '{}'.
- Returns
- true if the underlying document is empty.
◆ end()
- Returns
- A const_iterator to the past-the-end element of the document.
◆ find()
Finds the first element of the document with the provided key.
If there is no such element, the past-the-end iterator will be returned. The runtime of find() is linear in the length of the document. This method only searches the top-level document, and will not recurse to any subdocuments.
- Parameters
-
key | The key to search for. |
- Returns
- An iterator to the matching element, if found, or the past-the-end iterator.
◆ get() [1/2]
template<typename T >
T bsoncxx::document::value::get |
( |
| ) |
|
|
inline |
Constructs an object of type T from this document object.
This method uses argument-dependent lookup to find the function declaration void from_bson(T& t, const bsoncxx::document::view& doc)
.
- Note
- Type T must be default-constructible. Otherwise, use
void get(T& t)
.
◆ get() [2/2]
template<typename T >
void bsoncxx::document::value::get |
( |
T & |
t | ) |
|
|
inline |
Constructs an object of type T from this document object.
This method uses argument-dependent lookup to find the function declaration void from_bson(T& t, const bsoncxx::document::view& doc)
.
- Parameters
-
t | The object to construct. The contents of the document object will be deserialized into t. |
◆ length()
std::size_t bsoncxx::document::value::length |
( |
| ) |
const |
Gets the length of the underlying buffer.
- Returns
- The length of the document, in bytes.
◆ operator document::view()
Conversion operator that provides a view given a value.
- Returns
- A view over the value.
◆ operator[]()
element bsoncxx::document::value::operator[] |
( |
stdx::string_view |
key | ) |
const |
Finds the first element of the document with the provided key.
If there is no such element, the invalid document::element will be returned. The runtime of operator[] is linear in the length of the document.
- Parameters
-
key | The key to search for. |
- Returns
- The matching element, if found, or the invalid element.
◆ release()
unique_ptr_type bsoncxx::document::value::release |
( |
| ) |
|
Transfer ownership of the underlying buffer to the caller.
- Warning
- After calling release() it is illegal to call any methods on this class, unless it is subsequently moved into.
- Returns
- A std::unique_ptr with ownership of the buffer.
◆ reset()
Replace the formerly-owned buffer with the new view.
This will make a copy of the passed-in view.
The documentation for this class was generated from the following file: