mqtt_cpp
Public Types | Public Member Functions | List of all members
MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes > Class Template Reference

#include <server.hpp>

Public Types

using socket_t = tcp_endpoint< as::ip::tcp::socket, Strand >
 
using endpoint_t = callable_overlay< server_endpoint< Mutex, LockGuard, PacketIdBytes > >
 
using accept_handler = std::function< void(std::shared_ptr< endpoint_t > ep)>
 Accept handler. More...
 
using error_handler = std::function< void(error_code ec)>
 Error handler. More...
 

Public Member Functions

template<typename AsioEndpoint , typename AcceptorConfig >
 server (AsioEndpoint &&ep, as::io_context &ioc_accept, as::io_context &ioc_con, AcceptorConfig &&config)
 
template<typename AsioEndpoint >
 server (AsioEndpoint &&ep, as::io_context &ioc_accept, as::io_context &ioc_con)
 
template<typename AsioEndpoint , typename AcceptorConfig >
 server (AsioEndpoint &&ep, as::io_context &ioc, AcceptorConfig &&config)
 
template<typename AsioEndpoint >
 server (AsioEndpoint &&ep, as::io_context &ioc)
 
void listen ()
 
unsigned short port () const
 
void close ()
 
void set_accept_handler (accept_handler h=accept_handler())
 
void set_error_handler (error_handler h=error_handler())
 Set error handler. More...
 
void set_protocol_version (protocol_version version)
 Set MQTT protocol version. More...
 
as::io_context & ioc_con () const
 Get reference of boost::asio::io_context for connections. More...
 
as::io_context & ioc_accept () const
 Get reference of boost::asio::io_context for acceptor. More...
 

Member Typedef Documentation

◆ accept_handler

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
using MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::accept_handler = std::function<void(std::shared_ptr<endpoint_t> ep)>

Accept handler.

Parameters
ependpoint of the connecting client

◆ endpoint_t

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
using MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::endpoint_t = callable_overlay<server_endpoint<Mutex, LockGuard, PacketIdBytes> >

◆ error_handler

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
using MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::error_handler = std::function<void(error_code ec)>

Error handler.

Parameters
ecerror code

◆ socket_t

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
using MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::socket_t = tcp_endpoint<as::ip::tcp::socket, Strand>

Constructor & Destructor Documentation

◆ server() [1/4]

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
template<typename AsioEndpoint , typename AcceptorConfig >
MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::server ( AsioEndpoint &&  ep,
as::io_context &  ioc_accept,
as::io_context &  ioc_con,
AcceptorConfig &&  config 
)
inline

◆ server() [2/4]

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
template<typename AsioEndpoint >
MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::server ( AsioEndpoint &&  ep,
as::io_context &  ioc_accept,
as::io_context &  ioc_con 
)
inline

◆ server() [3/4]

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
template<typename AsioEndpoint , typename AcceptorConfig >
MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::server ( AsioEndpoint &&  ep,
as::io_context &  ioc,
AcceptorConfig &&  config 
)
inline

◆ server() [4/4]

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
template<typename AsioEndpoint >
MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::server ( AsioEndpoint &&  ep,
as::io_context &  ioc 
)
inline

Member Function Documentation

◆ close()

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
void MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::close ( )
inline

◆ ioc_accept()

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
as::io_context& MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::ioc_accept ( ) const
inline

Get reference of boost::asio::io_context for acceptor.

Returns
reference of boost::asio::io_context for acceptor

◆ ioc_con()

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
as::io_context& MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::ioc_con ( ) const
inline

Get reference of boost::asio::io_context for connections.

Returns
reference of boost::asio::io_context for connections

◆ listen()

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
void MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::listen ( )
inline

◆ port()

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
unsigned short MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::port ( ) const
inline

◆ set_accept_handler()

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
void MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::set_accept_handler ( accept_handler  h = accept_handler())
inline

◆ set_error_handler()

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
void MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::set_error_handler ( error_handler  h = error_handler())
inline

Set error handler.

Parameters
hhandler

◆ set_protocol_version()

template<typename Strand = as::io_context::strand, typename Mutex = std::mutex, template< typename... > class LockGuard = std::lock_guard, std::size_t PacketIdBytes = 2>
void MQTT_NS::server< Strand, Mutex, LockGuard, PacketIdBytes >::set_protocol_version ( protocol_version  version)
inline

Set MQTT protocol version.

Parameters
versionaccepting protocol version If the specific version is set, only set version is accepted. If the version is set to protocol_version::undetermined, all versions are accepted. Initial value is protocol_version::undetermined.

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