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§
- Flat
Reader - Liest FlatStruct-Samples direkt aus SHM-Slots.
- Flat
Sample Ref - Reference-Sample, das beim
Dropautomatisch das reader-Bit setzt. Spec §9.2/§9.3. - Flat
Slot - Geliehener Slot. Caller setzt den Sample via
write()und ruft danncommit(). Drop ohne commit verwirft den Loan. - Flat
Writer - Schreibt FlatStruct-Samples direkt in SHM-Slots — ohne CDR-Encode.
- InMemory
Slot Allocator - 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. - Posix
Slot Allocator - 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.
- Slot
Handle - Slot-Identifikation: (segment_id, slot_index).
- Slot
Header - Slot-Header — wird vom Writer beim
commit_slotgesetzt und vom Reader beimread_flatinterpretiert.
Enums§
- Locator
Error - Fehler beim Encode/Decode.
- Posix
Slot Error - Fehler beim Aufbau des POSIX-Segments.
- Slot
Error - Fehler beim Slot-Management.
Constants§
- SLOT_
HEADER_ SIZE - Groesse des Slot-Headers in Bytes.
Traits§
- Flat
Struct - Marker-Trait fuer FlatData-faehige Types.
- Slot
Backend - 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; lieferttruewenn beides uebereinstimmt — d.h. wir koennen mmap auf das Segment.
Type Aliases§
- Reader
Mask - 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.