Derive from this class to implement a single remote procedure call handled by this gRPC server gRPCModule
.
More...
template<typename... gRPCServices>
template<typename DerivedType, typename gRPCService, typename RequestMessageType, typename ResponseMessageType, typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
class DynExpModule::gRPCModule< gRPCServices >::TypedCallDataBase< DerivedType, gRPCService, RequestMessageType, ResponseMessageType,... >
Derive from this class to implement a single remote procedure call handled by this gRPC server gRPCModule
.
- Template Parameters
-
DerivedType | Type of the derived class (Curiously Recurring Template Pattern) |
gRPCService | Type of a service implemented by this gRPC server gRPCModule for which this class implements a remote procedure call |
RequestMessageType | Type of the gRPC message the client sends to this server |
ResponseMessageType | Type of the gRPC message this server sends back to the client |
enable_if_t | Ensures that gRPCService is contained in the gRPCServices template parameter of the class gRPCModule this TypedCallDataBase class belongs to. |
Definition at line 328 of file gRPCModule.h.
template<typename... gRPCServices>
template<typename DerivedType , typename gRPCService , typename RequestMessageType , typename ResponseMessageType , typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
using DynExpModule::gRPCModule< gRPCServices >::TypedCallDataBase< DerivedType, gRPCService, RequestMessageType, ResponseMessageType,... >::RequestFuncType = std::function<void(typename gRPCService::AsyncService*, grpc::ServerContext*, RequestMessageType*, ResponseWriterType*, grpc::CompletionQueue*, grpc::ServerCompletionQueue*, void*)> |
|
private |
Alias for the remote procedure call function implemented by this class as part of an asynchronous gRPC service. Refer to gRPC documentation.
Definition at line 353 of file gRPCModule.h.
template<typename... gRPCServices>
template<typename DerivedType , typename gRPCService , typename RequestMessageType , typename ResponseMessageType , typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
Alias for the gRPC response writer which sends a message of type ResponseMessageType
back to the client after the remote procedure call is handled.
Definition at line 347 of file gRPCModule.h.
template<typename... gRPCServices>
template<typename DerivedType , typename gRPCService , typename RequestMessageType , typename ResponseMessageType , typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
Constructs a TypedCallDataBase
instance.
- Parameters
-
OwningModule | gRPC server this remote procedure call belongs to |
RequestFunc | Remote procedure call function implemented by this class. This function is usually part of the < ServiceType > :: AsyncService gRPC namespace. |
Definition at line 362 of file gRPCModule.h.
template<typename... gRPCServices>
template<typename DerivedType , typename gRPCService , typename RequestMessageType , typename ResponseMessageType , typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
|
inlinefinaloverrideprivatevirtual |
template<typename... gRPCServices>
template<typename DerivedType , typename gRPCService , typename RequestMessageType , typename ResponseMessageType , typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
Creates a new remote procedure call of this type which awaits requests from the client.
- Parameters
-
OwningModule | gRPC server this remote procedure call belongs to |
Instance | Handle to the server module thread's data |
Definition at line 337 of file gRPCModule.h.
template<typename... gRPCServices>
template<typename DerivedType , typename gRPCService , typename RequestMessageType , typename ResponseMessageType , typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
|
inlinefinaloverrideprivatevirtual |
template<typename... gRPCServices>
template<typename DerivedType , typename gRPCService , typename RequestMessageType , typename ResponseMessageType , typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
Override to implement the server's action to handle this remote procedure call. Particularly, populate gRPCModule::ResponseMessage with the server's responses.
- Parameters
-
Instance | Handle to the server module thread's data |
template<typename... gRPCServices>
template<typename DerivedType , typename gRPCService , typename RequestMessageType , typename ResponseMessageType , typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
template<typename... gRPCServices>
template<typename DerivedType , typename gRPCService , typename RequestMessageType , typename ResponseMessageType , typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
template<typename... gRPCServices>
template<typename DerivedType , typename gRPCService , typename RequestMessageType , typename ResponseMessageType , typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
Client's message sent along with its invocation of this remote procedure call.
Definition at line 402 of file gRPCModule.h.
template<typename... gRPCServices>
template<typename DerivedType , typename gRPCService , typename RequestMessageType , typename ResponseMessageType , typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
Response the server sends back to the client by finishing the remote procedure call.
Definition at line 403 of file gRPCModule.h.
template<typename... gRPCServices>
template<typename DerivedType , typename gRPCService , typename RequestMessageType , typename ResponseMessageType , typename std::enable_if_t< Util::is_contained_in_v< gRPCService, gRPCServices... >, int > = 0>
gRPC response writer to send gRPCModule::ResponseMessage back to the client. Refer to gRPC documentation.
Definition at line 404 of file gRPCModule.h.