10 #ifndef CORAL_NET_REQREP_HPP 11 #define CORAL_NET_REQREP_HPP 19 #include <system_error> 20 #include <unordered_map> 24 #include "coral/config.h" 100 const char* replyHeader,
size_t replyHeaderSize,
101 const char* replyBody,
size_t replyBodySize)>
146 const char* requestHeader,
size_t requestHeaderSize,
147 const char* requestBody,
size_t requestBodySize,
201 const char* requestHeader,
size_t requestHeaderSize,
202 const char* requestBody,
size_t requestBodySize,
218 int m_timeoutTimerID;
294 virtual bool HandleRequest(
297 const char* requestHeader,
size_t requestHeaderSize,
298 const char* requestBody,
size_t requestBodySize,
299 const char*& replyHeader,
size_t& replyHeaderSize,
300 const char*& replyBody,
size_t& replyBodySize) = 0;
352 void AddProtocolHandler(
Contains the coral::net::Reactor class and related functionality.
std::function< void(const std::error_code &ec, std::uint16_t version)> MaxProtocolReplyHandler
A callback type for RequestMaxProtocol().
Definition: reqrep.hpp:168
Main module header for coral::net.
An interface for classes that implement the server side of request-reply protocols, to be used with Server.
Definition: reqrep.hpp:238
Module header for coral::net::zmqx.
A backend class for clients that communicate with a Server.
Definition: reqrep.hpp:49
A client socket for communication with a single server node.
Definition: zmqx.hpp:153
A protocol/transport independent endpoint address specification.
Definition: net.hpp:34
Definition: variable_io.hpp:28
void RequestMaxProtocol(std::chrono::milliseconds timeout, MaxProtocolReplyHandler onComplete)
Sends a "meta request" to the server asking for the maximum protocol version it supports.
A generic server class for simple request-reply protocols.
Definition: reqrep.hpp:325
void Request(std::uint16_t protocolVersion, const char *requestHeader, size_t requestHeaderSize, const char *requestBody, size_t requestBodySize, std::chrono::milliseconds timeout, ReplyHandler onComplete)
Sends a request.
std::function< void(const std::error_code &ec, const char *replyHeader, size_t replyHeaderSize, const char *replyBody, size_t replyBodySize)> ReplyHandler
A callback type for Request().
Definition: reqrep.hpp:102
An implementation of the reactor pattern.
Definition: reactor.hpp:41
Client(coral::net::Reactor &reactor, const std::string &protocolIdentifier, const coral::net::Endpoint &serverEndpoint)
Constructs a new client instance connected to the given endpoint, and registers it with the given rea...