|
CMSDK 2.0.1
Cross-platform C++ base library and SDK for the Psyclone AIOS platform
|
Shared-memory name/id maps: message types, contexts, tags, cranks and cross-process requests. More...
Go to the source code of this file.
Classes | |
| struct | cmlabs::DataMapsMemoryStruct |
| Root header of the data-maps segment; records capacity/size of each contained map. More... | |
| struct | cmlabs::GenericMapHeader |
| Common header of every map inside the data-maps segment. More... | |
| struct | cmlabs::TypeMapEntry |
| Type-map entry: one registered message type name/id. More... | |
| struct | cmlabs::ContextMapEntry |
| Context-map entry: one registered psychological/system context name/id. More... | |
| struct | cmlabs::TagMapEntry |
| Tag-map entry: one registered tag name/id. More... | |
| struct | cmlabs::CrankMapEntry |
| Crank-map entry: one registered crank (user callback/script) with its function, library and inline script. More... | |
| struct | cmlabs::RequestMapEntry |
| Request-map entry tracking one cross-component request/reply transaction. More... | |
| class | cmlabs::DataMapsMemory |
| Accessor for the shared name/id maps and the request map. More... | |
| class | cmlabs::GenericMemoryMap< T, ID > |
| Static algorithms shared by all bitfield-indexed maps in the data-maps segment. More... | |
Namespaces | |
| namespace | cmlabs |
Macros | |
| #define | CHECKDATAMAPSMEMORYSERIAL if (serial != master->getDataMapsShmemSerial()) {if (!open()) {mutex->leave();return 0;}} |
| Re-open the data-maps segment if the master's resize serial no longer matches ours; bails out of the calling method (returning 0) on failure. | |
Request lifecycle status values (RequestMapEntry::status) | |
A request travels created → received → processing → reply-ready → success/failure; _LOCAL/_REMOTE distinguish same-node vs cross-node processing, _DATA/_NODATA whether a reply payload exists, and _EOL that the payload has already expired from temporal memory. | |
| #define | REQ_CREATED 1 |
| #define | REQ_RECEIVED_LOCAL 2 |
| #define | REQ_RECEIVED_REMOTE 3 |
| #define | REQ_PROCESSING_LOCAL 4 |
| #define | REQ_PROCESSING_REMOTE 5 |
| #define | REQ_REPLY_READY 6 |
| #define | REQ_FAILED_TO_SEND 7 |
| #define | REQ_FAILED 8 |
| #define | REQ_FAILED_DATA 9 |
| #define | REQ_FAILED_NODATA 10 |
| #define | REQ_FAILED_DATA_EOL 11 |
| #define | REQ_SUCCESS 12 |
| #define | REQ_SUCCESS_DATA 13 |
| #define | REQ_SUCCESS_NODATA 14 |
| #define | REQ_SUCCESS_DATA_EOL 15 |
Shared-memory name/id maps: message types, contexts, tags, cranks and cross-process requests.
Psyclone identifies message types, contexts, tags and cranks by small integer ids that must agree across every process and node. This segment holds five bitfield-indexed maps (GenericMapHeader + fixed-size entries) that translate names to ids and back, plus the request map used to track cross-component request/reply transactions. Entries are created in a two-phase manner (create → confirm/cancel) so ids can be negotiated cluster-wide before being marked ready (status: 0 absent, 1 in-sync, 2 ready).
The GenericMemoryMap template at the bottom implements the shared map algorithms once for all entry types (see MemoryMaps.tpl.h).
Definition in file DataMapsMemory.h.
| #define CHECKDATAMAPSMEMORYSERIAL if (serial != master->getDataMapsShmemSerial()) {if (!open()) {mutex->leave();return 0;}} |
Re-open the data-maps segment if the master's resize serial no longer matches ours; bails out of the calling method (returning 0) on failure.
Definition at line 230 of file DataMapsMemory.h.
Referenced by cmlabs::DataMapsMemory::cancelContextLevelID(), cmlabs::DataMapsMemory::cancelCrankID(), cmlabs::DataMapsMemory::cancelTagID(), cmlabs::DataMapsMemory::cancelTypeLevelID(), cmlabs::DataMapsMemory::confirmContextLevelID(), cmlabs::DataMapsMemory::confirmCrankID(), cmlabs::DataMapsMemory::confirmTagID(), cmlabs::DataMapsMemory::confirmTypeLevelID(), cmlabs::DataMapsMemory::createNewContextLevel(), cmlabs::DataMapsMemory::createNewCrank(), cmlabs::DataMapsMemory::createNewRequest(), cmlabs::DataMapsMemory::createNewTag(), cmlabs::DataMapsMemory::createNewTypeLevel(), cmlabs::DataMapsMemory::deleteContextLevel(), cmlabs::DataMapsMemory::deleteContextLevel(), cmlabs::DataMapsMemory::deleteCrank(), cmlabs::DataMapsMemory::deleteCrank(), cmlabs::DataMapsMemory::deleteRequest(), cmlabs::DataMapsMemory::deleteTag(), cmlabs::DataMapsMemory::deleteTag(), cmlabs::DataMapsMemory::deleteTypeLevel(), cmlabs::DataMapsMemory::deleteTypeLevel(), cmlabs::DataMapsMemory::getContextLevelCreateTime(), cmlabs::DataMapsMemory::getContextLevelID(), cmlabs::DataMapsMemory::getContextLevelName(), cmlabs::DataMapsMemory::getCrankCompID(), cmlabs::DataMapsMemory::getCrankCreateTime(), cmlabs::DataMapsMemory::getCrankFunction(), cmlabs::DataMapsMemory::getCrankID(), cmlabs::DataMapsMemory::getCrankLanguage(), cmlabs::DataMapsMemory::getCrankLibraryFilename(), cmlabs::DataMapsMemory::getCrankName(), cmlabs::DataMapsMemory::getCrankScript(), cmlabs::DataMapsMemory::getMemoryUsage(), cmlabs::DataMapsMemory::getRequestCount(), cmlabs::DataMapsMemory::getRequestInfo(), cmlabs::DataMapsMemory::getRequestStatus(), cmlabs::DataMapsMemory::getTagCreateTime(), cmlabs::DataMapsMemory::getTagID(), cmlabs::DataMapsMemory::getTagName(), cmlabs::DataMapsMemory::getTypeLevelCreateTime(), cmlabs::DataMapsMemory::getTypeLevelID(), cmlabs::DataMapsMemory::getTypeLevelName(), cmlabs::DataMapsMemory::lookupContextLevelID(), cmlabs::DataMapsMemory::lookupCrankID(), cmlabs::DataMapsMemory::lookupTagID(), cmlabs::DataMapsMemory::lookupTypeLevelID(), cmlabs::DataMapsMemory::maintenance(), cmlabs::DataMapsMemory::printAllContexts(), cmlabs::DataMapsMemory::printAllTypes(), cmlabs::DataMapsMemory::printFriendlyHTML(), cmlabs::DataMapsMemory::setRequestStatus(), cmlabs::DataMapsMemory::setRequestStatus(), cmlabs::DataMapsMemory::toXML(), cmlabs::DataMapsMemory::waitForRequestReply(), cmlabs::DataMapsMemory::writeContextLevelsToMsg(), cmlabs::DataMapsMemory::writeCranksToMsg(), cmlabs::DataMapsMemory::writeIDsToMsg(), cmlabs::DataMapsMemory::writeTagsToMsg(), and cmlabs::DataMapsMemory::writeTypeLevelsToMsg().
| #define REQ_CREATED 1 |
Definition at line 190 of file DataMapsMemory.h.
Referenced by cmlabs::DataMapsMemory::createNewRequest().
| #define REQ_FAILED 8 |
Definition at line 197 of file DataMapsMemory.h.
Referenced by cmlabs::PsySpace::query(), and cmlabs::PsySpace::queryReply().
| #define REQ_FAILED_DATA 9 |
Definition at line 198 of file DataMapsMemory.h.
| #define REQ_FAILED_DATA_EOL 11 |
Definition at line 200 of file DataMapsMemory.h.
Referenced by cmlabs::PsySpace::queryReply().
| #define REQ_FAILED_NODATA 10 |
Definition at line 199 of file DataMapsMemory.h.
| #define REQ_FAILED_TO_SEND 7 |
Definition at line 196 of file DataMapsMemory.h.
Referenced by cmlabs::PsySpace::query().
| #define REQ_PROCESSING_LOCAL 4 |
Definition at line 193 of file DataMapsMemory.h.
Referenced by cmlabs::PsySpace::query().
| #define REQ_PROCESSING_REMOTE 5 |
Definition at line 194 of file DataMapsMemory.h.
Referenced by cmlabs::PsySpace::query().
| #define REQ_RECEIVED_LOCAL 2 |
Definition at line 191 of file DataMapsMemory.h.
| #define REQ_RECEIVED_REMOTE 3 |
Definition at line 192 of file DataMapsMemory.h.
| #define REQ_REPLY_READY 6 |
Definition at line 195 of file DataMapsMemory.h.
Referenced by cmlabs::DataMapsMemory::waitForRequestReply().
| #define REQ_SUCCESS 12 |
Definition at line 201 of file DataMapsMemory.h.
Referenced by cmlabs::PsySpace::query(), and cmlabs::PsySpace::queryReply().
| #define REQ_SUCCESS_DATA 13 |
Definition at line 202 of file DataMapsMemory.h.
| #define REQ_SUCCESS_DATA_EOL 15 |
Definition at line 204 of file DataMapsMemory.h.
Referenced by cmlabs::PsySpace::queryReply().
| #define REQ_SUCCESS_NODATA 14 |
Definition at line 203 of file DataMapsMemory.h.