Skip to main content

Crate zerodds_corba_giop

Crate zerodds_corba_giop 

Source
Expand description

OMG CORBA 3.3 Part 2 §15 — General Inter-ORB Protocol (GIOP).

Crate zerodds-corba-giop. Safety classification: STANDARD. Spec OMG CORBA 3.3 Part 2 §15 (docs/standards/cache/omg/corba-3.3-part2.pdf, imported during the Sprint-1 setup phase).

§Scope

Full GIOP wire codec — all 8 message types for GIOP 1.0, 1.1 and 1.2 (including bidirectional GIOP). Reuses CDR-1 from crates/cdr/.

Implemented message types (spec §15.4.1-15.4.9):

  • Request (spec §15.4.2) — client→server method invocation.
  • Reply (spec §15.4.3) — server→client response including all 6 reply statuses (NO_EXCEPTION/USER_EXCEPTION/SYSTEM_EXCEPTION/ LOCATION_FORWARD/LOCATION_FORWARD_PERM/NEEDS_ADDRESSING_MODE).
  • CancelRequest (spec §15.4.4) — client cancels a pending request.
  • LocateRequest (spec §15.4.5) — client probes an object’s location.
  • LocateReply (spec §15.4.6) — server answers a LocateRequest.
  • CloseConnection (spec §15.4.7) — server closes the connection.
  • MessageError (spec §15.4.8) — wire-format error indication.
  • Fragment (spec §15.4.9) — multi-frame message body.

GIOP versions:

  • 1.0 — initial format. Request/Reply header includes requesting_principal. No fragment support, no bidirectional GIOP.
  • 1.1byte_order becomes a flags octet (bit 0 = byte_order, bit 1 = fragment). Fragment for Request+Reply. The request header gains a 3-byte reserved field.
  • 1.2 — Request/Reply header reorganized: request_id first, service_context last. The TargetAddress union replaces the object_key. Body 8-byte aligned. Fragment for all message types. Bidirectional GIOP via BiDirIIOPServiceContext.

§What is not here

  • Transport — TCP/UDS delivery in crates/corba-iiop/.
  • IOR format — object-reference marshalling in crates/corba-ior/.
  • POA — servant dispatch in crates/corba-poa/.
  • Codeset conversioncrates/cdr/ handles UTF-8/UTF-16 natively; ISO-Latin conversion is a caller-layer concern (rare in modern CORBA deployments).

§Example

use zerodds_corba_giop::{MAGIC_BYTES, Version};
assert_eq!(MAGIC_BYTES, *b"GIOP");
let v = Version { major: 1, minor: 2 };
assert_eq!(v.major, 1);

Re-exports§

pub use cancel_request::CancelRequest;
pub use close_connection::CloseConnection;
pub use code_set::CodeSetContext;
pub use code_set::well_known as code_set_ids;
pub use codec::Message;
pub use codec::decode_message;
pub use codec::decode_message_ctx;
pub use codec::encode_message;
pub use error::GiopError;
pub use error::GiopResult;
pub use flags::Flags;
pub use fragment::Fragment;
pub use fragment::FragmentHeader;
pub use header::MAGIC;
pub use header::MAGIC_BYTES;
pub use header::MessageHeader;
pub use locate_reply::LocateReply;
pub use locate_reply::LocateStatusType;
pub use locate_request::LocateRequest;
pub use message_error::MessageError;
pub use message_type::MessageType;
pub use reply::Reply;
pub use reply::ReplyStatusType;
pub use request::Request;
pub use request::ResponseFlags;
pub use service_context::ServiceContext;
pub use service_context::ServiceContextList;
pub use service_context::ServiceContextTag;
pub use target_address::ObjectKey;
pub use target_address::TargetAddress;
pub use version::Version;

Modules§

cancel_request
CancelRequest message — spec §15.4.4.
close_connection
CloseConnection message — spec §15.4.7.
code_set
CONV_FRAME::CodeSetContext — Codeset-Negotiation-ServiceContext (§13.10.2.5).
codec
Top-level GIOP message codec — dispatches to all 8 message types.
error
GIOP wire codec errors.
flags
GIOP flags octet — spec §15.4.1.
fragment
Fragment message — spec §15.4.9.
header
GIOP message header — 12 bytes, spec §15.4.1.
locate_reply
LocateReply message — spec §15.4.6.
locate_request
LocateRequest-Message — Spec §15.4.5.
message_error
MessageError-Message — Spec §15.4.8.
message_type
GIOP Message-Type Enum — Spec §15.4.1 Table 15-1.
reply
Reply-Message — Spec §15.4.3.
request
Request-Message — Spec §15.4.2.
service_context
IOP::ServiceContext + ServiceContextList — Spec §15.3.1.
target_address
TargetAddress (GIOP 1.2+) — Spec §15.4.2.2 / §15.4.5.
version
GIOP Version (Spec §15.4.1).