OpenVPN 3 Core Library
|
#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>
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. | |
#define OPENVPN_BUFFER_THROW | ( | exc | ) |
Definition at line 65 of file buffer.hpp.