|
ELEC-C7222
Libraries for ELEC C7222 Course Work
|
Ownership-based wrapper for byte-stream buffering. More...
#include <freertos_stream_buffer.hpp>


Public Member Functions | |
| FreeRtosStreamBuffer ()=default | |
| Construct an uninitialized stream buffer wrapper. | |
| FreeRtosStreamBuffer (std::size_t buffer_size_bytes, std::size_t trigger_level_bytes) | |
| Construct and initialize a stream buffer. | |
| bool | Initialize (std::size_t buffer_size_bytes, std::size_t trigger_level_bytes) |
| Initialize (or re-initialize) the stream buffer. | |
| ~FreeRtosStreamBuffer () | |
| Destroy stream buffer resources if initialized. | |
| std::size_t | Send (const void *data, std::size_t data_length, std::uint32_t ticks_to_wait=0) |
| Send bytes from task context. | |
| std::size_t | SendFromISR (const void *data, std::size_t data_length) |
| Send bytes from ISR context. | |
| std::size_t | Receive (void *out_data, std::size_t out_length, std::uint32_t ticks_to_wait=0) |
| Receive bytes from task context. | |
| std::size_t | ReceiveFromISR (void *out_data, std::size_t out_length) |
| Receive bytes from ISR context. | |
| bool | Reset () |
| Reset stream buffer state. | |
| std::size_t | BytesAvailable () const |
| std::size_t | SpacesAvailable () const |
| bool | IsValid () const |
Public Member Functions inherited from c7222::NonCopyable | |
| NonCopyable (const NonCopyable &)=delete | |
| NonCopyable & | operator= (const NonCopyable &)=delete |
| NonCopyable (NonCopyable &&)=default | |
| NonCopyable & | operator= (NonCopyable &&)=default |
Public Member Functions inherited from c7222::NonMovable | |
| NonMovable (const NonMovable &)=default | |
| NonMovable & | operator= (const NonMovable &)=default |
| NonMovable (NonMovable &&)=delete | |
| NonMovable & | operator= (NonMovable &&)=delete |
Additional Inherited Members | |
Protected Member Functions inherited from c7222::NonCopyableNonMovable | |
| NonCopyableNonMovable ()=default | |
| ~NonCopyableNonMovable ()=default | |
Protected Member Functions inherited from c7222::NonCopyable | |
| NonCopyable ()=default | |
| ~NonCopyable ()=default | |
Protected Member Functions inherited from c7222::NonMovable | |
| NonMovable ()=default | |
| ~NonMovable ()=default | |
Ownership-based wrapper for byte-stream buffering.
Stream buffers provide contiguous byte FIFO semantics and are useful for variable chunk transport where record/message boundaries are not required. Send/receive operations are explicit; RAII here refers to handle cleanup.
Typical usage:
|
default |
Construct an uninitialized stream buffer wrapper.
| c7222::FreeRtosStreamBuffer::FreeRtosStreamBuffer | ( | std::size_t | buffer_size_bytes, |
| std::size_t | trigger_level_bytes | ||
| ) |
Construct and initialize a stream buffer.
| buffer_size_bytes | Total buffer storage size. |
| trigger_level_bytes | Wake threshold for readers. |
| c7222::FreeRtosStreamBuffer::~FreeRtosStreamBuffer | ( | ) |
Destroy stream buffer resources if initialized.
| std::size_t c7222::FreeRtosStreamBuffer::BytesAvailable | ( | ) | const |
| bool c7222::FreeRtosStreamBuffer::Initialize | ( | std::size_t | buffer_size_bytes, |
| std::size_t | trigger_level_bytes | ||
| ) |
Initialize (or re-initialize) the stream buffer.
| bool c7222::FreeRtosStreamBuffer::IsValid | ( | ) | const |
| std::size_t c7222::FreeRtosStreamBuffer::Receive | ( | void * | out_data, |
| std::size_t | out_length, | ||
| std::uint32_t | ticks_to_wait = 0 |
||
| ) |
Receive bytes from task context.
| std::size_t c7222::FreeRtosStreamBuffer::ReceiveFromISR | ( | void * | out_data, |
| std::size_t | out_length | ||
| ) |
Receive bytes from ISR context.
| bool c7222::FreeRtosStreamBuffer::Reset | ( | ) |
Reset stream buffer state.
| std::size_t c7222::FreeRtosStreamBuffer::Send | ( | const void * | data, |
| std::size_t | data_length, | ||
| std::uint32_t | ticks_to_wait = 0 |
||
| ) |
Send bytes from task context.
| std::size_t c7222::FreeRtosStreamBuffer::SendFromISR | ( | const void * | data, |
| std::size_t | data_length | ||
| ) |
Send bytes from ISR context.
| std::size_t c7222::FreeRtosStreamBuffer::SpacesAvailable | ( | ) | const |