Skip to main content

Crate zerodds_flatdata

Crate zerodds_flatdata 

Source
Expand description

FlatStruct-Trait + Slot-Header fuer Zero-Copy Same-Host-Pub/Sub.

Crate zerodds-flatdata. Safety classification: STANDARD.

Spec: docs/specs/zerodds-flatdata-1.0.md.

§Sicherheits-Begruendung

Dieser Crate implementiert eine unsafe trait FlatStruct, dessen Garantien (Copy + repr(C) + ’static + keine Pointer/Vec/String) der Implementer per unsafe impl zusichert. Die as_bytes / from_bytes_unchecked-Helpers sind dann sicher per Layout — wir lokalisieren das unsafe-Island hier statt es in den DataWriter- Pfad zu streuen.

Structs§

FlatReader
Liest FlatStruct-Samples direkt aus SHM-Slots.
FlatSampleRef
Reference-Sample, das beim Drop automatisch das reader-Bit setzt. Spec §9.2/§9.3.
FlatSlot
Geliehener Slot. Caller setzt den Sample via write() und ruft dann commit(). Drop ohne commit verwirft den Loan.
FlatWriter
Schreibt FlatStruct-Samples direkt in SHM-Slots — ohne CDR-Encode.
InMemorySlotAllocator
In-Memory-Slot-Allocator. Vermittelt das gleiche SlotBackend-Interface wie der POSIX-mmap-Backend (posix.rs), aber liegt im Process-Heap — Single-Process-Pub/Sub und Test-Setups ohne mmap-Dep.
PosixSlotAllocator
POSIX-mmap Slot-Allocator. Ein Owner-Process erzeugt das Segment; Consumer-Processes attachen via attach.
ShmLocator
SHM-Locator: alle Daten die ein Same-Host-Reader braucht um zu einem Writer-SHM-Segment zu attachen.
SlotHandle
Slot-Identifikation: (segment_id, slot_index).
SlotHeader
Slot-Header — wird vom Writer beim commit_slot gesetzt und vom Reader beim read_flat interpretiert.

Enums§

LocatorError
Fehler beim Encode/Decode.
PosixSlotError
Fehler beim Aufbau des POSIX-Segments.
SlotError
Fehler beim Slot-Management.

Constants§

SLOT_HEADER_SIZE
Groesse des Slot-Headers in Bytes.

Traits§

FlatStruct
Marker-Trait fuer FlatData-faehige Types.
SlotBackend
Backend-Trait fuer SHM-Slot-Allocator.

Functions§

fnv1a_32
FNV-1a Hash des Hostnamens (32-bit). Wird vom Writer beim Discovery gesetzt; Reader prueft gegen den eigenen.
is_same_host
Same-Host-Match-Helper. Caller passes (lokaler hostname, lokaler uid) und einen empfangenen ShmLocator; liefert true wenn beides uebereinstimmt — d.h. wir koennen mmap auf das Segment.

Type Aliases§

ReaderMask
Bitmap (32 bit) — pro Reader-Slot ein Bit. Bit gesetzt = Reader hat gelesen. Slot wird wieder reservierbar wenn alle aktiven Reader-Bits gesetzt sind, oder Timeout abgelaufen.