![]() |
Open Lighting Architecture 0.10.9
|
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. | |
Public Member Functions | |
| RpcChannel (RpcService *service, ola::io::ConnectedDescriptor *descriptor, ExportMap *export_map=NULL) | |
| Create a new RpcChannel. | |
| ~RpcChannel () | |
| Destructor. | |
| void | SetService (RpcService *service) |
| Set the Service to use to handle incoming requests. | |
| 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. | |
| 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. | |
| 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. | |
| RpcSession * | Session () |
| Return the RpcSession associated with this channel. | |
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. |