libjmmcg  build_2783
A C++ library containing an eclectic mix of useful, advanced components.
jmmcg::socket::server_manager::asio::loopback< SvrHBs, LkT > Class Template Reference

A simple TCP/IP socket wrapper using boost::asio for loop-back servers. More...

#include <socket_server_manager_asio.hpp>

Inheritance diagram for jmmcg::socket::server_manager::asio::loopback< SvrHBs, LkT >:
[legend]
Collaboration diagram for jmmcg::socket::server_manager::asio::loopback< SvrHBs, LkT >:
[legend]

Classes

class  send_heartbeats
 

Public Types

using base_t = manager< LkT >
 
using heartbeats_t = SvrHBs
 Start sending heartbeats upon a connection. More...
 
using socket_t = typename base_t::socket_t
 
using server_to_client_flow_t = typename base_t::server_to_client_flow_t
 
- Public Types inherited from jmmcg::socket::server_manager::asio::manager< LkT >
using acceptor_t = boost::asio::ip::tcp::acceptor
 
using socket_t = socket::asio::socket_wrapper< LkT >
 
using server_to_client_flow_t = std::function< void(socket_t &)>
 

Public Member Functions

 loopback (boost::asio::ip::address const &addr, unsigned short port_num, std::size_t, std::size_t max_message_size, unsigned short timeout, typename socket_t::socket_priority priority, std::size_t incoming_cpu, server_to_client_flow_t &&server_to_client_flow)
 
template<class RecvProcMsgs >
void start_accept (RecvProcMsgs const &proc_fn) noexcept(false)
 Non-blocking call to wait for new connections from a client. More...
 
- Public Member Functions inherited from jmmcg::socket::server_manager::asio::manager< LkT >
 manager (boost::asio::ip::address const &addr, unsigned short port_num, std::size_t min_message_size, std::size_t max_message_size, unsigned short timeout, typename socket_t::socket_priority priority, std::size_t incoming_cpu, server_to_client_flow_t &&server_to_client_flow)
 Create a new connection to the specified TCP socket using the TCP/IP protocol. More...
 
void run ()
 Blocking wait for a new connection from a client. More...
 
void stop ()
 
std::string to_string () const noexcept(false)
 

Additional Inherited Members

- Static Public Member Functions inherited from jmmcg::socket::server_manager::asio::manager< LkT >
static void set_options (acceptor_t &acceptor, socket_t &skt)
 
- Protected Member Functions inherited from jmmcg::socket::server_manager::asio::manager< LkT >
 ~manager ()=default
 
void set_options (socket_t &skt)
 
- Protected Attributes inherited from jmmcg::socket::server_manager::asio::manager< LkT >
boost::asio::io_context io_context {}
 
acceptor_t acceptor
 
server_to_client_flow_t server_to_client_flow_
 

Detailed Description

template<class SvrHBs, class LkT>
class jmmcg::socket::server_manager::asio::loopback< SvrHBs, LkT >

A simple TCP/IP socket wrapper using boost::asio for loop-back servers.

Definition at line 189 of file socket_server_manager_asio.hpp.

Member Typedef Documentation

◆ base_t

template<class SvrHBs, class LkT>
using jmmcg::socket::server_manager::asio::loopback< SvrHBs, LkT >::base_t = manager<LkT>

Definition at line 191 of file socket_server_manager_asio.hpp.

◆ heartbeats_t

template<class SvrHBs, class LkT>
using jmmcg::socket::server_manager::asio::loopback< SvrHBs, LkT >::heartbeats_t = SvrHBs

Start sending heartbeats upon a connection.

Definition at line 193 of file socket_server_manager_asio.hpp.

◆ server_to_client_flow_t

template<class SvrHBs, class LkT>
using jmmcg::socket::server_manager::asio::loopback< SvrHBs, LkT >::server_to_client_flow_t = typename base_t::server_to_client_flow_t

Definition at line 195 of file socket_server_manager_asio.hpp.

◆ socket_t

template<class SvrHBs, class LkT>
using jmmcg::socket::server_manager::asio::loopback< SvrHBs, LkT >::socket_t = typename base_t::socket_t

Definition at line 194 of file socket_server_manager_asio.hpp.

Constructor & Destructor Documentation

◆ loopback()

template<class SvrHBs , class LkT >
jmmcg::socket::server_manager::asio::loopback< SvrHBs, LkT >::loopback ( boost::asio::ip::address const &  addr,
unsigned short  port_num,
std::size_t  min_message_size,
std::size_t  max_message_size,
unsigned short  timeout,
typename socket_t::socket_priority  priority,
std::size_t  incoming_cpu,
server_to_client_flow_t &&  server_to_client_flow 
)
inline
Parameters
destThe socket to which the received messages should be forwarded after suitable processing.

Definition at line 205 of file socket_server_manager_asio_impl.hpp.

Member Function Documentation

◆ start_accept()

template<class SvrHBs , class LkT >
template<class RecvProcMsgs >
void jmmcg::socket::server_manager::asio::loopback< SvrHBs, LkT >::start_accept ( RecvProcMsgs const &  proc_fn)
inlinenoexcept

Non-blocking call to wait for new connections from a client.

Parameters
proc_fnThe operations to perform upon receiving a connection request from a client.

Definition at line 211 of file socket_server_manager_asio_impl.hpp.


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