Skip to main content

Crate zerodds_corba_cos_event

Crate zerodds_corba_cos_event 

Source
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/supplier operations.
  • 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)

§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;

Modules§

channel
CosEventChannelAdmin — spec §1.6.
comm
CosEventComm — spec §1.5.
typed
CosTypedEventComm + CosTypedEventChannelAdmin — spec §2.