Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
ConceptClient Class Reference

A client class demonstrating concept-constrained callbacks. More...

Collaboration diagram for ConceptClient:
Collaboration graph

Public Member Functions

template<DataReceiveHandler Handler>
void on_data (Handler &&handler)
 Set data receive handler.
 
template<ErrorHandler Handler>
void on_error (Handler &&handler)
 Set error handler.
 
template<ConnectionHandler Handler>
void on_connect (Handler &&handler)
 Set connection handler.
 
template<RetryCallback Handler>
void on_retry (Handler &&handler)
 Set retry callback.
 
void simulate_events ()
 

Private Attributes

std::function< void(const std::vector< uint8_t > &)> data_handler_
 
std::function< void(std::error_code)> error_handler_
 
std::function< void()> connect_handler_
 
std::function< void(std::size_t)> retry_handler_
 

Detailed Description

A client class demonstrating concept-constrained callbacks.

Definition at line 105 of file concepts_example.cpp.

Member Function Documentation

◆ on_connect()

template<ConnectionHandler Handler>
void ConceptClient::on_connect ( Handler && handler)
inline

Set connection handler.

Template Parameters
HandlerMust be callable with no arguments

Definition at line 132 of file concepts_example.cpp.

132 {
133 connect_handler_ = std::forward<Handler>(handler);
134 std::cout << "Connect handler registered\n";
135 }
std::function< void()> connect_handler_

References connect_handler_.

◆ on_data()

template<DataReceiveHandler Handler>
void ConceptClient::on_data ( Handler && handler)
inline

Set data receive handler.

Template Parameters
HandlerMust be callable with const std::vector<uint8_t>&

Definition at line 112 of file concepts_example.cpp.

112 {
113 data_handler_ = std::forward<Handler>(handler);
114 std::cout << "Data handler registered\n";
115 }
std::function< void(const std::vector< uint8_t > &)> data_handler_

References data_handler_.

◆ on_error()

template<ErrorHandler Handler>
void ConceptClient::on_error ( Handler && handler)
inline

Set error handler.

Template Parameters
HandlerMust be callable with std::error_code

Definition at line 122 of file concepts_example.cpp.

122 {
123 error_handler_ = std::forward<Handler>(handler);
124 std::cout << "Error handler registered\n";
125 }
std::function< void(std::error_code)> error_handler_

References error_handler_.

◆ on_retry()

template<RetryCallback Handler>
void ConceptClient::on_retry ( Handler && handler)
inline

Set retry callback.

Template Parameters
HandlerMust be callable with std::size_t (attempt number)

Definition at line 142 of file concepts_example.cpp.

142 {
143 retry_handler_ = std::forward<Handler>(handler);
144 std::cout << "Retry handler registered\n";
145 }
std::function< void(std::size_t)> retry_handler_

References retry_handler_.

◆ simulate_events()

void ConceptClient::simulate_events ( )
inline

Definition at line 148 of file concepts_example.cpp.

148 {
149 std::cout << "\nSimulating events:\n";
150
151 if (connect_handler_) {
152 std::cout << " -> Connection event: ";
154 }
155
156 if (data_handler_) {
157 std::vector<uint8_t> data = {72, 101, 108, 108, 111}; // "Hello"
158 std::cout << " -> Data event: ";
159 data_handler_(data);
160 }
161
162 if (retry_handler_) {
163 std::cout << " -> Retry event: ";
165 }
166
167 if (error_handler_) {
168 std::cout << " -> Error event: ";
169 error_handler_(std::make_error_code(std::errc::connection_refused));
170 }
171 }

References connect_handler_, data_handler_, error_handler_, and retry_handler_.

Member Data Documentation

◆ connect_handler_

std::function<void()> ConceptClient::connect_handler_
private

Definition at line 176 of file concepts_example.cpp.

Referenced by on_connect(), and simulate_events().

◆ data_handler_

std::function<void(const std::vector<uint8_t>&)> ConceptClient::data_handler_
private

Definition at line 174 of file concepts_example.cpp.

Referenced by on_data(), and simulate_events().

◆ error_handler_

std::function<void(std::error_code)> ConceptClient::error_handler_
private

Definition at line 175 of file concepts_example.cpp.

Referenced by on_error(), and simulate_events().

◆ retry_handler_

std::function<void(std::size_t)> ConceptClient::retry_handler_
private

Definition at line 177 of file concepts_example.cpp.

Referenced by on_retry(), and simulate_events().


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