// File: IOP.idl // From CORBA 3.0: Chapter 13, ORB Interoperability Achitecture #ifndef _IOP_IDL_ #define _IOP_IDL_ #ifdef _PRE_3_0_COMPILER_ #pragma prefix "omg.org" #include #else import ::CORBA; #endif // _PRE_3_0_COMPILER_ module IOP { #ifndef _PRE_3_0_COMPILER_ typeprefix IOP "omg.org"; #endif // _PRE_3_0_COMPILER_ // IOR Profiles // Standard Protocol Profile tag values typedef unsigned long ProfileId; const ProfileId TAG_INTERNET_IOP = 0; const ProfileId TAG_MULTIPLE_COMPONENTS = 1; const ProfileId TAG_SCCP_IOP = 2; typedef CORBA::OctetSeq ProfileData; struct TaggedProfile { ProfileId tag; ProfileData profile_data; }; typedef sequence TaggedProfileSeq; // The IOR // an Interoperable Object Reference is a sequence of // object-specific protocol profiles, plus a type ID. struct IOR { string type_id; TaggedProfileSeq profiles; }; // IOR Components // Standard way of representing multicomponent profiles. // This would be encapsulated in a TaggedProfile. typedef unsigned long ComponentId; typedef CORBA::OctetSeq ComponentData; struct TaggedComponent { ComponentId tag; ComponentData component_data; }; typedef sequence TaggedComponentSeq; typedef sequence MultipleComponentProfile; typedef CORBA::OctetSeq ObjectKey; const ComponentId TAG_ORB_TYPE = 0; const ComponentId TAG_CODE_SETS = 1; const ComponentId TAG_POLICIES = 2; const ComponentId TAG_ALTERNATE_IIOP_ADDRESS = 3; const ComponentId TAG_ASSOCIATION_OPTIONS = 13; const ComponentId TAG_SEC_NAME = 14; const ComponentId TAG_SPKM_1_SEC_MECH = 15; const ComponentId TAG_SPKM_2_SEC_MECH = 16; const ComponentId TAG_KerberosV5_SEC_MECH = 17; const ComponentId TAG_CSI_ECMA_Secret_SEC_MECH= 18; const ComponentId TAG_CSI_ECMA_Hybrid_SEC_MECH= 19; const ComponentId TAG_SSL_SEC_TRANS = 20; const ComponentId TAG_CSI_ECMA_Public_SEC_MECH= 21; const ComponentId TAG_GENERIC_SEC_MECH = 22; const ComponentId TAG_FIREWALL_TRANS = 23; const ComponentId TAG_SCCP_CONTACT_INFO = 24; const ComponentId TAG_JAVA_CODEBASE = 25; const ComponentId TAG_TRANSACTION_POLICY = 26; const ComponentId TAG_MESSAGE_ROUTER = 30; const ComponentId TAG_OTS_POLICY = 31; const ComponentId TAG_INV_POLICY = 32; const ComponentId TAG_CSI_SEC_MECH_LIST = 33; const ComponentId TAG_NULL_TAG = 34; const ComponentId TAG_SECIOP_SEC_TRANS = 35; const ComponentId TAG_TLS_SEC_TRANS = 36; const ComponentId TAG_ACTIVITY_POLICY = 37; const ComponentId TAG_COMPLETE_OBJECT_KEY = 5; const ComponentId TAG_ENDPOINT_ID_POSITION = 6; const ComponentId TAG_LOCATION_POLICY = 12; const ComponentId TAG_DCE_STRING_BINDING = 100; const ComponentId TAG_DCE_BINDING_NAME = 101; const ComponentId TAG_DCE_NO_PIPES = 102; const ComponentId TAG_DCE_SEC_MECH = 103; const ComponentId TAG_INET_SEC_TRANS = 123; // Service Contexts typedef unsigned long ServiceId; struct ServiceContext { ServiceId context_id; sequence context_data; }; typedef sequence ServiceContextList; const ServiceId TransactionService = 0; const ServiceId CodeSets = 1; const ServiceId ChainBypassCheck = 2; const ServiceId ChainBypassInfo = 3; const ServiceId LogicalThreadId = 4; const ServiceId BI_DIR_IIOP = 5; const ServiceId SendingContextRunTime = 6; const ServiceId INVOCATION_POLICIES = 7; const ServiceId FORWARDED_IDENTITY = 8; const ServiceId UnknownExceptionInfo = 9; const ServiceId RTCorbaPriority = 10; const ServiceId RTCorbaPriorityRange = 11; const ServiceId FT_GROUP_VERSION = 12; const ServiceId FT_REQUEST = 13; const ServiceId ExceptionDetailMessage = 14; const ServiceId SecurityAttributeService = 15; const ServiceId ActivityService = 16; // Coder Decoder from Portable Interceptor local interface Codec { exception InvalidTypeForEncoding {}; exception FormatMismatch {}; exception TypeMismatch {}; CORBA::OctetSeq encode (in any data) raises (InvalidTypeForEncoding); any decode (in CORBA::OctetSeq data) raises (FormatMismatch); CORBA::OctetSeq encode_value (in any data) raises (InvalidTypeForEncoding); any decode_value ( in CORBA::OctetSeq data, in CORBA::TypeCode tc) raises (FormatMismatch, TypeMismatch); }; // Codec Factory typedef short EncodingFormat; const EncodingFormat ENCODING_CDR_ENCAPS = 0; struct Encoding { EncodingFormat format; octet major_version; octet minor_version; }; local interface CodecFactory { exception UnknownEncoding {}; Codec create_codec (in Encoding enc) raises (UnknownEncoding); }; }; // #include #endif // _IOP_IDL_