Expand description
Crate zerodds-corba-cos-event. Safety classification: STANDARD.
OMG CosEventService 1.4 (formal/2004-10-02) full stack —
pure Rust no_std + alloc, forbid(unsafe_code). Implements:
- CosEventComm (spec §1.5): PushConsumer, PushSupplier, PullConsumer, PullSupplier with disconnect operations.
- CosEventChannelAdmin (spec §1.6): EventChannel, ConsumerAdmin, SupplierAdmin, ProxyPushConsumer/Supplier, ProxyPullConsumer/Supplier.
- CosTypedEventComm + CosTypedEventChannelAdmin (spec §2):
TypedPushConsumer/Supplier with
get_typed_consumer/supplieroperations. - AnyEvent: opaque event container for the push mode.
Spec: OMG CosEventService 1.4 (formal/2004-10-02) §1.5 + §1.6 + §2.
§Layer position
Layer 8 — CORBA stack (Tier-A). The caller layer (a daemon or similar) constructs concrete channel instances, registers suppliers and consumers, and drives the connect/disconnect lifecycle.
§Public API (as of 1.0.0-rc.1)
AnyEvent/Disconnected/ConnectError— event body and spec §1.5 errors.PushConsumer/PushSupplier/PullConsumer/PullSupplier— spec §1.5 trait surfaces.EventChannel/ConsumerAdmin/SupplierAdmin/ProxyPushConsumer/ProxyPushSupplier/ProxyPullConsumer/ProxyPullSupplier— Spec §1.6.TypedEventChannel/TypedPushConsumer/TypedPushSupplier— Spec §2.
§Example
use zerodds_corba_cos_event::{AnyEvent, EventChannel};
let _channel = EventChannel::new();
let event = AnyEvent::new("IDL:Foo:1.0".to_string(), vec![1, 2, 3]);
assert_eq!(event.type_id, "IDL:Foo:1.0");
assert_eq!(event.data, vec![1, 2, 3]);Re-exports§
pub use channel::ConsumerAdmin;pub use channel::EventChannel;pub use channel::ProxyPullConsumer;pub use channel::ProxyPullSupplier;pub use channel::ProxyPushConsumer;pub use channel::ProxyPushSupplier;pub use channel::SupplierAdmin;pub use comm::AnyEvent;pub use comm::ConnectError;pub use comm::Disconnected;pub use comm::PullConsumer;pub use comm::PullSupplier;pub use comm::PushConsumer;pub use comm::PushSupplier;pub use typed::TypedEventChannel;pub use typed::TypedPushConsumer;pub use typed::TypedPushSupplier;