Skip to content

EntropyEngine::Networking::SharedMemory::DiscoveryControlBlock

EntropyEngine::Networking::SharedMemory::DiscoveryControlBlock

Section titled “EntropyEngine::Networking::SharedMemory::DiscoveryControlBlock”

Control block for the discovery/handshake region. More…

#include <SharedMemoryPlatform.h>

Name
boolvalidate() const
Validate discovery block.
voidinitializeServer()
Initialize discovery block for server.
Name
uint32_tversion
Must be SHM_VERSION.
std::atomic< uint32_t >serverResponded
Server has assigned a region.
std::atomic< uint32_t >serverListening
Server is ready for connections.
uint32_treserved
Reserved for alignment.
uint32_tmagic
Must be SHM_MAGIC.
std::atomic< uint32_t >connectionCounter
Monotonic counter for region names.
std::atomic< uint32_t >clientWaiting
Client is waiting for assignment.
std::atomic< uint32_t >clientAcknowledged
Client has opened assigned region.
uint64_tassignedToken
Validation token for assigned region.
char[MAX_REGION_NAME_LENGTH]assignedRegionName
Assigned region name (written by server after clientWaiting=1).
struct EntropyEngine::Networking::SharedMemory::DiscoveryControlBlock;

Control block for the discovery/handshake region.

Server creates a discovery region that clients use to initiate connections. The handshake flow:

  1. Server creates discovery region with baseName_discovery
  2. Client opens discovery region, sets clientWaiting=1
  3. Server detects waiting client, creates per-connection region
  4. Server writes region name to assignedRegionName, sets serverResponded=1
  5. Client reads assignedRegionName, opens that region
  6. Client sets clientAcknowledged=1, both proceed with ring buffer protocol
inline bool validate() const

Validate discovery block.

Return: true if magic and version are valid

inline void initializeServer()

Initialize discovery block for server.

uint32_t version;

Must be SHM_VERSION.

std::atomic< uint32_t > serverResponded;

Server has assigned a region.

std::atomic< uint32_t > serverListening;

Server is ready for connections.

uint32_t reserved;

Reserved for alignment.

uint32_t magic;

Must be SHM_MAGIC.

std::atomic< uint32_t > connectionCounter;

Monotonic counter for region names.

std::atomic< uint32_t > clientWaiting;

Client is waiting for assignment.

std::atomic< uint32_t > clientAcknowledged;

Client has opened assigned region.

uint64_t assignedToken;

Validation token for assigned region.

char[MAX_REGION_NAME_LENGTH] assignedRegionName;

Assigned region name (written by server after clientWaiting=1).


Updated on 2026-01-26 at 17:14:35 -0500