5#include "roo_collections.h"
6#include "roo_collections/flat_small_hash_map.h"
7#include "roo_threads.h"
8#include "roo_threads/mutex.h"
18 roo_collections::FlatSmallHashMap<RpcFunctionId, RpcHandlerFn>;
36 handle.sendFailureResponse(status,
"request deserialization failed");
42 handle.sendFailureResponse(status,
"application error");
55template <
typename Request,
typename Response,
56 typename RequestDeserializer = Deserializer<Request>,
57 typename ResponseSerializer = Serializer<Response>>
71 handle.sendFailureResponse(status,
"request deserialization failed");
106 size_t len)
override {
111 RpcServer& rpc_server_;
115 const roo::byte* data,
size_t len);
123 roo::string_view msg);
132 Messaging& messaging_;
133 Dispatcher dispatcher_;
142 roo_collections::FlatSmallHashMap<RpcStreamId, RpcRequest> pending_calls_;
std::function< void(const Request &, std::function< void(RpcStatus, Response)>)> Fn
void operator()(RequestHandle handle, const roo::byte *payload, size_t payload_size, bool fin) const
Abstract interface for message exchange over a reliable channel.
void unsetReceiver()
Unregisters receiver.
void operator()(RequestHandle handle, const roo::byte *payload, size_t payload_size, bool fin) const
std::function< RpcStatus(const Request &, Response &)> Fn
roo_collections::FlatSmallHashMap< RpcFunctionId, RpcHandlerFn > FunctionTable