5#include "roo_backport.h"
6#include "roo_backport/byte.h"
8#include "roo_io/core/input_stream.h"
45 size_t processIncoming(
size_t len,
const ReceiverFn& receiver_fn);
50 bool processPacket(roo::byte* buf,
size_t size,
53 roo_io::InputStream& in_;
54 std::unique_ptr<roo::byte[]> buf_;
55 std::unique_ptr<roo::byte[]> tmp_;
58 size_t bytes_received_;
59 size_t bytes_accepted_;
Receives packets sent by PacketSenderOverStream via a potentially unreliable stream (for example UART...
size_t receive(const ReceiverFn &receiver_fn) override
Receives packets, blocking as needed until at least one packet is delivered, or until stream end/erro...
size_t bytes_accepted() const
Returns total bytes accepted as valid framed packets.
size_t bytes_received() const
Returns total raw bytes read from the underlying stream.
size_t tryReceive(const ReceiverFn &receiver_fn) override
Receives currently available packets without indefinite blocking.
Abstraction for receiving packets produced by PacketSender.
std::function< void(const roo::byte *, size_t)> ReceiverFn
Callback invoked for each received packet.