zerodds_corba_cos_notify/lib.rs
1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2026 ZeroDDS Contributors
3
4//! Crate `zerodds-corba-cos-notify`. Safety classification: **STANDARD**.
5//!
6//! OMG **CosNotification 1.1** (formal/2004-10-11) — the structured-event
7//! notification service, successor to CosEvent.
8//!
9//! In-memory model (analogous to [`zerodds_corba_cos_event`], but for
10//! `StructuredEvent` with an `any` payload):
11//!
12//! - [`event`] §2.2 — `StructuredEvent` / `EventType` / `Property`.
13//! - [`comm`] §3 — structured push/pull consumer/supplier traits + publish/subscribe.
14//! - [`channel`] §4 — `EventChannelFactory` / `EventChannel` / `ConsumerAdmin` /
15//! `SupplierAdmin` / structured-proxy hierarchy (push fanout + pull queue).
16//! - [`filter`] §5 — `Filter` / `ConstraintExp` / `FilterFactory` (event-type match).
17//! - [`qos`] §2.5 — QoS/admin property bag.
18//!
19//! Pure Rust, `forbid(unsafe_code)`. Live wiring over GIOP (analogous to the
20//! CosEvent EventBus e2e) is the job of the interop layer.
21
22#![no_std]
23#![forbid(unsafe_code)]
24#![cfg_attr(docsrs, feature(doc_cfg))]
25
26extern crate alloc;
27#[cfg(feature = "std")]
28extern crate std;
29
30pub mod channel;
31pub mod comm;
32pub mod event;
33pub mod filter;
34pub mod qos;
35
36pub use channel::{
37 ConsumerAdmin, EventChannel, EventChannelFactory, StructuredProxyPullSupplier,
38 StructuredProxyPushConsumer, StructuredProxyPushSupplier, SupplierAdmin,
39};
40pub use comm::{
41 ConnectError, Disconnected, NotifyPublish, NotifySubscribe, StructuredPullConsumer,
42 StructuredPullSupplier, StructuredPushConsumer, StructuredPushSupplier,
43};
44pub use event::{EventHeader, EventType, FixedEventHeader, Property, PropertySeq, StructuredEvent};
45pub use filter::{ConstraintExp, Filter, FilterFactory, InstalledConstraint};
46pub use qos::QoSProperties;