ExchangeRPCBackend
template<class ServiceType, typename RequestType, typename ResponseType>class ExchangeRPCBackend : public RPCBackend<ServiceType, RequestType, ResponseType>, public IExchangeBackendInterface<RequestType, ResponseType>Template Parameters
class ServiceTypetypename RequestTypetypename ResponseType
Dependencies
This type depends on:
Inherits from: public RPCBackend<ServiceType, RequestType, ResponseType>, public IExchangeBackendInterface<RequestType, ResponseType>
Public Interface
Constructor:
ExchangeRPCBackend
inline ExchangeRPCBackend(RPCBackend::AsyncRPCHandle TargetRPC, std::shared_ptr<ServiceType> Service, std::unique_ptr<ServerCompletionQueue> CQueue)Parameters:
| Name | Type | Default |
|---|---|---|
TargetRPC | RPCBackend::AsyncRPCHandle | “ |
Service | std::shared_ptr<ServiceType> | “ |
CQueue | std::unique_ptr<ServerCompletionQueue> | “ |
Attributes: inline
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 221, column 1)
Destructor:
~ExchangeRPCBackend
inline ~ExchangeRPCBackend()Attributes: inline
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 228, column 1)
Public Functions:
Receive
inline virtual TFuture<const RequestType *> Receive() overrideInitiate an Exchange with the Client.
Returns: A future that will be fulfilled with the result of the exchange. The value ptr from the future is valid until the next time exchange is called.
Returns: TFuture<const RequestType *>
Attributes: inline, virtual
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 235, column 9)
Respond
inline virtual void Respond(ResponseType *Response) overrideRespond to a message from the client.
Parameters:
Response(ResponseType *) – [in] The message to send to the client
Attributes: inline, virtual
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 248, column 6)
Initialize
inline virtual void Initialize()Perform any setup that happens prior to establishing any external connection.
this could include opening a socket and waiting for a connection.
Attributes: inline, virtual
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 259, column 14)
Start
inline virtual void Start()Attributes: inline, virtual
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 261, column 14)
Establish
inline virtual void Establish()Perform any setup that involves handshakes with the external communication (e.g.
setting up serialization). Use after Initialize.
Attributes: inline, virtual
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 266, column 14)
Shutdown
inline virtual void Shutdown() overrideClose the external connection.
Attributes: inline, virtual
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 268, column 14)
Restart
inline virtual void Restart()Reset the Communication backend.
Attributes: inline, virtual
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 274, column 14)
Private Interface
Private Members:
int LocalID
int LocalID = = 0Attributes: private
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 212, column 5)
_ExchCallData * CurrExchange
_ExchCallData * CurrExchange = = nullptrAttributes: private
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 215, column 17)
ExchangeRPCWorker<ServiceType, RequestType, ResponseType> * Worker
ExchangeRPCWorker<ServiceType, RequestType, ResponseType> * WorkerAttributes: private
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 216, column 19)
int MsgID
int MsgID = = 0Attributes: private
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 217, column 7)
Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 209, column 1)