OpenVPN 3 Core Library
Loading...
Searching...
No Matches
buffer.hpp File Reference
#include <string>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <type_traits>
#include <openvpn/io/io.hpp>
#include <openvpn/common/size.hpp>
#include <openvpn/common/exception.hpp>
#include <openvpn/common/rc.hpp>
#include <openvpn/buffer/bufclamp.hpp>
#include <openvpn/common/make_rc.hpp>
#include <openvpn/common/intrinsic_type.hpp>
Include dependency graph for buffer.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openvpn::BufferException
 report various types of exceptions or errors that may occur when working with buffers More...
 
struct  openvpn::BufferFlags
 
class  openvpn::ConstBufferType< T >
 Immutable buffer with double ended access and adjustable free space at both ends. More...
 
class  openvpn::BufferType< T >
 
class  openvpn::BufferAllocatedType< T >
 

Namespaces

namespace  openvpn
 
namespace  openvpn::BufAllocFlags
 

Macros

#define OPENVPN_BUFFER_THROW(exc)
 

Typedefs

using openvpn::Buffer = BufferType< unsigned char >
 
using openvpn::ConstBuffer = ConstBufferType< unsigned char >
 
using openvpn::BufferAllocated = BufferAllocatedType< unsigned char >
 
using openvpn::BufferAllocatedRc = RcEnable< BufferAllocated, RC< thread_unsafe_refcount > >
 
using openvpn::BufferPtr = RCPtr< BufferAllocatedRc >
 
using openvpn::BufferAllocatedTS = RcEnable< BufferAllocated, RC< thread_safe_refcount > >
 
using openvpn::BufferPtrTS = RCPtr< BufferAllocatedTS >
 

Functions

constexpr BufferFlags openvpn::BufAllocFlags::NO_FLAGS (0u)
 no flags set
 
constexpr BufferFlags openvpn::BufAllocFlags::CONSTRUCT_ZERO (1u<< 0)
 if enabled, constructors/init will zero allocated space
 
constexpr BufferFlags openvpn::BufAllocFlags::DESTRUCT_ZERO (1u<< 1)
 if enabled, destructor will zero data before deletion
 
constexpr BufferFlags openvpn::BufAllocFlags::GROW (1u<< 2)
 if enabled, buffer will grow (otherwise buffer_full exception will be thrown)
 
constexpr BufferFlags openvpn::BufAllocFlags::ARRAY (1u<< 3)
 if enabled, use as array
 
template<typename T_ >
 openvpn::BufferAllocatedType (const BufferType< T_ > &, BufferFlags) -> BufferAllocatedType< unsigned char >
 
template<typename T >
ConstBufferType< T > & openvpn::const_buffer_ref (BufferType< T > &src)
 
template<typename T >
const ConstBufferType< T > & openvpn::const_buffer_ref (const BufferType< T > &src)
 
template<typename AlignT , typename T >
AlignT * openvpn::align_as (BufferAllocatedType< T > &buf)
 Aligns buffer.data() to the required value and returns a pointer to the aligned object.
 

Macro Definition Documentation

◆ OPENVPN_BUFFER_THROW

#define OPENVPN_BUFFER_THROW (   exc)
Value:
{ \
throw BufferException(BufferException::exc); \
}

Definition at line 65 of file buffer.hpp.