Previous Table of Contents Next


13.6.2 Interoperable Object References: IORs


   To provide the information above, an “Interoperable Object Reference,? (IOR) data structure has been provided. This data structure need not be used internally to any given ORB, and is not intended to be visible to application-level ORB programmers. It should be used only when crossing object reference domain boundaries, within bridges.

   This data structure is designed to be efficient in typical single-protocol configurations, while not penalizing multiprotocol ones.

   module IOP { // IDL

   // Standard Protocol Profile tag values

   typedef unsigned long ProfileId;

   struct TaggedProfile { ProfileId tag; sequence <octet> profile_data;

   };typedef sequence <TaggedProfile> TaggedProfileSeq ;

   // an Interoperable Object Reference is a sequence of// object-specific protocol profiles, plus a type ID.

   struct IOR { string type_id; sequence <TaggedProfile> profiles;

   };

   // Standard way of representing multicomponent profiles. // This would be encapsulated in a TaggedProfile.

   typedef unsigned long ComponentId;

   struct TaggedComponent { ComponentId tag; sequence <octet> component_data;

   }; typedef sequence<TaggedComponent> TaggedComponentSeq; };