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

Class to establish a connection using multiple backends of protocols. More...

#include <msgpack_rpc/transport/async_connect.h>

Collaboration diagram for msgpack_rpc::transport::impl::MultiBackendConnector:

Public Member Functions

 MultiBackendConnector (const BackendList &backends, const std::vector< addresses::URI > &uris, std::function< void(const Status &, std::shared_ptr< IConnection >)> on_connection)
 Constructor.
void operator() (const Status &status, std::shared_ptr< IConnection > connection)
 Handle the result to connect to an endpoint.
void start ()
 Start to connect to an endpoint.

Private Member Functions

void async_connect ()
 Asynchronously connect to an endpoint.

Private Attributes

const BackendListbackends_
 Backends.
std::shared_ptr< IConnectorconnector_ {}
 Current connector.
std::vector< addresses::URI >::const_iterator current_uri_
 Current URI.
std::function< void(Status, std::shared_ptr< IConnection >)> on_connection_
 Callback function called when a connection is established or error occurred in all URIs.
const std::vector< addresses::URI > * uris_
 URIs.

Detailed Description

Class to establish a connection using multiple backends of protocols.

Warning
This class holds only reference to backends and URIs, and the same object of this class cannot be used multiple times.

Definition at line 46 of file async_connect.h.

Constructor & Destructor Documentation

◆ MultiBackendConnector()

msgpack_rpc::transport::impl::MultiBackendConnector::MultiBackendConnector ( const BackendList & backends,
const std::vector< addresses::URI > & uris,
std::function< void(const Status &, std::shared_ptr< IConnection >)> on_connection )
inline

Constructor.

Parameters
[in]backendsBackends.
[in]urisURIs.
[in]on_connectionCallback function called when a connection is established or error occurred in all URIs.

Definition at line 56 of file async_connect.h.

Member Function Documentation

◆ async_connect()

void msgpack_rpc::transport::impl::MultiBackendConnector::async_connect ( )
inlineprivate

Asynchronously connect to an endpoint.

Definition at line 96 of file async_connect.h.

◆ operator()()

void msgpack_rpc::transport::impl::MultiBackendConnector::operator() ( const Status & status,
std::shared_ptr< IConnection > connection )
inline

Handle the result to connect to an endpoint.

Parameters
[in]statusStatus.
[in]connectionConnection.

Definition at line 76 of file async_connect.h.

◆ start()

void msgpack_rpc::transport::impl::MultiBackendConnector::start ( )
inline

Start to connect to an endpoint.

Definition at line 68 of file async_connect.h.

Member Data Documentation

◆ backends_

const BackendList* msgpack_rpc::transport::impl::MultiBackendConnector::backends_
private

Backends.

Definition at line 107 of file async_connect.h.

◆ connector_

std::shared_ptr<IConnector> msgpack_rpc::transport::impl::MultiBackendConnector::connector_ {}
private

Current connector.

Definition at line 119 of file async_connect.h.

◆ current_uri_

std::vector<addresses::URI>::const_iterator msgpack_rpc::transport::impl::MultiBackendConnector::current_uri_
private

Current URI.

Definition at line 116 of file async_connect.h.

◆ on_connection_

std::function<void(Status, std::shared_ptr<IConnection>)> msgpack_rpc::transport::impl::MultiBackendConnector::on_connection_
private

Callback function called when a connection is established or error occurred in all URIs.

Definition at line 113 of file async_connect.h.

◆ uris_

const std::vector<addresses::URI>* msgpack_rpc::transport::impl::MultiBackendConnector::uris_
private

URIs.

Definition at line 110 of file async_connect.h.


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