Skip to content

ExchangeRPCBackend

template<class ServiceType, typename RequestType, typename ResponseType>
class ExchangeRPCBackend : public RPCBackend<ServiceType, RequestType, ResponseType>, public IExchangeBackendInterface<RequestType, ResponseType>

Template Parameters

  • class ServiceType
  • typename RequestType
  • typename 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:

NameTypeDefault
TargetRPCRPCBackend::AsyncRPCHandle
Servicestd::shared_ptr<ServiceType>
CQueuestd::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() override

Initiate 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&lt;const RequestType &#42;&gt;

Attributes: inline, virtual

Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 235, column 9)

Respond

inline virtual void Respond(ResponseType *Response) override

Respond 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() override

Close 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 = = 0

Attributes: private

Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 212, column 5)

_ExchCallData * CurrExchange

_ExchCallData * CurrExchange = = nullptr

Attributes: private

Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 215, column 17)

ExchangeRPCWorker<ServiceType, RequestType, ResponseType> * Worker

ExchangeRPCWorker<ServiceType, RequestType, ResponseType> * Worker

Attributes: private

Source: Schola/Source/Schola/Public/Communicator/ExchangeRPCBackend.h (line 216, column 19)

int MsgID

int MsgID = = 0

Attributes: 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)