Direct-BT v3.3.0-1-gc2d430c
Direct-BT - Direct Bluetooth Programming.
|
Wrapped byte input stream with the capability to record the read byte stream at will. More...
#include <byte_stream.hpp>
Public Member Functions | |
ByteInStream_Recorder (ByteInStream &parent, io::secure_vector< uint8_t > &buffer) noexcept | |
Construct a byte input stream wrapper using the given parent ByteInStream. More... | |
ByteInStream_Recorder (const ByteInStream_Recorder &)=delete | |
~ByteInStream_Recorder () noexcept override | |
bool | available (size_t n) noexcept override |
Return whether n bytes are available in the input stream, if has_content_size() or using an asynchronous source. More... | |
void | clear (const iostate state=iostate::goodbit) noexcept override |
Clears state flags by assignment to the given value. More... | |
void | clear_recording () noexcept |
Clears the recording. More... | |
void | close () noexcept override |
Close the stream if supported by the underlying mechanism. More... | |
uint64_t | content_size () const noexcept override |
Returns the content_size if known. More... | |
size_t | get_bytes_recorded () noexcept |
io::secure_vector< uint8_t > & | get_recording () noexcept |
Returns the reference of the recording buffer given by user. More... | |
uint64_t | get_recording_start_pos () noexcept |
Returns the recording start position. More... | |
bool | has_content_size () const noexcept override |
Returns true if implementation is aware of content_size(), otherwise false. More... | |
std::string | id () const noexcept override |
return the id of this data source More... | |
bool | is_open () const noexcept override |
Checks if the stream has an associated file. More... | |
bool | is_recording () noexcept |
ByteInStream_Recorder & | operator= (const ByteInStream_Recorder &)=delete |
size_t | peek (void *out, size_t length, size_t peek_offset) noexcept override |
Read from the source but do not modify the internal offset. More... | |
iostate | rdstate () const noexcept override |
Returns the current state flags. More... | |
size_t | read (void *, size_t) noexcept override |
Read from the source. More... | |
void | start_recording () noexcept |
Starts the recording. More... | |
void | stop_recording () noexcept |
Stops the recording. More... | |
uint64_t | tellg () const noexcept override |
Returns the input position indicator, similar to std::basic_istream. More... | |
std::string | to_string () const noexcept override |
Public Member Functions inherited from jau::io::ByteInStream | |
ByteInStream () noexcept | |
ByteInStream (const ByteInStream &)=delete | |
~ByteInStream () noexcept override=default | |
virtual bool | available (size_t n) noexcept=0 |
Return whether n bytes are available in the input stream, if has_content_size() or using an asynchronous source. More... | |
virtual void | close () noexcept=0 |
Close the stream if supported by the underlying mechanism. More... | |
virtual uint64_t | content_size () const noexcept=0 |
Returns the content_size if known. More... | |
size_t | discard (size_t N) noexcept |
Discard the next N bytes of the data. More... | |
virtual bool | has_content_size () const noexcept=0 |
Returns true if implementation is aware of content_size(), otherwise false. More... | |
virtual std::string | id () const noexcept |
return the id of this data source More... | |
virtual bool | is_open () const noexcept=0 |
Checks if the stream has an associated file. More... | |
ByteInStream & | operator= (const ByteInStream &)=delete |
bool | peek (uint8_t &out) noexcept |
Peek at one byte. More... | |
virtual size_t | peek (void *out, size_t length, size_t peek_offset) noexcept=0 |
Read from the source but do not modify the internal offset. More... | |
bool | read (uint8_t &out) noexcept |
Read one byte. More... | |
virtual size_t | read (void *out, size_t length) noexcept=0 |
Read from the source. More... | |
virtual uint64_t | tellg () const noexcept=0 |
Returns the input position indicator, similar to std::basic_istream. More... | |
virtual std::string | to_string () const noexcept=0 |
Public Member Functions inherited from jau::io::iostate_func | |
iostate_func () noexcept | |
iostate_func (const iostate_func &o) noexcept=default | |
iostate_func (iostate_func &&o) noexcept=default | |
virtual | ~iostate_func () noexcept=default |
bool | bad () const noexcept |
Checks if a non-recoverable error has occurred. More... | |
virtual void | clear (const iostate state=iostate::goodbit) noexcept |
Clears state flags by assignment to the given value. More... | |
bool | eof () const noexcept |
Checks if end-of-file has been reached. More... | |
bool | fail () const noexcept |
Checks if an error has occurred. More... | |
bool | good () const noexcept |
Checks if no error nor eof() has occurred i.e. More... | |
operator bool () const noexcept | |
Checks if no error has occurred, synonym of !fail(). More... | |
bool | operator! () const noexcept |
Checks if an error has occurred, synonym of fail(). More... | |
iostate_func & | operator= (const iostate_func &o) noexcept=default |
iostate_func & | operator= (iostate_func &&o) noexcept=default |
virtual iostate | rdstate () const noexcept |
Returns the current state flags. More... | |
void | setstate (const iostate state) noexcept |
Sets state flags, by keeping its previous bits. More... | |
bool | timeout () const noexcept |
Checks if a timeout (non-recoverable) has occurred. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from jau::io::iostate_func | |
constexpr iostate | rdstate_impl () const noexcept |
constexpr void | setstate_impl (iostate state) const noexcept |
Wrapped byte input stream with the capability to record the read byte stream at will.
Peek'ed bytes won't be recorded, only read bytes.
Definition at line 713 of file byte_stream.hpp.
|
inlinenoexcept |
Construct a byte input stream wrapper using the given parent ByteInStream.
parent | the parent ByteInStream |
buffer | a user defined buffer for the recording |
Definition at line 735 of file byte_stream.hpp.
|
delete |
|
inlineoverridenoexcept |
Definition at line 746 of file byte_stream.hpp.
|
overridevirtualnoexcept |
Read from the source.
Moves the internal offset so that every call to read will return a new portion of the source.
Use available() to try to wait for a certain amount of bytes available.
This method shall only block until min(available, length)
bytes are transfered.
See details of the implementing class.
out | the byte array to write the result to |
length | the length of the byte array out |
Implements jau::io::ByteInStream.
Definition at line 613 of file byte_stream.cpp.
|
inlineoverridevirtualnoexcept |
Read from the source but do not modify the internal offset.
Consecutive calls to peek() will return portions of the source starting at the same position.
out | the byte array to write the output to |
length | the length of the byte array out |
peek_offset | the offset into the stream to read at |
Implements jau::io::ByteInStream.
Definition at line 717 of file byte_stream.hpp.
|
inlineoverridevirtualnoexcept |
Return whether n bytes are available in the input stream, if has_content_size() or using an asynchronous source.
If !has_content_size() and not being an asynchronous source, !end_of_data() is returned.
Method may be blocking when using an asynchronous source up until the requested bytes are available.
A subsequent call to read() shall return immediately with at least the requested numbers of bytes available, if has_content_size() or using an asynchronous source.
See details of the implementing class.
n | byte count to wait for |
Implements jau::io::ByteInStream.
Definition at line 721 of file byte_stream.hpp.
|
inlineoverridevirtualnoexcept |
Clears state flags by assignment to the given value.
Reimplemented from jau::io::iostate_func.
Definition at line 725 of file byte_stream.hpp.
|
inlineoverridevirtualnoexcept |
Returns the current state flags.
Method is marked virtual
to allow implementations with asynchronous resources to determine or update the current iostate.
Method is used throughout all query members and setstate(), hence they all will use the updated state from a potential override implementation.
Reimplemented from jau::io::iostate_func.
Definition at line 726 of file byte_stream.hpp.
|
inlineoverridevirtualnoexcept |
return the id of this data source
Reimplemented from jau::io::ByteInStream.
Definition at line 728 of file byte_stream.hpp.
|
delete |
|
inlineoverridevirtualnoexcept |
Checks if the stream has an associated file.
Implements jau::io::ByteInStream.
Definition at line 742 of file byte_stream.hpp.
|
overridevirtualnoexcept |
Close the stream if supported by the underlying mechanism.
Implements jau::io::ByteInStream.
Definition at line 591 of file byte_stream.cpp.
|
inlineoverridevirtualnoexcept |
Returns the input position indicator, similar to std::basic_istream.
Implements jau::io::ByteInStream.
Definition at line 748 of file byte_stream.hpp.
|
inlineoverridevirtualnoexcept |
Returns true if implementation is aware of content_size(), otherwise false.
Implements jau::io::ByteInStream.
Definition at line 750 of file byte_stream.hpp.
|
inlineoverridevirtualnoexcept |
Returns the content_size if known.
Implements jau::io::ByteInStream.
Definition at line 752 of file byte_stream.hpp.
|
noexcept |
Starts the recording.
A potential previous recording will be cleared.
Definition at line 597 of file byte_stream.cpp.
|
noexcept |
|
noexcept |
Clears the recording.
If the recording was ongoing, also stops the recording.
Definition at line 607 of file byte_stream.cpp.
|
inlinenoexcept |
Returns the reference of the recording buffer given by user.
Definition at line 779 of file byte_stream.hpp.
|
inlinenoexcept |
Definition at line 781 of file byte_stream.hpp.
|
inlinenoexcept |
Returns the recording start position.
Definition at line 784 of file byte_stream.hpp.
|
inlinenoexcept |
Definition at line 786 of file byte_stream.hpp.
|
overridevirtualnoexcept |
Implements jau::io::ByteInStream.
Definition at line 623 of file byte_stream.cpp.