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, eingepflegt in Sprint-1-Setup-Phase).

§Scope

Voller GIOP-Wire-Codec — alle 8 Message-Types fuer GIOP 1.0, 1.1 und 1.2 (inkl. Bidirectional-GIOP). Reuse CDR-1 aus crates/cdr/.

Implementierte 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 inkl. aller 6 Reply-Statuses (NO_EXCEPTION/USER_EXCEPTION/SYSTEM_EXCEPTION/ LOCATION_FORWARD/LOCATION_FORWARD_PERM/NEEDS_ADDRESSING_MODE).
  • CancelRequest (Spec §15.4.4) — Client cancelt pending Request.
  • LocateRequest (Spec §15.4.5) — Client probt Object-Location.
  • LocateReply (Spec §15.4.6) — Server antwortet auf LocateRequest.
  • CloseConnection (Spec §15.4.7) — Server schliesst Connection.
  • MessageError (Spec §15.4.8) — Wire-Format-Fehler-Indication.
  • Fragment (Spec §15.4.9) — Multi-Frame-Message-Body.

GIOP-Versionen:

  • 1.0 — Initial-Format. Request/Reply-Header inkl. requesting_principal. Kein Fragment-Support, kein Bidirectional-GIOP.
  • 1.1byte_order wird zu flags-Octet (Bit 0 = byte_order, Bit 1 = fragment). Fragment fuer Request+Reply. Request-Header bekommt 3-Byte-reserved-Feld.
  • 1.2 — Request/Reply-Header neu organisiert: request_id zuerst, service_context zuletzt. TargetAddress-Union ersetzt den object_key. Body 8-Byte-aligned. Fragment fuer alle Message-Types. Bidirectional-GIOP via BiDirIIOPServiceContext.

§Was nicht hier ist

  • Transport — TCP/UDS-Lieferung in crates/corba-iiop/.
  • IOR-Format — Object-Reference-Marshalling in crates/corba-ior/.
  • POA — Servant-Dispatch in crates/corba-poa/.
  • Codeset-Konversioncrates/cdr/ macht UTF-8/UTF-16 nativ; ISO-Latin-Konversion ist Caller-Layer (selten in modernen CORBA-Deployments).

§Beispiel

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 codec::Message;
pub use codec::decode_message;
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.
codec
Top-Level GIOP-Message-Codec — dispatcht auf alle 8 Message-Types.
error
GIOP Wire-Codec-Fehler.
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).