ndn::Buffer Class Reference

General-purpose automatically managed/resized buffer. More...

#include <ndn-cxx/encoding/buffer.hpp>

+ Inheritance diagram for ndn::Buffer:
+ Collaboration diagram for ndn::Buffer:

Public Member Functions

 Buffer ()=default
 Creates an empty Buffer. More...
 
 Buffer (const Buffer &)
 Copy constructor. More...
 
 Buffer (Buffer &&) noexcept
 Move constructor. More...
 
 Buffer (size_t size)
 Creates a Buffer with pre-allocated size. More...
 
 Buffer (const void *buf, size_t length)
 Creates a Buffer by copying contents from a raw buffer. More...
 
template<class InputIt >
 Buffer (InputIt first, InputIt last)
 Creates a Buffer by copying the elements of the range [first, last) More...
 
template<class T >
T * get () noexcept
 
template<class T >
const T * get () const noexcept
 
Bufferoperator= (const Buffer &)
 Copy assignment operator. More...
 
Bufferoperator= (Buffer &&) noexcept
 Move assignment operator. More...
 

Public Attributes

elements
 STL member. More...
 

Detailed Description

General-purpose automatically managed/resized buffer.

In most respect, the Buffer class is equivalent to a std::vector<uint8_t>, and it in fact uses the latter as a base class. In addition to that, it provides the get<T>() helper method that automatically casts the returned pointer to the requested type.

Definition at line 40 of file buffer.hpp.

Constructor & Destructor Documentation

ndn::Buffer::Buffer ( )
default

Creates an empty Buffer.

ndn::Buffer::Buffer ( const Buffer )
inlinedefault

Copy constructor.

ndn::Buffer::Buffer ( Buffer &&  )
inlinedefaultnoexcept

Move constructor.

ndn::Buffer::Buffer ( size_t  size)
inlineexplicit

Creates a Buffer with pre-allocated size.

Parameters
sizesize of the Buffer to be allocated

Definition at line 69 of file buffer.hpp.

ndn::Buffer::Buffer ( const void *  buf,
size_t  length 
)
inline

Creates a Buffer by copying contents from a raw buffer.

Parameters
bufconst pointer to buffer to copy
lengthlength of the buffer to copy

Definition at line 78 of file buffer.hpp.

template<class InputIt >
ndn::Buffer::Buffer ( InputIt  first,
InputIt  last 
)
inline

Creates a Buffer by copying the elements of the range [first, last)

Parameters
firstan input iterator to the first element to copy
lastan input iterator to the element immediately following the last element to copy

Definition at line 89 of file buffer.hpp.

Member Function Documentation

template<class T >
T* ndn::Buffer::get ( )
inlinenoexcept
Returns
pointer to the first byte of the buffer, cast to the requested type T

Definition at line 98 of file buffer.hpp.

template<class T >
const T* ndn::Buffer::get ( ) const
inlinenoexcept
Returns
const pointer to the first byte of the buffer, cast to the requested type T

Definition at line 107 of file buffer.hpp.

Buffer & ndn::Buffer::operator= ( const Buffer )
inlinedefault

Copy assignment operator.

Buffer & ndn::Buffer::operator= ( Buffer &&  )
inlinedefaultnoexcept

Move assignment operator.

Member Data Documentation

T std::vector< T >::elements
inherited

STL member.