Open Lighting Architecture
Latest Git
|
The RPC channel used to communicate between the client and the server. This implementation runs over a ConnectedDescriptor which means it can be used over TCP or pipes.
Public Types | |
typedef SingleUseCallback1< void, class RpcSession * > | CloseCallback |
The callback to run when the channel is closed. More... | |
Public Member Functions | |
RpcChannel (RpcService *service, ola::io::ConnectedDescriptor *descriptor, ExportMap *export_map=NULL) | |
Create a new RpcChannel. More... | |
~RpcChannel () | |
Destructor. | |
void | SetService (RpcService *service) |
Set the Service to use to handle incoming requests. More... | |
bool | PendingRPCs () const |
Check if there are any pending RPCs on the channel. Pending RPCs are those where a request has been sent, but no reply has been received. More... | |
void | DescriptorReady () |
Called when new data arrives on the descriptor. | |
void | SetChannelCloseHandler (CloseCallback *callback) |
Set the Callback to be run when the channel fails. The callback will be invoked if the descriptor is closed, or if writes to the descriptor fail. More... | |
void | CallMethod (const google::protobuf::MethodDescriptor *method, class RpcController *controller, const google::protobuf::Message *request, google::protobuf::Message *response, SingleUseCallback0< void > *done) |
Invoke an RPC method on this channel. | |
void | RequestComplete (class OutstandingRequest *request) |
Invoked by the RPC completion handler when the server side response is ready. More... | |
RpcSession * | Session () |
Return the RpcSession associated with this channel. More... | |
Static Public Attributes | |
static const unsigned int | PROTOCOL_VERSION = 1 |
the RPC protocol version. | |
typedef SingleUseCallback1<void, class RpcSession*> ola::rpc::RpcChannel::CloseCallback |
The callback to run when the channel is closed.
When run, the callback is passed the RpcSession associated with this channel.
ola::rpc::RpcChannel::RpcChannel | ( | RpcService * | service, |
ola::io::ConnectedDescriptor * | descriptor, | ||
ExportMap * | export_map = NULL |
||
) |
Create a new RpcChannel.
service | the Service to use to handle incoming requests. Ownership is not transferred. |
descriptor | the descriptor to use for reading/writing data. The caller is responsible for registering the descriptor with the SelectServer. Ownership of the descriptor is not transferred. |
export_map | the ExportMap to use for stats |
|
inline |
Check if there are any pending RPCs on the channel. Pending RPCs are those where a request has been sent, but no reply has been received.
void ola::rpc::RpcChannel::RequestComplete | ( | class OutstandingRequest * | request | ) |
Invoked by the RPC completion handler when the server side response is ready.
request | the OutstandingRequest that is now complete. |
RpcSession * ola::rpc::RpcChannel::Session | ( | ) |
Return the RpcSession associated with this channel.
void ola::rpc::RpcChannel::SetChannelCloseHandler | ( | CloseCallback * | callback | ) |
Set the Callback to be run when the channel fails. The callback will be invoked if the descriptor is closed, or if writes to the descriptor fail.
callback | the callback to run when the channel fails. |
|
inline |
Set the Service to use to handle incoming requests.
service | the new Service to use, ownership is not transferred. |