StormByte C++ Library: Buffer module 1.2.0
StormByte-Buffer is the buffer module of the StormByte C++ suite.
Loading...
Searching...
No Matches
List of all members
StormByte::Buffer::Generic Class Referenceabstract

Pure abstract root of the buffer interface hierarchy. More...

#include <StormByte/buffer/generic.hxx>

Inheritance diagram for StormByte::Buffer::Generic:
Inheritance graph
[legend]

Public Member Functions

Constructors / destructor / assignment
 Generic () noexcept=default
 Default construct.
 
 Generic (const Generic &) noexcept=default
 Copy construct.
 
 Generic (Generic &&) noexcept=default
 Move construct.
 
virtual ~Generic () noexcept=0
 Pure virtual destructor (keeps the class abstract).
 
Genericoperator= (const Generic &other)=default
 Copy assign.
 
Genericoperator= (Generic &&) noexcept=default
 Move assign.
 

Static Protected Member Functions

DataConvert

Convert external sources into the library DataType.

Overload forms:

template<Type::ByteInputRange Src>
static DataType DataConvert (const Src &src) noexcept
 Convert an lvalue input range to DataType.
 
template<Type::ByteInputRange Src>
static DataType DataConvert (Src &&src) noexcept
 Convert an rvalue input range to DataType (moves when already DataType).
 
static DataType DataConvert (std::string_view sv) noexcept
 Convert a string view to DataType (no trailing NUL).
 
static DataType DataConvert (const char *s) noexcept
 Convert a null-terminated C string to DataType.
 

Detailed Description

Pure abstract root of the buffer interface hierarchy.

Generic holds no data members. Concrete types that need storage (e.g. FIFO, Ring) own it themselves. Protected DataConvert helpers convert ranges / strings into DataType for constructors and writes.

See also
ReadOnly, WriteOnly, ReadWrite

Constructor & Destructor Documentation

◆ Generic() [1/3]

StormByte::Buffer::Generic::Generic ( )
defaultnoexcept

Default construct.

◆ Generic() [2/3]

StormByte::Buffer::Generic::Generic ( const Generic )
defaultnoexcept

Copy construct.

◆ Generic() [3/3]

StormByte::Buffer::Generic::Generic ( Generic &&  )
defaultnoexcept

Move construct.

◆ ~Generic()

virtual StormByte::Buffer::Generic::~Generic ( )
pure virtualnoexcept

Pure virtual destructor (keeps the class abstract).

Member Function Documentation

◆ DataConvert() [1/4]

static DataType StormByte::Buffer::Generic::DataConvert ( const char *  s)
inlinestaticprotectednoexcept

Convert a null-terminated C string to DataType.

Parameters
sSource string (may be null → empty vector).
Returns
Byte vector.

◆ DataConvert() [2/4]

template<Type::ByteInputRange Src>
static DataType StormByte::Buffer::Generic::DataConvert ( const Src &  src)
inlinestaticprotectednoexcept

Convert an lvalue input range to DataType.

Template Parameters
SrcInput range whose value_type is convertible to std::byte.
Parameters
srcSource range.
Returns
Converted byte vector.

◆ DataConvert() [3/4]

template<Type::ByteInputRange Src>
static DataType StormByte::Buffer::Generic::DataConvert ( Src &&  src)
inlinestaticprotectednoexcept

Convert an rvalue input range to DataType (moves when already DataType).

Template Parameters
SrcInput range type.
Parameters
srcSource range (may be moved from).
Returns
Converted or moved byte vector.

◆ DataConvert() [4/4]

static DataType StormByte::Buffer::Generic::DataConvert ( std::string_view  sv)
inlinestaticprotectednoexcept

Convert a string view to DataType (no trailing NUL).

Parameters
svSource characters.
Returns
Byte vector.

◆ operator=() [1/2]

Generic & StormByte::Buffer::Generic::operator= ( const Generic other)
default

Copy assign.

◆ operator=() [2/2]

Generic & StormByte::Buffer::Generic::operator= ( Generic &&  )
defaultnoexcept

Move assign.


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