27#include <system_error>
55 virtual bool start(std::string_view host, uint16_t port) = 0;
57 virtual bool send(std::vector<uint8_t>&& data) = 0;
76 client->set_receive_callback([](
const std::vector<uint8_t>& data) {
77 std::cout <<
"[Legacy] Received " << data.size() <<
" bytes\n";
80 client->set_connected_callback([]() {
81 std::cout <<
"[Legacy] Connected!\n";
84 client->set_disconnected_callback([]() {
85 std::cout <<
"[Legacy] Disconnected\n";
88 client->set_error_callback([](std::error_code ec) {
89 std::cerr <<
"[Legacy] Error: " << ec.message() <<
"\n";
93 if (!client->start(
"localhost", 8080)) {
94 std::cerr <<
"[Legacy] Failed to connect\n";
99 std::vector<uint8_t> data = {
'H',
'e',
'l',
'l',
'o'};
100 client->send(std::move(data));
106 std::cout <<
"=== Legacy Client Example ===\n";
107 std::cout <<
"This file demonstrates the DEPRECATED legacy API.\n";
108 std::cout <<
"See unified_client_example.cpp for the new approach.\n\n";
110 std::cout <<
"Legacy issues:\n";
111 std::cout <<
" 1. Multiple protocol-specific interfaces to learn\n";
112 std::cout <<
" 2. Verbose individual callback setters\n";
113 std::cout <<
" 3. Protocol-coupled code\n";
114 std::cout <<
" 4. std::vector<uint8_t> instead of std::span<std::byte>\n";
std::function< void(std::error_code)> error_callback_t
virtual void set_disconnected_callback(disconnected_callback_t callback)=0
virtual void set_connected_callback(connected_callback_t callback)=0
std::function< void()> disconnected_callback_t
virtual bool send(std::vector< uint8_t > &&data)=0
virtual ~i_client()=default
virtual bool is_connected() const =0
virtual void set_receive_callback(receive_callback_t callback)=0
std::function< void(const std::vector< uint8_t > &)> receive_callback_t
virtual bool start(std::string_view host, uint16_t port)=0
virtual void set_error_callback(error_callback_t callback)=0
std::function< void()> connected_callback_t
void setup_legacy_client(std::unique_ptr< i_client > client)
Legacy client setup example.