Telnet++
A C++ library for interacting with Telnet streams
registration.hpp
1 #pragma once
2 
3 #include "telnetpp/detail/negotiation_router.hpp"
4 #include "telnetpp/detail/subnegotiation_router.hpp"
5 #include "telnetpp/client_option.hpp"
6 #include "telnetpp/server_option.hpp"
7 
8 namespace telnetpp { namespace detail {
9 
10 //* =========================================================================
12 //* =========================================================================
13 void register_client_option(
15  negotiation_router &neg_router,
16  subnegotiation_router &sub_router);
17 
18 //* =========================================================================
20 //* =========================================================================
21 void register_server_option(
23  negotiation_router &neg_router,
24  subnegotiation_router &sub_router);
25 
30 template <class NegotiableOption>
31 void register_route_from_negotiation_to_option(
32  negotiation_router &route,
33  u8 request,
34  NegotiableOption &option)
35 {
36  route.register_route(negotiation(request, option.option()),
37  [&option, request](auto &&neg)
38  {
39  return option.negotiate(request);
40  });
41 }
42 
43 //* =========================================================================
45 //* =========================================================================
46 template <class SubnegotiableOption>
47 void register_route_from_subnegotiation_to_option(
48  subnegotiation_router &route,
49  SubnegotiableOption &option)
50 {
51  route.register_route(option.option(),
52  [&option](auto &&sub)
53  {
54  return option.subnegotiate(sub.content());
55  });
56 }
57 
58 }}
A class that represents a Telnet option&#39;s client side.
Definition: client_option.hpp:34
A class that represents a Telnet option&#39;s server side.
Definition: server_option.hpp:34
Definition: byte_converter.hpp:4