zerodds-corba-cos-notify

CORBA stack. OMG CosNotification 1.1 (formal/2004-10-11), the structured-event notification service that succeeds CosEvent.

zerodds-corba-cos-notify models the notification service in memory, analogous to zerodds-corba-cos-event but for StructuredEvent with CORBA any values from zerodds-corba-rt. A supplier pushes an event into a StructuredProxyPushConsumer; the EventChannel delivers it to every connected StructuredProxyPushSupplier whose filter matches and appends it to a queue from which StructuredProxyPullSuppliers take matching events. The admin property MaxQueueLength bounds that queue (0 = unbounded; when the bound is exceeded, the oldest event is dropped). Filters match on EventType with "*" as wildcard; the TCL string of a ConstraintExp is stored but not evaluated. pull_structured_event does not block in this model and returns Disconnected when no matching event is queued. Wiring over GIOP is left to the interop layer.

  • event — StructuredEvent, EventHeader, FixedEventHeader, EventType, Property.
  • comm — structured push/pull consumer and supplier traits, NotifyPublish, NotifySubscribe.
  • channel (std) — EventChannelFactory, EventChannel, ConsumerAdmin, SupplierAdmin and the structured proxies.
  • filter (std) — Filter, ConstraintExp, FilterFactory.
  • qos — QoSProperties, a sequence of Property entries, with the property names of §2.5.2 and §2.5.3.

Spec anchors

  • OMG CosNotification 1.1 §2.2 (structured event), §2.4 (set_qos/get_qos), §2.5.2 (QoS properties), §2.5.3 (admin properties), §3.1–§3.5 (CosNotifyComm), §4.1, §4.3–§4.7, §4.9 (CosNotifyChannelAdmin), §5.2–§5.4 (CosNotifyFilter).

Consumers

  • zerodds-corba-interop (not published; cross-ORB test harness). Its test tests/codegen_roundtrip.rs connects the channel to the GIOP/IIOP runtime.

Features

  • std (default) — enables alloc and zerodds-corba-rt/std; compiles the channel and filter modules, which keep their state behind std::sync::Mutex.
  • alloc — enables zerodds-corba-rt/alloc. event, comm and qos need only alloc.

Status

  • #![no_std] with alloc; channel and filter require std.
  • forbid(unsafe_code).
  • Library only, no binaries. One dependency: zerodds-corba-rt.
  • 11 test functions in the source (src/).

zerodds-corba-cos-notify

CORBA-Stack. OMG CosNotification 1.1 (formal/2004-10-11), der Benachrichtigungsdienst für strukturierte Ereignisse und Nachfolger von CosEvent.

zerodds-corba-cos-notify bildet den Benachrichtigungsdienst im Speicher ab, analog zu zerodds-corba-cos-event, aber für StructuredEvent mit CORBA-any-Werten aus zerodds-corba-rt. Ein Supplier übergibt ein Ereignis an einen StructuredProxyPushConsumer; der EventChannel stellt es jedem verbundenen StructuredProxyPushSupplier zu, dessen Filter passt, und hängt es an eine Warteschlange an, aus der StructuredProxyPullSupplier passende Ereignisse entnehmen. Die Verwaltungseigenschaft MaxQueueLength begrenzt diese Warteschlange (0 = unbegrenzt; bei Überschreitung wird das älteste Ereignis verworfen). Filter vergleichen den EventType, "*" ist Platzhalter; der TCL-Ausdruck eines ConstraintExp wird gespeichert, aber nicht ausgewertet. pull_structured_event blockiert in diesem Modell nicht und liefert Disconnected, wenn kein passendes Ereignis in der Warteschlange liegt. Die Anbindung über GIOP übernimmt die Interoperabilitätsschicht.

  • event — StructuredEvent, EventHeader, FixedEventHeader, EventType, Property.
  • comm — Traits für strukturierte Consumer und Supplier (Push und Pull), NotifyPublish, NotifySubscribe.
  • channel (std) — EventChannelFactory, EventChannel, ConsumerAdmin, SupplierAdmin und die strukturierten Proxies.
  • filter (std) — Filter, ConstraintExp, FilterFactory.
  • qos — QoSProperties, eine Folge von Property-Einträgen, mit den Eigenschaftsnamen aus §2.5.2 und §2.5.3.

Spec-Anker

  • OMG CosNotification 1.1 §2.2 (strukturiertes Ereignis), §2.4 (set_qos/get_qos), §2.5.2 (QoS-Eigenschaften), §2.5.3 (Verwaltungseigenschaften), §3.1–§3.5 (CosNotifyComm), §4.1, §4.3–§4.7, §4.9 (CosNotifyChannelAdmin), §5.2–§5.4 (CosNotifyFilter).

Konsumenten

  • zerodds-corba-interop (nicht veröffentlicht; Testumgebung für ORB-übergreifende Interoperabilität). Dessen Test tests/codegen_roundtrip.rs verbindet den Kanal mit der Laufzeitumgebung für GIOP/IIOP.

Features

  • std (Standard) — aktiviert alloc und zerodds-corba-rt/std; kompiliert die Module channel und filter, die ihren Zustand hinter std::sync::Mutex halten.
  • alloc — aktiviert zerodds-corba-rt/alloc. event, comm und qos benötigen nur alloc.

Status

  • #![no_std] mit alloc; channel und filter setzen std voraus.
  • forbid(unsafe_code).
  • Nur Bibliothek, keine Binaries. Eine Abhängigkeit: zerodds-corba-rt.
  • 11 Testfunktionen im Quelltext (src/).