ludus::foundation::diagnostics¶
Ludus Wiki · API overview · Browse API
Namespace
Declared in modules/foundation/base/include/ludus/foundation/base/assert.hpp
Related declarations¶
- ludus::foundation::diagnostics::AssertionSite
- ludus::foundation::diagnostics::ControlHeader
- ludus::foundation::diagnostics::DiagnosticAddressValue
- ludus::foundation::diagnostics::DiagnosticCStringValue
- ludus::foundation::diagnostics::DiagnosticText
Enumerations¶
FailureKind¶
enum class FailureKind : uint8
Related types: uint8
Assert¶
Assert
Require¶
Require
Check¶
Check
Fatal¶
Fatal
Declared in modules/foundation/base/include/ludus/foundation/base/assert.hpp
DeliveryStatus¶
enum class DeliveryStatus : uint8
Related types: uint8
Unavailable¶
Unavailable
Delivered¶
Delivered
Failed¶
Failed
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
ControlMessageType¶
enum class ControlMessageType : uint8
kind as a fixed 2-byte little-endian field via the header helpers, independent of this. Related types: uint8
Hello¶
Hello = 1
HelloAck¶
HelloAck = 2
DecisionRequest¶
DecisionRequest = 3
DecisionReply¶
DecisionReply = 4
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
ControlDecision¶
enum class ControlDecision : uint8
Related types: uint8
Terminate¶
Terminate = 0
ContinueOnce¶
ContinueOnce = 1
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
ControlState¶
enum class ControlState : uint8
Related types: uint8
Unconfigured¶
Unconfigured
Failed¶
Failed
Ready¶
Ready
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
Constants and variables¶
CONTROL_PROTOCOL_MAGIC¶
constexpr uint32 ludus::foundation::diagnostics::CONTROL_PROTOCOL_MAGIC = 0x4C554443u
Length payload bytes: offset 0 uint32 magic CONTROL_PROTOCOL_MAGIC
offset 4 uint16 version CONTROL_PROTOCOL_VERSION
offset 6 uint16 kind ControlMessageType
offset 8 uint32 incidentId 0 for Hello/HelloAck; the active
incident for Decision*
offset 12 uint32 length payload byte count that follows
offset 16 uint8[length] payload (e.g. bounded owned report bytes
for a decision request; empty otherwise)
Related types: uint32
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
CONTROL_PROTOCOL_VERSION¶
constexpr uint16 ludus::foundation::diagnostics::CONTROL_PROTOCOL_VERSION = 1u
Related types: uint16
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
CONTROL_HEADER_SIZE¶
constexpr usize ludus::foundation::diagnostics::CONTROL_HEADER_SIZE = 16u
Related types: usize
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
CONTROL_MAX_PAYLOAD¶
constexpr usize ludus::foundation::diagnostics::CONTROL_MAX_PAYLOAD = 2048u
Related types: usize
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
Functions¶
DiagnosticAddress¶
constexpr DiagnosticAddressValue ludus::foundation::diagnostics::DiagnosticAddress(const void *value) noexcept
Related types: DiagnosticAddressValue
Declared in modules/foundation/base/include/ludus/foundation/base/assert_format.hpp
DiagnosticCString¶
constexpr DiagnosticCStringValue ludus::foundation::diagnostics::DiagnosticCString(const char *value) noexcept
Related types: DiagnosticCStringValue
Declared in modules/foundation/base/include/ludus/foundation/base/assert_format.hpp
ConfigureEmergencySocket¶
bool ludus::foundation::diagnostics::ConfigureEmergencySocket(int descriptor) noexcept
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
TryWriteEmergencyBytes¶
DeliveryStatus ludus::foundation::diagnostics::TryWriteEmergencyBytes(const char *data, usize size) noexcept
Related types: usize · DeliveryStatus
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
WriteEmergencyBytes¶
bool ludus::foundation::diagnostics::WriteEmergencyBytes(const char *data, usize size) noexcept
Related types: usize
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
EncodeControlHeader¶
usize ludus::foundation::diagnostics::EncodeControlHeader(char *buffer, usize capacity, ControlMessageType kind, uint32 incidentId, uint32 length) noexcept
buffer (>= CONTROL_HEADER_SIZE) using the explicit little-endian layout above. Returns the header size, or 0 if the buffer is too small or the payload length exceeds CONTROL_MAX_PAYLOAD. No allocation; safe from any context. Related types: usize · uint32 · ControlMessageType
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
DecodeControlHeader¶
bool ludus::foundation::diagnostics::DecodeControlHeader(const char *buffer, usize size, ControlHeader &header) noexcept
buffer/size. Rejects a short buffer, wrong magic/version, an unknown kind, or a payload length that would exceed the frame; returns false and leaves header unchanged. Related types: usize · ControlHeader
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
ConfigureControlEndpoint¶
ControlState ludus::foundation::diagnostics::ConfigureControlEndpoint(int descriptor) noexcept
Related types: ControlState
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
ControlEndpointState¶
ControlState ludus::foundation::diagnostics::ControlEndpointState() noexcept
Related types: ControlState
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
RequestAssertDecision¶
ControlDecision ludus::foundation::diagnostics::RequestAssertDecision(uint32 incidentId, const char *report, usize size) noexcept
incidentId, and whose one-byte payload is ContinueOnce. Anything else — endpoint not Ready, a send/recv error, a closed helper, a wrong/duplicate/stale incident id, an unknown kind, a bad length, or a payload that is not exactly ContinueOnce — returns Terminate. Only an eligible caller (non-CI Debug with a completed handshake) should call this; it never itself decides eligibility. No allocation; not signal-safe. Related types: usize · uint32 · ControlDecision
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp
IsContinuousIntegration¶
bool ludus::foundation::diagnostics::IsContinuousIntegration() noexcept
Declared in modules/foundation/base/include/ludus/foundation/base/diagnostic_output.hpp