Expand description
OMG CCM 4.0 — CORBA Component Model.
Crate zerodds-ccm. Safety classification: STANDARD.
Spec formal/06-04-01 (docs/standards/cache/omg/ccm-4.0.pdf).
§Scope
This crate implements the Equivalent-IDL transformation part of
the CCM 4.0 spec from §6 (Component Model). Input is a
zerodds_idl::ast::ComponentDef / HomeDef / EventDef; output is
the spec-conformant interface / valuetype definitions that an
IDL compiler “implicitly defines” per Spec §6.3.2 / §6.4.1 /
§6.5.1 / §6.6.x / §6.7.1.
Plus models of the Components::* core types (CCMObject, Cookie,
ConnectionDescription, Navigation/Receptacles/Events interfaces) as
Rust structs / enums, so callers can reference them directly.
Plus Lightweight CCM Profile (§13) — a filter function that reduces the Equivalent-IDL output to the LwCCM subset.
§What’s not covered
The following spec chapters require a CORBA-ORB + CCM-
container and are deliberately n/a in ZeroDDS (rationale in the
audit file docs/spec-coverage/omg-ccm-4.0.md):
- §7 CIDL Syntax + Semantics — Component Implementation Definition Language; targets §8 CIF.
- §8 CCM Implementation Framework — servant/skeleton generator, requires POA + ORB.
- §9 Container Programming Model — server programming environment, requires CORBA-ORB.
- §10 Integrating with Enterprise JavaBeans — requires an EJB container.
- §11 Interface Repository Metamodel — requires CORBA-IFR.
- §12 CIF Metamodel — Implementation-Framework MOF model.
- §14 Deployment PSM for CCM — D&C subsystem (formal/2006-04-02).
- §15 Deployment IDL — part of §14.
- §16 XML Schema for CCM — XSD schema of the deployment subsystem.
§Example
use zerodds_ccm::Cookie;
let c = Cookie::new(vec![0x01, 0x02, 0x03]);
assert_eq!(c.cookie_value, vec![0x01, 0x02, 0x03]);
// Spec §6.5.2.4: Truncation auf Base behaelt cookieValue.
assert_eq!(c.truncate_to_base().cookie_value, c.cookie_value);Re-exports§
pub use lightweight::LightweightFilterError;pub use lightweight::filter_to_lightweight;pub use model::Cookie;pub use model::FailureReason;pub use model::FeatureName;pub use model::RepositoryId;pub use transform::ComponentEquivalent;pub use transform::EventTypeEquivalent;pub use transform::HomeEquivalent;pub use transform::scoped_name;pub use transform::transform_component;pub use transform::transform_event_type;pub use transform::transform_home;pub use validate::InitOp;pub use validate::PrimaryKeyError;pub use validate::apply_factory_finder_body;pub use validate::validate_primary_key;
Modules§
- dds4ccm
- DDS for Lightweight CCM 1.1 — connector stub layer.
- lightweight
- Lightweight CCM Profile — Spec §13.
- model
Components::*core-types model — Spec §6.4-§6.7 + §6.10.- transform
- Equivalent-IDL transformation — Spec §6.3.2 / §6.4.1 / §6.5.1 / §6.6.x / §6.7.1.
- validate
- CCM 4.0 §6.7.2 PrimaryKey + §6.7.3 factory/finder body validator.