cpp-msgpack-rpc 0.2.0
An RPC library implementing MessagePack RPC.
Loading...
Searching...
No Matches
msgpack_rpc::servers::ServerBuilder Class Reference

Class of builders of servers. More...

#include <msgpack_rpc/servers/server_builder.h>

Collaboration diagram for msgpack_rpc::servers::ServerBuilder:

Public Member Functions

 ServerBuilder ()
 Constructor.
 ServerBuilder (const config::ServerConfig &server_config, const std::shared_ptr< logging::Logger > &logger=logging::Logger::create())
 Constructor.
 ServerBuilder (const std::shared_ptr< logging::Logger > &logger)
 Constructor.
template<typename Signature, typename Function>
ServerBuilderadd_method (messages::MethodName name, Function &&function)
 Add a method implemented by a function object.
ServerBuilderadd_method (std::unique_ptr< methods::IMethod > method)
 Add a method.
Server build ()
 Build a server.
ServerBuilderlisten_to (addresses::URI uri)
 Add a URI to listen to.
ServerBuilderlisten_to (std::string_view uri)
 Add a URI to listen to.
ServerBuilderlisten_to_tcp (std::string_view host, std::uint16_t port_number)
 Add a TCP address to listen to.

Private Attributes

std::unique_ptr< impl::IServerBuilderImplimpl_
 Internal implementation.

Detailed Description

Class of builders of servers.

Examples
more_server.cpp, and simple_server.cpp.

Definition at line 43 of file server_builder.h.

Constructor & Destructor Documentation

◆ ServerBuilder() [1/3]

msgpack_rpc::servers::ServerBuilder::ServerBuilder ( )
inline

Constructor.

This overload will use the default configurations for servers and loggers.

Definition at line 51 of file server_builder.h.

◆ ServerBuilder() [2/3]

msgpack_rpc::servers::ServerBuilder::ServerBuilder ( const std::shared_ptr< logging::Logger > & logger)
inlineexplicit

Constructor.

Parameters
[in]loggerLogger.

This overload will use the default configurations for servers.

Definition at line 60 of file server_builder.h.

◆ ServerBuilder() [3/3]

msgpack_rpc::servers::ServerBuilder::ServerBuilder ( const config::ServerConfig & server_config,
const std::shared_ptr< logging::Logger > & logger = logging::Logger::create() )
inlineexplicit

Constructor.

Parameters
[in]server_configConfiguration of the server.
[in]loggerLogger.

Definition at line 69 of file server_builder.h.

Member Function Documentation

◆ add_method() [1/2]

template<typename Signature, typename Function>
ServerBuilder & msgpack_rpc::servers::ServerBuilder::add_method ( messages::MethodName name,
Function && function )
inline

Add a method implemented by a function object.

Template Parameters
SignatureSignature of the method.
FunctionType of the function implementing the method.
Parameters
[in]nameName of the method.
[in]functionFunction implementing the method.
Returns
This.
Note
The function can throw exceptions using msgpack_rpc::methods::MethodException class to notify errors using any serializable objects.

Definition at line 136 of file server_builder.h.

◆ add_method() [2/2]

ServerBuilder & msgpack_rpc::servers::ServerBuilder::add_method ( std::unique_ptr< methods::IMethod > method)
inline

Add a method.

Parameters
[in]methodMethod.
Returns
This.
Note
This overload should not be used in most applications.
Examples
more_server.cpp, and simple_server.cpp.

Definition at line 117 of file server_builder.h.

◆ build()

Server msgpack_rpc::servers::ServerBuilder::build ( )
inlinenodiscard

Build a server.

Returns
Server.
Examples
more_server.cpp, and simple_server.cpp.

Definition at line 147 of file server_builder.h.

◆ listen_to() [1/2]

ServerBuilder & msgpack_rpc::servers::ServerBuilder::listen_to ( addresses::URI uri)
inline

Add a URI to listen to.

Parameters
[in]uriURI.
Returns
This.
Examples
more_server.cpp.

Definition at line 80 of file server_builder.h.

◆ listen_to() [2/2]

ServerBuilder & msgpack_rpc::servers::ServerBuilder::listen_to ( std::string_view uri)
inline

Add a URI to listen to.

Parameters
[in]uriString of a URI.
Returns
This.

Definition at line 91 of file server_builder.h.

◆ listen_to_tcp()

ServerBuilder & msgpack_rpc::servers::ServerBuilder::listen_to_tcp ( std::string_view host,
std::uint16_t port_number )
inline

Add a TCP address to listen to.

Parameters
[in]hostHost name.
[in]port_numberPort number.
Returns
This.
Examples
more_server.cpp.

Definition at line 103 of file server_builder.h.

Member Data Documentation

◆ impl_

std::unique_ptr<impl::IServerBuilderImpl> msgpack_rpc::servers::ServerBuilder::impl_
private

Internal implementation.

Definition at line 151 of file server_builder.h.


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