|
CMSDK 2.0.1
Cross-platform C++ base library and SDK for the Psyclone AIOS platform
|
Request-system client side: RequestReply futures, RequestQueue, gateway connection records and the RequestClient itself. More...
Go to the source code of this file.
Classes | |
| class | cmlabs::RequestReply |
| Future/handle for one in-flight request: holds the request message, the eventual reply, status, timing and routing references. More... | |
| class | cmlabs::RequestQueue |
| Priority-ordered queue of pending RequestReply objects (per executor connection). More... | |
| struct | cmlabs::RequestConnection |
| Gateway-side record of one connected client or executor. More... | |
| struct | cmlabs::RequestGatewayConnection |
| Client/executor-side record of one gateway it connects to. More... | |
| class | cmlabs::RequestClient |
| Application-facing client of the request system: posts DataMessage requests to one or more RequestGateways and delivers replies. More... | |
| class | cmlabs::TestRequestClient |
| Load-test client driving a RequestGateway with binary-protocol requests at a configurable frequency/payload (used by RequestGateway::UnitTest()). More... | |
| class | cmlabs::TestWebRequestClient |
| Load-test client driving a RequestGateway over plain HTTP web requests. More... | |
| class | cmlabs::TestWebSocketRequestClient |
| Load-test client driving a RequestGateway over WebSocket connections. More... | |
Namespaces | |
| namespace | cmlabs |
Typedefs | |
| typedef void(* | cmlabs::RequestCallbackFunction) (RequestReply &reply) |
| Signature for asynchronous completion callbacks registered on a RequestReply. | |
Enumerations | |
| enum | cmlabs::RequestStatus { cmlabs::NONE = 0 , cmlabs::IDLE = 1 , cmlabs::QUEUED = 2 , cmlabs::PROCESSING = 3 , cmlabs::SENT = 4 , cmlabs::SUCCESS = 5 , cmlabs::FAILED = 6 , cmlabs::TIMEOUT = 7 , cmlabs::TOOBUSY = 8 , cmlabs::LOCALERROR = 9 , cmlabs::NETWORKERROR = 10 , cmlabs::SERVERERROR = 11 } |
| Lifecycle states of a request as it moves through client, gateway and executor. More... | |
Functions | |
| THREAD_RET THREAD_FUNCTION_CALL | cmlabs::RequestClientRun (THREAD_ARG arg) |
| Thread entry point for the RequestClient worker loop. | |
| THREAD_RET THREAD_FUNCTION_CALL | cmlabs::TestRequestClientRun (THREAD_ARG arg) |
| THREAD_RET THREAD_FUNCTION_CALL | cmlabs::TestWebRequestClientRun (THREAD_ARG arg) |
| THREAD_RET THREAD_FUNCTION_CALL | cmlabs::TestWebSocketRequestClientRun (THREAD_ARG arg) |
Request-system client side: RequestReply futures, RequestQueue, gateway connection records and the RequestClient itself.
The CMSDK request system is a distributed request/response fabric built on the message protocol of NetworkManager. Three roles cooperate:
A request round-trip looks like this:
Clients keep a list of gateways (RequestGatewayConnection) and reconnect automatically; requests survive brief gateway outages by re-queuing.
Definition in file RequestClient.h.