roo_transport
API Documentation for roo_transport
Loading...
Searching...
No Matches
roo_transport::PacketReceiverOverStream Class Reference

Receives packets sent by PacketSenderOverStream via a potentially unreliable stream (for example UART/Serial). More...

#include <packet_receiver_over_stream.h>

Inheritance diagram for roo_transport::PacketReceiverOverStream:
[legend]
Collaboration diagram for roo_transport::PacketReceiverOverStream:
[legend]

Public Member Functions

 PacketReceiverOverStream (roo_io::InputStream &in)
 Creates a receiver reading framed bytes from in.
 
size_t tryReceive (const ReceiverFn &receiver_fn) override
 Receives currently available packets without indefinite blocking.
 
size_t receive (const ReceiverFn &receiver_fn) override
 Receives packets, blocking as needed until at least one packet is delivered, or until stream end/error.
 
size_t bytes_received () const
 Returns total raw bytes read from the underlying stream.
 
size_t bytes_accepted () const
 Returns total bytes accepted as valid framed packets.
 

Additional Inherited Members

- Public Types inherited from roo_transport::PacketReceiver
using ReceiverFn = std::function< void(const roo::byte *, size_t)>
 Callback invoked for each received packet.
 

Detailed Description

Receives packets sent by PacketSenderOverStream via a potentially unreliable stream (for example UART/Serial).

Uses 32-bit hashes to validate packet integrity and COBS framing to recover packet boundaries even under byte loss/corruption.

Delivers only packets that pass integrity checks; corrupted packets are dropped, and packet loss is possible.

Definition at line 21 of file packet_receiver_over_stream.h.

Constructor & Destructor Documentation

◆ PacketReceiverOverStream()

roo_transport::PacketReceiverOverStream::PacketReceiverOverStream ( roo_io::InputStream &  in)

Creates a receiver reading framed bytes from in.

Definition at line 17 of file packet_receiver_over_stream.cpp.

Member Function Documentation

◆ bytes_accepted()

size_t roo_transport::PacketReceiverOverStream::bytes_accepted ( ) const
inline

Returns total bytes accepted as valid framed packets.

This is transport-level byte count (framing/hash included), not just payload length.

Definition at line 39 of file packet_receiver_over_stream.h.

◆ bytes_received()

size_t roo_transport::PacketReceiverOverStream::bytes_received ( ) const
inline

Returns total raw bytes read from the underlying stream.

Includes bytes that were part of malformed/corrupted packets.

Definition at line 33 of file packet_receiver_over_stream.h.

◆ receive()

size_t roo_transport::PacketReceiverOverStream::receive ( const ReceiverFn receiver_fn)
overridevirtual

Receives packets, blocking as needed until at least one packet is delivered, or until stream end/error.

Returns
Number of delivered packets, or zero on error/end-of-stream.

Implements roo_transport::PacketReceiver.

Definition at line 25 of file packet_receiver_over_stream.cpp.

◆ tryReceive()

size_t roo_transport::PacketReceiverOverStream::tryReceive ( const ReceiverFn receiver_fn)
overridevirtual

Receives currently available packets without indefinite blocking.

Returns
Number of packets delivered.

Implements roo_transport::PacketReceiver.

Definition at line 34 of file packet_receiver_over_stream.cpp.


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