ORE Studio 0.0.4
Loading...
Searching...
No Matches
Public Attributes | Static Public Attributes | List of all members
frame_header Struct Referencefinal

Frame header structure for the ORES protocol. More...

#include <frame.hpp>

Collaboration diagram for frame_header:
Collaboration graph

Public Attributes

std::uint32_t magic
 
std::uint16_t version_major
 
std::uint16_t version_minor
 
message_type type
 
compression_type compression
 
std::uint8_t compression_flags
 
std::uint32_t payload_size
 
std::uint32_t sequence
 
std::uint32_t crc
 
std::uint32_t correlation_id
 
std::array< std::uint8_t, 4 > reserved2
 

Static Public Attributes

static constexpr size_t size = 32
 

Detailed Description

Frame header structure for the ORES protocol.

Frame layout (32 bytes header): +0: magic (4 bytes) - Protocol identifier (0x4F524553 = "ORES") +4: version_major (2 bytes) - Protocol major version +6: version_minor (2 bytes) - Protocol minor version +8: type (2 bytes) - Message type +10: compression (1 byte) - Compression algorithm (compression_type enum) +11: compression_flags (1 byte) - Reserved compression flags (must be 0) +12: payload_size (4 bytes) - Size of payload in bytes (compressed size if compressed) +16: sequence (4 bytes) - Sequence number for ordering +20: crc (4 bytes) - CRC32 checksum of header + compressed payload +24: correlation_id (4 bytes) - Matches requests to responses +28: reserved2 (4 bytes) - Reserved for future use +32: payload (N bytes) - Message payload (compressed if compression != none)

When compression is enabled (compression != none):