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

Framer for text-based protocols (e.g., ASCII, NMEA). More...

#include <line_framer.hpp>

Inheritance diagram for unilink::framer::LineFramer:
unilink::framer::IFramer

Public Member Functions

 LineFramer (std::string_view delimiter="\n", bool include_delimiter=false, size_t max_length=65536)
 Construct a new Line Framer. More...
 
 ~LineFramer () 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 text-based protocols (e.g., ASCII, NMEA).

Buffers incoming data and extracts messages delimited by a specific sequence (e.g., "\n").

Definition at line 34 of file line_framer.hpp.

Constructor & Destructor Documentation

◆ LineFramer()

unilink::framer::LineFramer::LineFramer ( std::string_view  delimiter = "\n",
bool  include_delimiter = false,
size_t  max_length = 65536 
)
explicit

Construct a new Line Framer.

Parameters
delimiterThe delimiter string (default: "\n")
include_delimiterWhether to include the delimiter in the extracted message (default: false)
max_lengthMaximum message length before forcing a reset (default: 65536)

Definition at line 27 of file line_framer.cc.

◆ ~LineFramer()

unilink::framer::LineFramer::~LineFramer ( )
overridedefault

Member Function Documentation

◆ push_bytes()

void unilink::framer::LineFramer::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 line_framer.cc.

◆ reset()

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

Reset internal state/buffer.

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

Implements unilink::framer::IFramer.

Definition at line 175 of file line_framer.cc.

◆ set_on_message()

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

Implements unilink::framer::IFramer.

Definition at line 173 of file line_framer.cc.


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