#include <bsoncxx/v_noabi/bsoncxx/document/value.hpp>
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.
Public Types | |
| using | const_iterator = v_noabi::document::view::const_iterator |
| A const iterator over the contents of a document view. | |
| using | deleter_type = void( *)(std::uint8_t*) |
| The type of the deleter used to free the underlying BSON binary data. | |
| using | iterator = const_iterator |
| Equivalent to const_iterator. | |
| using | unique_ptr_type = std::unique_ptr<std::uint8_t[], deleter_type> |
| The type of the unique pointer used to manage the underlying BSON binary data. | |
Public Member Functions | |
| value (std::uint8_t *data, std::size_t length, deleter_type deleter) | |
| Constructs a value from a buffer. | |
| template<typename T, detail::requires_not_t< int, std::is_same< T, array::view > > = 0> | |
| value (T const &t) | |
| Constructor used for serialization of user objects. This uses argument-dependent lookup to find the function declaration void to_bson(T& t, bsoncxx::v_noabi::document::value doc). | |
| 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. | |
| value (v_noabi::document::view view) | |
| 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. | |
| const_iterator | begin () const |
| const_iterator | cbegin () const |
| const_iterator | cend () const |
| std::uint8_t const * | data () const |
| Access the raw bytes of the underlying document. | |
| bool | empty () const |
| Return true when this->length() == 5. | |
| const_iterator | end () const |
| const_iterator | find (v1::stdx::string_view key) const |
| 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. | |
| template<typename T> | |
| T | get () |
| 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, bsoncxx::v_noabi::document::view const& doc). | |
| template<typename T> | |
| void | get (T &t) |
| 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, bsoncxx::v_noabi::document::view const& doc). | |
| std::size_t | length () const |
| Gets the length of the underlying buffer. | |
| operator v1::document::value () && | |
| Convert to the bsoncxx::v1 equivalent. | |
| operator v1::document::value () const & | |
| Convert to the bsoncxx::v1 equivalent. | |
| operator v_noabi::document::view () const noexcept | |
| Conversion operator that provides a view given a value. | |
| template<typename T> | |
| value & | operator= (T const &t) |
| Assignment used for serialization of user objects. This uses argument-dependent lookup to find the function declaration void to_bson(T& t, bsoncxx::v_noabi::document::value doc). | |
| v_noabi::document::element | operator[] (v1::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. | |
| unique_ptr_type | release () |
| Transfer ownership of the underlying buffer to the caller. | |
| void | reset (v_noabi::document::view view) |
| Replace the formerly-owned buffer with the new view. This will make a copy of the passed-in view. | |
| std::size_t | size () const |
| Gets the length of the underlying buffer. | |
| v_noabi::document::view | view () const noexcept |
| Get a view over the document owned by this value. | |
Related Symbols | |
(Note that these are not member symbols.) | |
| bool | operator== (value const &lhs, value const &rhs) |
| Compares two document values for (in)-equality. | |
| bool | operator!= (value const &lhs, value const &rhs) |
| Compares two document values for (in)-equality. | |
A const iterator over the contents of a document view.
This iterator type provides a const forward iterator interface to document view elements.
| using bsoncxx::v_noabi::document::value::deleter_type = void( *)(std::uint8_t*) |
The type of the deleter used to free the underlying BSON binary data.
Equivalent to const_iterator.
| using bsoncxx::v_noabi::document::value::unique_ptr_type = std::unique_ptr<std::uint8_t[], deleter_type> |
The type of the unique pointer used to manage the underlying BSON binary data.
|
inline |
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.
| data | A pointer to a buffer containing a valid BSON document. |
| length | The length of the document. |
| deleter | A user provided deleter. |
|
inline |
Constructs a value from a std::unique_ptr to a buffer. The ownership of the buffer is transferred to the constructed value.
| ptr | A pointer to a buffer containing a valid BSON document. |
| length | The length of the document. |
|
explicit |
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.
| view | A view of another document to copy. |
|
inlineexplicit |
Constructor used for serialization of user objects. This uses argument-dependent lookup to find the function declaration void to_bson(T& t, bsoncxx::v_noabi::document::value doc).
| t | A user-defined object to serialize into a BSON object. |
|
inline |
|
inline |
|
inline |
|
inline |
Access the raw bytes of the underlying document.
|
inline |
Return true when this->length() == 5.
|
inline |
|
inline |
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.
| key | The key to search for. |
|
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, bsoncxx::v_noabi::document::view const& doc).
|
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, bsoncxx::v_noabi::document::view const& doc).
| t | The object to construct. The contents of the document object will be deserialized into t. |
|
inline |
Gets the length of the underlying buffer.
|
inlineexplicit |
Convert to the bsoncxx::v1 equivalent.
|
inlineexplicit |
Convert to the bsoncxx::v1 equivalent.
|
inlinenoexcept |
Conversion operator that provides a view given a value.
|
inline |
Assignment used for serialization of user objects. This uses argument-dependent lookup to find the function declaration void to_bson(T& t, bsoncxx::v_noabi::document::value doc).
| t | A user-defined object to serialize into a BSON object. |
|
inline |
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.
| key | The key to search for. |
|
inline |
Transfer ownership of the underlying buffer to the caller.
|
inline |
Replace the formerly-owned buffer with the new view. This will make a copy of the passed-in view.
|
inline |
Gets the length of the underlying buffer.
|
inlinenoexcept |
Get a view over the document owned by this value.
|
Compares two document values for (in)-equality.
|
Compares two document values for (in)-equality.