MongoDB C++ Driver  mongocxx-3.1.3
Public Member Functions | List of all members
bsoncxx::document::value Class Reference

A read-only BSON document that owns its underlying buffer. More...

#include <value.hpp>

Public Member Functions

 value (std::uint8_t *data, std::size_t length, deleter_type dtor)
 Constructs a value from a buffer. More...
 
 value (unique_ptr_type ptr, std::size_t length)
 Constructs a value from a std::unique_ptr to a buffer. More...
 
 value (document::view view)
 Constructs a value from a view of a document. More...
 
document::view view () const noexcept
 Get a view over the document owned by this value.
 
 operator document::view () const noexcept
 Conversion operator that provides a view given a value. More...
 
unique_ptr_type release ()
 Transfer ownership of the underlying buffer to the caller. More...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ value() [1/3]

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
dataA pointer to a buffer containing a valid BSON document.
lengthThe length of the document.
dtorA user provided deleter.

◆ value() [2/3]

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
ptrA pointer to a buffer containing a valid BSON document.
lengthThe length of the document.

◆ value() [3/3]

bsoncxx::document::value::value ( document::view  view)
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.

Parameters
viewA view of another document to copy.

Member Function Documentation

◆ operator document::view()

bsoncxx::document::value::operator document::view ( ) const
noexcept

Conversion operator that provides a view given a value.

Returns
A view over the value.

◆ 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.

The documentation for this class was generated from the following file: