CMSDK 2.0.1
Cross-platform C++ base library and SDK for the Psyclone AIOS platform
Loading...
Searching...
No Matches
cmlabs::MemoryRequestQueues Class Reference

Static helpers for request queues and the request-status map (raw shared memory). More...

#include <MemoryRequestQueues.h>

Static Public Member Functions

static bool InitQueue (char *data, uint32 size)
 Initialise a queue region of size bytes.
static bool CheckQueue (char *data, uint32 size)
 Validate an existing queue region.
static bool AddToQueue (char *data, DataMessage *msg)
 Append a copy of msg (caller keeps ownership).
static DataMessageGetNextQueueMessage (char *data)
 Pop the next message.
static bool InitRequestMap (char *data, uint32 count)
 Initialise a status map for count requests.
static bool CheckRequestMap (char *data, uint32 count)
 Validate an existing status map.
static uint64 AddNewRequest (char *data, uint16 status, uint32 from, uint32 to)
 Allocate a request slot.
static bool SetRequestStatus (char *data, uint64 id, uint16 status)
 Advance a request's MEMORYREQUEST_* status.
static uint32 GetRequestStatus (char *data, uint64 id, uint64 &createdTime, uint64 &lastUpdateTime)
static bool CloseRequest (char *data, uint64 id)
 Release the request slot.

Detailed Description

Static helpers for request queues and the request-status map (raw shared memory).

Init* lays out a fresh region, Check* validates an existing one; queue functions copy DataMessages in/out (returned messages are caller-owned heap copies). Callers must provide external synchronisation (the request server/connection mutexes).

Definition at line 82 of file MemoryRequestQueues.h.

Member Function Documentation

◆ AddNewRequest()

◆ AddToQueue()

◆ CheckQueue()

bool cmlabs::MemoryRequestQueues::CheckQueue ( char * data,
uint32 size )
static

Validate an existing queue region.

Returns
true if consistent.

Definition at line 18 of file MemoryRequestQueues.cpp.

Referenced by cmlabs::MemoryRequestConnection::makeRequest(), and cmlabs::MemoryRequestConnection::replyToRequest().

◆ CheckRequestMap()

bool cmlabs::MemoryRequestQueues::CheckRequestMap ( char * data,
uint32 count )
static

Validate an existing status map.

Returns
true if consistent.

Definition at line 128 of file MemoryRequestQueues.cpp.

Referenced by cmlabs::MemoryRequestConnection::connect().

◆ CloseRequest()

bool cmlabs::MemoryRequestQueues::CloseRequest ( char * data,
uint64 id )
static

◆ GetNextQueueMessage()

DataMessage * cmlabs::MemoryRequestQueues::GetNextQueueMessage ( char * data)
static

◆ GetRequestStatus()

uint32 cmlabs::MemoryRequestQueues::GetRequestStatus ( char * data,
uint64 id,
uint64 & createdTime,
uint64 & lastUpdateTime )
static
Returns
Status plus timestamps via out-params.

Definition at line 171 of file MemoryRequestQueues.cpp.

References cmlabs::RequestStatusEntry::status.

Referenced by cmlabs::MemoryRequestConnection::getRequestStatus(), and cmlabs::MemoryRequestConnection::replyToRequest().

◆ InitQueue()

bool cmlabs::MemoryRequestQueues::InitQueue ( char * data,
uint32 size )
static

Initialise a queue region of size bytes.

Returns
true on success.

Definition at line 9 of file MemoryRequestQueues.cpp.

References cmlabs::RequestQueueHeader::createdTime, cmlabs::GetTimeNow(), cmlabs::RequestQueueHeader::lastUpdateTime, and cmlabs::RequestQueueHeader::size.

Referenced by cmlabs::MemoryRequestConnection::connect().

◆ InitRequestMap()

bool cmlabs::MemoryRequestQueues::InitRequestMap ( char * data,
uint32 count )
static

◆ SetRequestStatus()

bool cmlabs::MemoryRequestQueues::SetRequestStatus ( char * data,
uint64 id,
uint16 status )
static

The documentation for this class was generated from the following files: