uTL
micro Template library
|
Abstract base class for input buffered devices. More...
#include <inbuf_dev.h>
Public Types | |
using | type = inbuf_dev_t |
Export type as identity meta-function. More... | |
using | data_type = data_t |
using | pointer_type = data_t * |
Public Member Functions | |
Public Get interface | |
size_t | in_avail () |
size_t | get (data_t &data) |
The base get interface. This function should read a single data_t object from device usually in non-blocking mode. More... | |
size_t | get (data_t *data, size_t n) |
Old stile get functionality using free standing data_t*. This function should return a stream of data from device. More... | |
Stream operator >> interface | |
template<typename _Dst_t > | |
inbuf_dev_t & | operator>> (_Dst_t &dst) |
Template operator >> implementation for for all by value/ref parameters. More... | |
template<typename _Dst_t > | |
inbuf_dev_t & | operator>> (_Dst_t *dst)=delete |
Specialization to disallow pointer types as destination. More... | |
inbuf_dev_t & | operator>> (data_t &dst) |
Overload for single data_t object. More... | |
iterator | end () noexcept |
const_iterator | end () const noexcept |
const_iterator | cend () const noexcept |
Protected Member Functions | |
Constructor / Destructor | |
~inbuf_dev ()=default | |
Allow destructor from derived only. More... | |
inbuf_dev ()=default | |
A default constructor from derived only. More... | |
inbuf_dev (const inbuf_dev_t &)=delete | |
No copies. More... | |
inbuf_dev_t & | operator= (const inbuf_dev_t &)=delete |
Private Types | |
using | inbuf_dev_t = inbuf_dev< impl_t, data_t, streamsize > |
class type syntactic sugar More... | |
Private Member Functions | |
_CRTP_IMPL (impl_t) | |
Common input device interface requirements | |
size_t | in_avail_ () |
size_t | get_ (data_t &data) |
size_t | get_ (data_t *data, size_t n) |
STL-like Input iterator interface | |
using | iterator = indev_it< inbuf_dev_t, data_t *, streamsize > |
Iterator. More... | |
using | const_iterator = indev_it< inbuf_dev_t, const data_t *, streamsize > |
Const iterator. More... | |
iterator | begin () noexcept |
.begin implementation More... | |
const_iterator | begin () const noexcept |
const_iterator | cbegin () const noexcept |
Abstract base class for input buffered devices.
Template base class for buffered input buffered devices. using CRTP
This class force a common interface for input, buffered devices. By using this common interface the class implements
impl_t | The CRTP type (the derived/implementation class typename). |
data_t | The devices base type of data |
streamsize | The number of elements to indicate eos. |
Definition at line 55 of file inbuf_dev.h.
using utl::inbuf_dev< impl_t, data_t, streamsize >::const_iterator = indev_it <inbuf_dev_t, const data_t*, streamsize> |
Const iterator.
Definition at line 162 of file inbuf_dev.h.
using utl::inbuf_dev< impl_t, data_t, streamsize >::data_type = data_t |
Export types as input device concept demands
Definition at line 62 of file inbuf_dev.h.
|
private |
class type syntactic sugar
Definition at line 57 of file inbuf_dev.h.
using utl::inbuf_dev< impl_t, data_t, streamsize >::iterator = indev_it <inbuf_dev_t, data_t*, streamsize> |
Iterator.
Definition at line 161 of file inbuf_dev.h.
using utl::inbuf_dev< impl_t, data_t, streamsize >::pointer_type = data_t* |
Definition at line 63 of file inbuf_dev.h.
using utl::inbuf_dev< impl_t, data_t, streamsize >::type = inbuf_dev_t |
Export type as identity meta-function.
Definition at line 65 of file inbuf_dev.h.
|
protecteddefault |
Allow destructor from derived only.
|
protecteddefault |
A default constructor from derived only.
|
protecteddelete |
No copies.
|
private |
|
inlinenoexcept |
.begin implementation
Definition at line 165 of file inbuf_dev.h.
|
inlinenoexcept |
Definition at line 166 of file inbuf_dev.h.
|
inlinenoexcept |
Definition at line 167 of file inbuf_dev.h.
|
inlinenoexcept |
Definition at line 172 of file inbuf_dev.h.
|
inlinenoexcept |
.end implementation
Definition at line 170 of file inbuf_dev.h.
|
inlinenoexcept |
Definition at line 171 of file inbuf_dev.h.
|
inline |
The base get interface. This function should read a single data_t object from device usually in non-blocking mode.
data | Reference to data output from device. |
Definition at line 108 of file inbuf_dev.h.
|
inline |
Old stile get functionality using free standing data_t*. This function should return a stream of data from device.
data | Pointer to buffer to write the data from device. |
n | The number of data of type data_t to read |
Definition at line 120 of file inbuf_dev.h.
|
inlineprivate |
Definition at line 82 of file inbuf_dev.h.
|
inlineprivate |
Definition at line 83 of file inbuf_dev.h.
|
inline |
Definition at line 95 of file inbuf_dev.h.
|
inlineprivate |
Definition at line 81 of file inbuf_dev.h.
|
protecteddelete |
No copy assignments
|
inline |
Template operator >> implementation for for all by value/ref parameters.
dst | Reference to destination |
Definition at line 140 of file inbuf_dev.h.
|
delete |
Specialization to disallow pointer types as destination.
|
inline |
Overload for single data_t object.
Definition at line 151 of file inbuf_dev.h.