cpp-msgpack-rpc 0.2.0
An RPC library implementing MessagePack RPC.
|
Class to handle connections in servers. More...
#include <msgpack_rpc/servers/server_connection.h>
Public Member Functions | |
ServerConnection (const std::shared_ptr< transport::IConnection > &connection, std::weak_ptr< executors::IExecutor > executor, std::shared_ptr< methods::IMethodProcessor > processor, std::shared_ptr< logging::Logger > logger) | |
Constructor. | |
void | start () |
Start processing. |
Private Member Functions | |
void | on_invalid_message () |
Handle an invalid message. | |
void | on_notification (const messages::ParsedNotification ¬ification) |
Process a notification. | |
void | on_received (messages::ParsedMessage message) |
Process a received message. | |
void | on_request (const messages::ParsedRequest &request) |
Process a request. | |
void | on_sent () |
Handle the condition that a message is sent. | |
void | send_next_if_exists () |
Send the next message if exists. |
Private Attributes | |
std::weak_ptr< transport::IConnection > | connection_ |
Connection. | |
std::weak_ptr< executors::IExecutor > | executor_ |
Executor. | |
std::string | formatted_remote_address_ |
Formatted remote address for logging. | |
std::atomic< bool > | is_sending_ {false} |
Whether this connection is sending a message. | |
std::shared_ptr< logging::Logger > | logger_ |
Logger. | |
std::queue< messages::SerializedMessage > | message_queue_ {} |
Messages to be sent. | |
std::mutex | message_queue_mutex_ {} |
Mutex of message_queue_. | |
std::shared_ptr< methods::IMethodProcessor > | processor_ |
Processor of methods. |
Class to handle connections in servers.
Definition at line 51 of file server_connection.h.
|
inline |
Constructor.
[in] | connection | Connection. |
[in] | executor | Executor. |
[in] | processor | Processor of methods. |
[in] | logger | Logger. |
Definition at line 61 of file server_connection.h.
|
inlineprivate |
Handle an invalid message.
Definition at line 165 of file server_connection.h.
|
inlineprivate |
Process a notification.
[in] | notification | Notification. |
Definition at line 155 of file server_connection.h.
|
inlineprivate |
Process a received message.
[in] | message | Message. |
Definition at line 95 of file server_connection.h.
|
inlineprivate |
Process a request.
[in] | request | Request. |
Definition at line 133 of file server_connection.h.
|
inlineprivate |
Handle the condition that a message is sent.
Definition at line 204 of file server_connection.h.
|
inlineprivate |
Send the next message if exists.
Definition at line 179 of file server_connection.h.
|
inline |
Start processing.
Definition at line 74 of file server_connection.h.
|
private |
Connection.
Definition at line 211 of file server_connection.h.
|
private |
Executor.
Definition at line 214 of file server_connection.h.
|
private |
Formatted remote address for logging.
Definition at line 223 of file server_connection.h.
|
private |
Whether this connection is sending a message.
Definition at line 232 of file server_connection.h.
|
private |
Logger.
Definition at line 220 of file server_connection.h.
|
private |
Messages to be sent.
Definition at line 226 of file server_connection.h.
|
private |
Mutex of message_queue_.
Definition at line 229 of file server_connection.h.
|
private |
Processor of methods.
Definition at line 217 of file server_connection.h.