cpp-msgpack-rpc 0.2.0
An RPC library implementing MessagePack RPC.
Loading...
Searching...
No Matches
msgpack_rpc::transport::tcp::TCPConnector Class Reference

Class of connectors fo TCP. More...

#include <msgpack_rpc/transport/tcp/tcp_connector.h>

Inheritance diagram for msgpack_rpc::transport::tcp::TCPConnector:
Collaboration diagram for msgpack_rpc::transport::tcp::TCPConnector:

Public Types

using AsioAddress = asio::ip::tcp::endpoint
 Type of addresses in asio library.
using AsioResolver = asio::ip::tcp::resolver
 Type of resolvers in asio library.
using AsioSocket = asio::ip::tcp::socket
 Type of sockets in asio library.
using ConcreteAddress = addresses::TCPAddress
 Type of concrete addresses.
using ConnectionType = Connection<AsioSocket, ConcreteAddress>
 Type of connections.
Public Types inherited from msgpack_rpc::transport::IConnector
using ConnectionCallback
 Type of callback functions called when connecting process finished (even for failures).

Public Member Functions

 TCPConnector (const std::shared_ptr< executors::IExecutor > &executor, const config::MessageParserConfig &message_parser_config, std::shared_ptr< logging::Logger > logger)
 Constructor.
void async_connect (const addresses::URI &uri, ConnectionCallback on_connected) override
 Asynchronously connect to an endpoint.
Public Member Functions inherited from msgpack_rpc::transport::IConnector
 IConnector (const IConnector &)=delete
 IConnector (IConnector &&)=delete
virtual ~IConnector () noexcept=default
 Destructor.
IConnectoroperator= (const IConnector &)=delete
IConnectoroperator= (IConnector &&)=delete

Private Member Functions

std::shared_ptr< executors::IExecutorget_executor ()
 Get the executor.
void on_connect (const asio::error_code &error, AsioSocket &&socket, const ConnectionCallback &on_connected, const AsioAddress &asio_address, const addresses::URI &uri)
 Handle the result of connect operation.
AsioResolver::results_type resolve (const addresses::URI &uri)
 Resolve a URI.

Private Attributes

std::weak_ptr< executors::IExecutorexecutor_
 Executor.
std::string log_name_
 Name of the connection for logs.
std::shared_ptr< logging::Loggerlogger_
 Logger.
config::MessageParserConfig message_parser_config_
 Configuration of parsers of messages.
AsioResolver resolver_
 Resolver.
std::string scheme_
 Scheme.

Additional Inherited Members

Protected Member Functions inherited from msgpack_rpc::transport::IConnector
 IConnector () noexcept=default
 Constructor.

Detailed Description

Class of connectors fo TCP.

Definition at line 57 of file tcp_connector.h.

Member Typedef Documentation

◆ AsioAddress

Type of addresses in asio library.

Definition at line 67 of file tcp_connector.h.

◆ AsioResolver

Type of resolvers in asio library.

Definition at line 61 of file tcp_connector.h.

◆ AsioSocket

Type of sockets in asio library.

Definition at line 64 of file tcp_connector.h.

◆ ConcreteAddress

Type of concrete addresses.

Definition at line 70 of file tcp_connector.h.

◆ ConnectionType

Constructor & Destructor Documentation

◆ TCPConnector()

msgpack_rpc::transport::tcp::TCPConnector::TCPConnector ( const std::shared_ptr< executors::IExecutor > & executor,
const config::MessageParserConfig & message_parser_config,
std::shared_ptr< logging::Logger > logger )
inline

Constructor.

Parameters
[in]executorExecutor.
[in]message_parser_configConfiguration of parsers of messages.
[in]loggerLogger.

Definition at line 82 of file tcp_connector.h.

Member Function Documentation

◆ async_connect()

void msgpack_rpc::transport::tcp::TCPConnector::async_connect ( const addresses::URI & uri,
ConnectionCallback on_connected )
inlineoverridevirtual

Asynchronously connect to an endpoint.

Parameters
[in]uriURI of the endpoint.
[in]on_connectedCallback function called when the process finished.

Implements msgpack_rpc::transport::IConnector.

Definition at line 93 of file tcp_connector.h.

◆ get_executor()

std::shared_ptr< executors::IExecutor > msgpack_rpc::transport::tcp::TCPConnector::get_executor ( )
inlinenodiscardprivate

Get the executor.

Returns
Executor.

Definition at line 184 of file tcp_connector.h.

◆ on_connect()

void msgpack_rpc::transport::tcp::TCPConnector::on_connect ( const asio::error_code & error,
AsioSocket && socket,
const ConnectionCallback & on_connected,
const AsioAddress & asio_address,
const addresses::URI & uri )
inlineprivate

Handle the result of connect operation.

Parameters
[in]errorError.
[in]socketSocket.
[in]on_connectedCallback function to tell the result to user.
[in]asio_addressAddress in asio library.
[in]uriURI.

Definition at line 160 of file tcp_connector.h.

◆ resolve()

AsioResolver::results_type msgpack_rpc::transport::tcp::TCPConnector::resolve ( const addresses::URI & uri)
inlinenodiscardprivate

Resolve a URI.

Parameters
[in]uriURI.
Returns
List of resolved addresses in asio library.

Definition at line 119 of file tcp_connector.h.

Member Data Documentation

◆ executor_

std::weak_ptr<executors::IExecutor> msgpack_rpc::transport::tcp::TCPConnector::executor_
private

Executor.

Definition at line 196 of file tcp_connector.h.

◆ log_name_

std::string msgpack_rpc::transport::tcp::TCPConnector::log_name_
private

Name of the connection for logs.

Definition at line 208 of file tcp_connector.h.

◆ logger_

std::shared_ptr<logging::Logger> msgpack_rpc::transport::tcp::TCPConnector::logger_
private

Logger.

Definition at line 211 of file tcp_connector.h.

◆ message_parser_config_

config::MessageParserConfig msgpack_rpc::transport::tcp::TCPConnector::message_parser_config_
private

Configuration of parsers of messages.

Definition at line 199 of file tcp_connector.h.

◆ resolver_

AsioResolver msgpack_rpc::transport::tcp::TCPConnector::resolver_
private

Resolver.

Definition at line 202 of file tcp_connector.h.

◆ scheme_

std::string msgpack_rpc::transport::tcp::TCPConnector::scheme_
private

Scheme.

Definition at line 205 of file tcp_connector.h.


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