|
unilink
0.4.3
A simple C++ library for unified async communication
|
Framer for text-based protocols (e.g., ASCII, NMEA). More...
#include <line_framer.hpp>
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... | |
Public Member Functions inherited from unilink::framer::IFramer | |
| virtual | ~IFramer ()=default |
Additional Inherited Members | |
Public Types inherited from unilink::framer::IFramer | |
| using | MessageCallback = std::function< void(memory::ConstByteSpan)> |
| Register a callback to be invoked when a complete message is extracted. More... | |
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.
|
explicit |
Construct a new Line Framer.
| delimiter | The delimiter string (default: "\n") |
| include_delimiter | Whether to include the delimiter in the extracted message (default: false) |
| max_length | Maximum message length before forcing a reset (default: 65536) |
Definition at line 27 of file line_framer.cc.
|
overridedefault |
|
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.
| data | The raw data chunk to process. |
Implements unilink::framer::IFramer.
Definition at line 34 of file line_framer.cc.
|
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.
|
overridevirtual |
Implements unilink::framer::IFramer.
Definition at line 173 of file line_framer.cc.