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.1—byte_orderwird zuflags-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_idzuerst,service_contextzuletzt.TargetAddress-Union ersetzt denobject_key. Body 8-Byte-aligned. Fragment fuer alle Message-Types. Bidirectional-GIOP viaBiDirIIOPServiceContext.
§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-Konversion —
crates/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).