20 #include <bsoncxx/array/value-fwd.hpp>
22 #include <bsoncxx/array/view.hpp>
23 #include <bsoncxx/document/value.hpp>
25 #include <bsoncxx/config/prelude.hpp>
38 using deleter_type = void (*)(std::uint8_t*);
39 using unique_ptr_type = std::unique_ptr<uint8_t[], deleter_type>;
53 value(std::uint8_t* data, std::size_t length, deleter_type dtor);
64 value(unique_ptr_type ptr, std::size_t length);
85 BSONCXX_INLINE array::
view view() const noexcept;
92 BSONCXX_INLINE operator array::
view() const noexcept;
106 unique_ptr_type _data;
107 std::
size_t _length{0};
111 return array::view{
static_cast<uint8_t*
>(_data.get()), _length};
122 #include <bsoncxx/config/postlude.hpp>
A read-only BSON array that owns its underlying buffer.
Definition: value.hpp:36
unique_ptr_type release()
Transfer ownership of the underlying buffer to the caller.
value(array::view view)
Constructs a value from a view of an array.
array::view view() const noexcept
Get a view over the document owned by this value.
Definition: value.hpp:110
value(unique_ptr_type ptr, std::size_t length)
Constructs a value from a std::unique_ptr to a buffer.
value(std::uint8_t *data, std::size_t length, deleter_type dtor)
Constructs a value from a buffer.
A read-only, non-owning view of a BSON document.
Definition: view.hpp:36
The top-level namespace for bsoncxx library entities.
Definition: element-fwd.hpp:19