jaulib v1.3.6
Jau Support Library (C++, Java, ..)
Loading...
Searching...
No Matches
jau::AOctets< FixedSize > Class Template Reference

Persistent endian aware octet data, i.e. More...

#include <octets.hpp>

Inheritance diagram for jau::AOctets< FixedSize >:
Collaboration diagram for jau::AOctets< FixedSize >:

Public Member Functions

 AOctets (const lb_endian_t byte_order) noexcept
 Sized AOctets instance.
 
 AOctets (const TROOctets &source)
 Copy constructor.
 
 AOctets (const uint8_t *source_, const nsize_t source_size_, const lb_endian_t byte_order)
 Takes ownership (malloc(size) and copy, free) .
 
 AOctets (std::initializer_list< uint8_t > sourcelist, const lb_endian_t byte_order)
 Takes ownership (malloc(size) and copy, free) .
 
 ~AOctets () noexcept override
 
AOctetsoperator= (const TROOctets &_source)
 Assignment operator.
 
AOctetsresize (const nsize_t newSize)
 Sets a new size for this instance.
 
std::string toString () const
 
- Public Member Functions inherited from jau::TOctets
 TOctets (const TOctets &o) noexcept=default
 
 TOctets (TOctets &&o) noexcept=default
 
 TOctets (uint8_t *source, const nsize_t len, const lb_endian_t byte_order) noexcept
 Transient passthrough r/w memory, w/o ownership .
 
 ~TOctets () noexcept override=default
 
void bzero () noexcept
 
void bzero (const nsize_t i, const nsize_t byte_count)
 
void bzero_nc (const nsize_t i, const nsize_t byte_count) noexcept
 
uint8_t * get_wptr () noexcept
 
uint8_t * get_wptr (const nsize_t i)
 
uint8_t * get_wptr_nc (const nsize_t i) noexcept
 
void memmove (const nsize_t i, const uint8_t *source, const nsize_t byte_count)
 
void memmove_nc (const nsize_t i, const uint8_t *source, const nsize_t byte_count) noexcept
 
void memset (const nsize_t i, const uint8_t c, const nsize_t byte_count)
 
void memset_nc (const nsize_t i, const uint8_t c, const nsize_t byte_count) noexcept
 
TOctetsoperator= (const TOctets &o) noexcept=default
 
TOctetsoperator= (TOctets &&o) noexcept=default
 
void put_bytes (const nsize_t i, const uint8_t *source, const nsize_t byte_count)
 
void put_bytes_nc (const nsize_t i, const uint8_t *source, const nsize_t byte_count) noexcept
 
void put_eui48 (const nsize_t i, const EUI48 &v)
 
void put_eui48_nc (const nsize_t i, const EUI48 &v) noexcept
 
void put_int8 (const nsize_t i, const int8_t v)
 
constexpr void put_int8_nc (const nsize_t i, const int8_t v) noexcept
 
void put_octets (const nsize_t i, const TROOctets &v)
 
void put_octets (const nsize_t i, const TROOctets &v, const nsize_t v_off, const nsize_t v_len)
 
void put_octets_nc (const nsize_t i, const TROOctets &v) noexcept
 
void put_octets_nc (const nsize_t i, const TROOctets &v, const nsize_t v_off, const nsize_t v_len) noexcept
 
void put_string (const nsize_t i, const std::string &v, const nsize_t max_len, const bool includeEOS)
 
void put_string_nc (const nsize_t i, const std::string &v, const nsize_t max_len, const bool includeEOS) noexcept
 
void put_uint128 (const nsize_t i, const uint128dp_t &v)
 
constexpr void put_uint128_nc (const nsize_t i, const uint128dp_t &v) noexcept
 
void put_uint16 (const nsize_t i, const uint16_t v)
 
constexpr void put_uint16_nc (const nsize_t i, const uint16_t v) noexcept
 
void put_uint192 (const nsize_t i, const uint192dp_t &v)
 
constexpr void put_uint192_nc (const nsize_t i, const uint192dp_t &v) noexcept
 
void put_uint256 (const nsize_t i, const uint256dp_t &v)
 
constexpr void put_uint256_nc (const nsize_t i, const uint256dp_t &v) noexcept
 
void put_uint32 (const nsize_t i, const uint32_t v)
 
constexpr void put_uint32_nc (const nsize_t i, const uint32_t v) noexcept
 
void put_uint64 (const nsize_t i, const uint64_t &v)
 
constexpr void put_uint64_nc (const nsize_t i, const uint64_t &v) noexcept
 
void put_uint8 (const nsize_t i, const uint8_t v)
 
constexpr void put_uint8_nc (const nsize_t i, const uint8_t v) noexcept
 
void put_uuid (const nsize_t i, const uuid_t &v)
 
void put_uuid_nc (const nsize_t i, const uuid_t &v) noexcept
 
std::string toString () const noexcept
 
- Public Member Functions inherited from jau::TROOctets
 TROOctets () noexcept
 Default constructor with nullptr memory, zero size and lb_endian::native byte order.
 
 TROOctets (const TROOctets &o) noexcept=default
 
 TROOctets (const uint8_t *source, const nsize_t len, const lb_endian_t byte_order_val) noexcept
 Transient passthrough read-only memory, w/o ownership .
 
 TROOctets (TROOctets &&o) noexcept=default
 
virtual ~TROOctets () noexcept=default
 
constexpr lb_endian_t byte_order () const noexcept
 Returns byte order of this octet store.
 
void check_range (const nsize_t i, const nsize_t count, const char *file, int line) const
 
EUI48 get_eui48 (const nsize_t i) const
 
EUI48 get_eui48_nc (const nsize_t i) const noexcept
 
int8_t get_int8 (const nsize_t i) const
 
constexpr int8_t get_int8_nc (const nsize_t i) const noexcept
 
constexpr uint8_t const * get_ptr () const noexcept
 
uint8_t const * get_ptr (const nsize_t i) const
 
constexpr uint8_t const * get_ptr_nc (const nsize_t i) const noexcept
 
std::string get_string (const nsize_t i) const
 Assumes a null terminated string.
 
std::string get_string (const nsize_t i, const nsize_t length) const
 Assumes a string with defined length, not necessarily null terminated.
 
std::string get_string_nc (const nsize_t i) const noexcept
 Assumes a null terminated string.
 
uint128dp_t get_uint128 (const nsize_t i) const
 
constexpr uint128dp_t get_uint128_nc (const nsize_t i) const noexcept
 
uint16_t get_uint16 (const nsize_t i) const
 
constexpr uint16_t get_uint16_nc (const nsize_t i) const noexcept
 
uint192dp_t get_uint192 (const nsize_t i) const
 
constexpr uint192dp_t get_uint192_nc (const nsize_t i) const noexcept
 
uint256dp_t get_uint256 (const nsize_t i) const
 
constexpr uint256dp_t get_uint256_nc (const nsize_t i) const noexcept
 
uint32_t get_uint32 (const nsize_t i) const
 
constexpr uint32_t get_uint32_nc (const nsize_t i) const noexcept
 
uint64_t get_uint64 (const nsize_t i) const
 
constexpr uint64_t get_uint64_nc (const nsize_t i) const noexcept
 
uint8_t get_uint8 (const nsize_t i) const
 
constexpr uint8_t get_uint8_nc (const nsize_t i) const noexcept
 
std::unique_ptr< const uuid_tget_uuid (const nsize_t i, const uuid_t::TypeSize tsize) const
 
uuid128_t get_uuid128 (const nsize_t i) const
 
uuid128_t get_uuid128_nc (const nsize_t i) const noexcept
 
uuid16_t get_uuid16 (const nsize_t i) const
 
uuid16_t get_uuid16_nc (const nsize_t i) const noexcept
 
constexpr bool is_range_valid (const nsize_t i, const nsize_t count) const noexcept
 
bool operator!= (const TROOctets &rhs) const noexcept
 
TROOctetsoperator= (const TROOctets &o) noexcept=default
 
TROOctetsoperator= (TROOctets &&o) noexcept=default
 
bool operator== (const TROOctets &rhs) const noexcept
 
constexpr nsize_t size () const noexcept
 Returns the used memory size for read and write operations, may be zero.
 
std::string toString () const noexcept
 

Static Public Attributes

static constexpr const jau::nsize_t fixed_size = FixedSize
 Fixed maximum size.
 

Additional Inherited Members

- Protected Member Functions inherited from jau::TROOctets
constexpr uint8_t * data () noexcept
 
void setData (uint8_t *data_, nsize_t size_, const lb_endian_t byte_order) noexcept
 Internally sets the _size and _data fields after validation.
 
constexpr void setSize (nsize_t s) noexcept
 
- Static Protected Member Functions inherited from jau::TROOctets
static void checkPtr (uint8_t *data_, nsize_t size_) noexcept
 Validates the given data_ and size_.
 

Detailed Description

template<jau::nsize_t FixedSize>
class jau::AOctets< FixedSize >

Persistent endian aware octet data, i.e.

owned automatic fixed size memory allocation.

Endian byte order is passed at construction.

Constructor and assignment operations are not completely noexcept and may throw exceptions. This is a design choice based on dynamic resource allocation performed by this class.

Definition at line 943 of file octets.hpp.

Constructor & Destructor Documentation

◆ AOctets() [1/4]

template<jau::nsize_t FixedSize>
jau::AOctets< FixedSize >::AOctets ( const lb_endian_t byte_order)
inlinenoexcept

Sized AOctets instance.

Parameters
byte_orderlb_endian::little or lb_endian::big byte order, one may pass lb_endian::native.

Definition at line 958 of file octets.hpp.

Here is the caller graph for this function:

◆ AOctets() [2/4]

template<jau::nsize_t FixedSize>
jau::AOctets< FixedSize >::AOctets ( const uint8_t * source_,
const nsize_t source_size_,
const lb_endian_t byte_order )
inline

Takes ownership (malloc(size) and copy, free) .

Capacity and size will be of given source size.

Parameters
source_source data to be copied into this new instance
size_length of source data
byte_orderlb_endian::little or lb_endian::big byte order, one may pass lb_endian::native.
Exceptions
IllegalArgumentExceptionif fixed_size < source_size_
IllegalArgumentExceptionif source_ is nullptr and size_ > 0

Definition at line 975 of file octets.hpp.

◆ AOctets() [3/4]

template<jau::nsize_t FixedSize>
jau::AOctets< FixedSize >::AOctets ( std::initializer_list< uint8_t > sourcelist,
const lb_endian_t byte_order )
inline

Takes ownership (malloc(size) and copy, free) .

Capacity and size will be of given source size.

Parameters
sourcelistsource initializer list data to be copied into this new instance with implied size
byte_orderlb_endian::little or lb_endian::big byte order, one may pass lb_endian::native.
Exceptions
IllegalArgumentExceptionif fixed_size < source size

Definition at line 998 of file octets.hpp.

◆ AOctets() [4/4]

template<jau::nsize_t FixedSize>
jau::AOctets< FixedSize >::AOctets ( const TROOctets & source)
inline

Copy constructor.

Capacity of this new instance will be of source.size() only.

Parameters
sourcePOctet source to be copied
Exceptions
IllegalArgumentExceptionif fixed_size < source size

Definition at line 1017 of file octets.hpp.

◆ ~AOctets()

template<jau::nsize_t FixedSize>
jau::AOctets< FixedSize >::~AOctets ( )
inlineoverridenoexcept

Definition at line 1049 of file octets.hpp.

Member Function Documentation

◆ operator=()

template<jau::nsize_t FixedSize>
AOctets & jau::AOctets< FixedSize >::operator= ( const TROOctets & _source)
inline

Assignment operator.

Parameters
_sourcePOctet source to be copied
Returns
Exceptions
IllegalArgumentExceptionif fixed_size < source size

Definition at line 1034 of file octets.hpp.

◆ resize()

template<jau::nsize_t FixedSize>
AOctets & jau::AOctets< FixedSize >::resize ( const nsize_t newSize)
inline

Sets a new size for this instance.

Parameters
newSizenew size, must be <= current capacity()
Returns
Exceptions
IllegalArgumentExceptionif fixed_size < newSize

Definition at line 1059 of file octets.hpp.

◆ toString()

template<jau::nsize_t FixedSize>
std::string jau::AOctets< FixedSize >::toString ( ) const
inline

Definition at line 1067 of file octets.hpp.

Member Data Documentation

◆ fixed_size

template<jau::nsize_t FixedSize>
const jau::nsize_t jau::AOctets< FixedSize >::fixed_size = FixedSize
staticconstexpr

Fixed maximum size.

Definition at line 947 of file octets.hpp.


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