unilink  0.4.3
A simple C++ library for unified async communication
unilink::framer::PacketFramer Class Reference

Framer for binary packet protocols. More...

#include <packet_framer.hpp>

Inheritance diagram for unilink::framer::PacketFramer:
unilink::framer::IFramer

Public Member Functions

 PacketFramer (const std::vector< uint8_t > &start_pattern, const std::vector< uint8_t > &end_pattern, size_t max_length)
 Construct a new Packet Framer. More...
 
 ~PacketFramer () override=default
 
void push_bytes (memory::ConstByteSpan data) override
 Push raw bytes into the framer's internal buffer. More...
 
void set_on_message (MessageCallback cb) override
 
void reset () override
 Reset internal state/buffer. More...
 

Additional Inherited Members

Detailed Description

Framer for binary packet protocols.

Handles protocols with start and end patterns. Syncs by searching for start pattern, then collects data until end pattern is found.

Definition at line 33 of file packet_framer.hpp.

Constructor & Destructor Documentation

◆ PacketFramer()

unilink::framer::PacketFramer::PacketFramer ( const std::vector< uint8_t > &  start_pattern,
const std::vector< uint8_t > &  end_pattern,
size_t  max_length 
)

Construct a new Packet Framer.

Parameters
start_patternThe start pattern bytes
end_patternThe end pattern bytes
max_lengthMaximum packet length (including patterns) before reset

Definition at line 26 of file packet_framer.cc.

◆ ~PacketFramer()

unilink::framer::PacketFramer::~PacketFramer ( )
overridedefault

Member Function Documentation

◆ push_bytes()

void unilink::framer::PacketFramer::push_bytes ( memory::ConstByteSpan  data)
overridevirtual

Push raw bytes into the framer's internal buffer.

The framer will buffer the data and invoke the message callback whenever a complete message is extracted.

Parameters
dataThe raw data chunk to process.

Implements unilink::framer::IFramer.

Definition at line 34 of file packet_framer.cc.

◆ reset()

void unilink::framer::PacketFramer::reset ( )
overridevirtual

Reset internal state/buffer.

Should be called on connection loss or when resynchronization is needed.

Implements unilink::framer::IFramer.

Definition at line 223 of file packet_framer.cc.

◆ set_on_message()

void unilink::framer::PacketFramer::set_on_message ( MessageCallback  cb)
overridevirtual

Implements unilink::framer::IFramer.

Definition at line 221 of file packet_framer.cc.


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