|
CMSDK 2.0.1
Cross-platform C++ base library and SDK for the Psyclone AIOS platform
|
Static algorithms for request queues and the request-status map used by the shared-memory request/reply server. More...
Go to the source code of this file.
Classes | |
| struct | cmlabs::RequestQueueHeader |
| Header of one circular request queue; followed by serialized DataMessages between startPos and endPos. More... | |
| struct | cmlabs::RequestStatusHeader |
| Header of the request-status table; followed by a bitfield and countTotal RequestStatusEntry records. More... | |
| struct | cmlabs::RequestStatusEntry |
| One request transaction's status record. More... | |
| class | cmlabs::MemoryRequestQueues |
| Static helpers for request queues and the request-status map (raw shared memory). More... | |
Namespaces | |
| namespace | cmlabs |
Macros | |
Request lifecycle status values for the request server (RequestStatusEntry::status) | |
| #define | MEMORYREQUEST_ERROR 0 |
| Error/invalid. | |
| #define | MEMORYREQUEST_IDLE 1 |
| Slot unused. | |
| #define | MEMORYREQUEST_INIT 2 |
| Request being composed. | |
| #define | MEMORYREQUEST_SUBMITTED 3 |
| Placed on the server's queue. | |
| #define | MEMORYREQUEST_RECEIVED 4 |
| Dequeued by the server. | |
| #define | MEMORYREQUEST_STARTED 5 |
| Processing started. | |
| #define | MEMORYREQUEST_COMPLETED 6 |
| Processing finished. | |
| #define | MEMORYREQUEST_REPLIED 7 |
| Reply enqueued to the requester. | |
| #define | MEMORYREQUEST_REPLYRECEIVED 8 |
| Requester consumed the reply. | |
| #define | MEMORYREQUEST_FINISHED 9 |
| Transaction closed; slot reclaimable. | |
Static algorithms for request queues and the request-status map used by the shared-memory request/reply server.
Provides the raw building blocks for MemoryRequestServer/MemoryRequestConnection: circular DataMessage queues (RequestQueueHeader) and a bitfield-indexed request-status table (RequestStatusHeader/RequestStatusEntry) that tracks each request through the MEMORYREQUEST_* lifecycle. All functions operate on raw mapped addresses; callers coordinate locking.
Definition in file MemoryRequestQueues.h.
| #define MEMORYREQUEST_COMPLETED 6 |
Processing finished.
Definition at line 30 of file MemoryRequestQueues.h.
| #define MEMORYREQUEST_ERROR 0 |
Error/invalid.
Definition at line 24 of file MemoryRequestQueues.h.
Referenced by cmlabs::MemoryRequestConnection::getRequestStatus(), and cmlabs::MemoryRequestConnection::replyToRequest().
| #define MEMORYREQUEST_FINISHED 9 |
Transaction closed; slot reclaimable.
Definition at line 33 of file MemoryRequestQueues.h.
| #define MEMORYREQUEST_IDLE 1 |
Slot unused.
Definition at line 25 of file MemoryRequestQueues.h.
| #define MEMORYREQUEST_INIT 2 |
Request being composed.
Definition at line 26 of file MemoryRequestQueues.h.
Referenced by cmlabs::MemoryRequestConnection::makeRequest().
| #define MEMORYREQUEST_RECEIVED 4 |
Dequeued by the server.
Definition at line 28 of file MemoryRequestQueues.h.
Referenced by cmlabs::MemoryRequestConnection::waitForRequest().
| #define MEMORYREQUEST_REPLIED 7 |
Reply enqueued to the requester.
Definition at line 31 of file MemoryRequestQueues.h.
Referenced by cmlabs::MemoryRequestConnection::replyToRequest(), and cmlabs::MemoryRequestServer::UnitTest().
| #define MEMORYREQUEST_REPLYRECEIVED 8 |
Requester consumed the reply.
Definition at line 32 of file MemoryRequestQueues.h.
Referenced by cmlabs::MemoryRequestConnection::waitForRequestReply(), and cmlabs::MemoryRequestConnection::waitForRequestReply().
| #define MEMORYREQUEST_STARTED 5 |
Processing started.
Definition at line 29 of file MemoryRequestQueues.h.
| #define MEMORYREQUEST_SUBMITTED 3 |
Placed on the server's queue.
Definition at line 27 of file MemoryRequestQueues.h.
Referenced by cmlabs::MemoryRequestConnection::makeRequest(), cmlabs::MemoryRequestConnection::replyToRequest(), and cmlabs::MemoryRequestServer::UnitTest().