|
unilink
0.4.3
A simple C++ library for unified async communication
|
Generic Builder interface for fluent API pattern. More...
#include <ibuilder.hpp>
Public Member Functions | |
| virtual | ~BuilderInterface ()=default |
| BuilderInterface ()=default | |
| BuilderInterface (const BuilderInterface &)=default | |
| BuilderInterface (BuilderInterface &&)=default | |
| BuilderInterface & | operator= (const BuilderInterface &)=default |
| BuilderInterface & | operator= (BuilderInterface &&)=default |
| virtual std::unique_ptr< T > | build ()=0 |
| Build and return the configured product. More... | |
| virtual Derived & | auto_manage (bool auto_manage=true)=0 |
| Enable auto-manage functionality. More... | |
| virtual Derived & | on_data (std::function< void(const wrapper::MessageContext &)> handler)=0 |
| Set data handler callback. More... | |
| template<typename U , typename F > | |
| Derived & | on_data (U *obj, F method) |
| Set data handler callback using member function pointer. More... | |
| virtual Derived & | on_connect (std::function< void(const wrapper::ConnectionContext &)> handler)=0 |
| Set connection handler callback. More... | |
| template<typename U , typename F > | |
| Derived & | on_connect (U *obj, F method) |
| Set connection handler callback using member function pointer. More... | |
| virtual Derived & | on_disconnect (std::function< void(const wrapper::ConnectionContext &)> handler)=0 |
| Set disconnection handler callback. More... | |
| template<typename U , typename F > | |
| Derived & | on_disconnect (U *obj, F method) |
| Set disconnection handler callback using member function pointer. More... | |
| virtual Derived & | on_error (std::function< void(const wrapper::ErrorContext &)> handler)=0 |
| Set error handler callback. More... | |
| template<typename U , typename F > | |
| Derived & | on_error (U *obj, F method) |
| Set error handler callback using member function pointer. More... | |
| Derived & | use_line_framer (std::string_view delimiter="\n", bool include_delimiter=false, size_t max_length=65536) |
| Use LineFramer for message segmentation (e.g., newline delimited) More... | |
| Derived & | use_packet_framer (const std::vector< uint8_t > &start_pattern, const std::vector< uint8_t > &end_pattern, size_t max_length) |
| Use PacketFramer for message segmentation (binary pattern matching) More... | |
| Derived & | on_message (std::function< void(memory::ConstByteSpan)> handler) |
| Set message handler callback (for framed messages) More... | |
| template<typename U , typename F > | |
| Derived & | on_message (U *obj, F method) |
| Set message handler callback using member function pointer. More... | |
Protected Attributes | |
| std::unique_ptr< framer::IFramer > | framer_ |
| std::function< void(memory::ConstByteSpan)> | on_message_ |
Generic Builder interface for fluent API pattern.
This interface provides a common base for all builder classes, enabling a consistent fluent API across different wrapper types.
| T | The product type that this builder creates |
| Derived | The derived builder type (CRTP) |
Definition at line 45 of file ibuilder.hpp.
|
virtualdefault |
|
default |
|
default |
|
default |
|
pure virtual |
Enable auto-manage functionality.
| auto_manage | Whether to automatically manage the wrapper lifecycle |
Implemented in unilink::builder::UdpBuilder, unilink::builder::TcpServerBuilder, unilink::builder::TcpClientBuilder, and unilink::builder::SerialBuilder.
|
pure virtual |
Build and return the configured product.
Implemented in unilink::builder::UdpBuilder, unilink::builder::TcpServerBuilder, unilink::builder::TcpClientBuilder, and unilink::builder::SerialBuilder.
|
pure virtual |
Set connection handler callback.
| handler | Function to handle connection events with context |
Implemented in unilink::builder::UdpBuilder, unilink::builder::TcpServerBuilder, unilink::builder::TcpClientBuilder, and unilink::builder::SerialBuilder.
|
inline |
Set connection handler callback using member function pointer.
| U | Class type |
| F | Member function type |
| obj | Object instance |
| method | Member function pointer |
Definition at line 103 of file ibuilder.hpp.
|
pure virtual |
Set data handler callback.
| handler | Function to handle incoming data with context |
Implemented in unilink::builder::UdpBuilder, unilink::builder::TcpServerBuilder, unilink::builder::TcpClientBuilder, and unilink::builder::SerialBuilder.
|
inline |
Set data handler callback using member function pointer.
| U | Class type |
| F | Member function type |
| obj | Object instance |
| method | Member function pointer |
Definition at line 83 of file ibuilder.hpp.
|
pure virtual |
Set disconnection handler callback.
| handler | Function to handle disconnection events with context |
Implemented in unilink::builder::UdpBuilder, unilink::builder::TcpServerBuilder, unilink::builder::TcpClientBuilder, and unilink::builder::SerialBuilder.
|
inline |
Set disconnection handler callback using member function pointer.
| U | Class type |
| F | Member function type |
| obj | Object instance |
| method | Member function pointer |
Definition at line 123 of file ibuilder.hpp.
|
pure virtual |
Set error handler callback.
| handler | Function to handle error events with context |
Implemented in unilink::builder::UdpBuilder, unilink::builder::TcpServerBuilder, unilink::builder::TcpClientBuilder, and unilink::builder::SerialBuilder.
|
inline |
Set error handler callback using member function pointer.
| U | Class type |
| F | Member function type |
| obj | Object instance |
| method | Member function pointer |
Definition at line 143 of file ibuilder.hpp.
|
inline |
Set message handler callback (for framed messages)
| handler | Function to handle complete messages |
Definition at line 180 of file ibuilder.hpp.
|
inline |
Set message handler callback using member function pointer.
| U | Class type |
| F | Member function type |
| obj | Object instance |
| method | Member function pointer |
Definition at line 194 of file ibuilder.hpp.
|
default |
|
default |
|
inline |
Use LineFramer for message segmentation (e.g., newline delimited)
| delimiter | Delimiter string (default: "\n") |
| include_delimiter | Whether to include delimiter in the message |
| max_length | Maximum message length |
Definition at line 156 of file ibuilder.hpp.
|
inline |
Use PacketFramer for message segmentation (binary pattern matching)
| start_pattern | Start pattern bytes |
| end_pattern | End pattern bytes |
| max_length | Maximum packet length |
Definition at line 169 of file ibuilder.hpp.
|
protected |
Definition at line 199 of file ibuilder.hpp.
|
protected |
Definition at line 200 of file ibuilder.hpp.