--- old/src/java.corba/share/classes/org/omg/PortableInterceptor/IOP.idl 2018-01-30 20:29:18.000000000 -0500
+++ /dev/null 2018-01-30 20:29:18.000000000 -0500
@@ -1,617 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-#ifndef _IOP_IDL_
-#define _IOP_IDL_
-
-#include "CORBAX.idl"
-
-#pragma prefix "omg.org"
-
-#ifndef CORBA3
-#define local
-#endif
-
-module IOP {
- //
- // Standard Protocol Profile tag values
- //
- /** Profile ID */
- typedef unsigned long ProfileId;
-
- /**
- * Identifies profiles that
- * support the Internet Inter-ORB Protocol. The ProfileBody
- * of this profile contains a CDR encapsulation of a structure
- * containing addressing and object identification information used by
- * IIOP. Version 1.1 of the TAG_INTERNET_IOP
profile
- * also includes an array of TaggedComponent objects that can
- * contain additional information supporting optional IIOP features,
- * ORB services such as security, and future protocol extensions.
- *
- * Protocols other than IIOP (such as ESIOPs and other GIOPs) can share
- * profile information (such as object identity or security
- * information) with IIOP by encoding their additional profile information
- * as components in the TAG_INTERNET_IOP
profile. All
- * TAG_INTERNET_IOP
profiles support IIOP, regardless of
- * whether they also support additional protocols. Interoperable
- * ORBs are not required to create or understand any other profile,
- * nor are they required to create or understand any of the components
- * defined for other protocols that might share the
- * TAG_INTERNET_IOP
profile with IIOP.
- *
- * The profile_data
for the TAG_INTERNET_IOP
- * profile is a CDR encapsulation of the IIOP.ProfileBody_1_1
- * type.
- */
- const ProfileId TAG_INTERNET_IOP = 0;
-
- /**
- * Indicates that the value encapsulated is of type
- * MultipleComponentProfile
. In this case, the profile
- * consists of a list of protocol components, the use of which must
- * be specified by the protocol using this profile. This profile may
- * be used to carry IOR components.
- *
- * The
- * 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.
- *
- * Object references have at least one tagged profile. Each profile
- * supports one or more protocols and encapsulates all the basic
- * information the protocols it supports need to identify an object.
- * Any single profile holds enough information to drive a complete
- * invocation using any of the protocols it supports; the content
- * and structure of those profile entries are wholly specified by
- * these protocols. A bridge between two domains may need to know the
- * detailed content of the profile for those domains' profiles,
- * depending on the technique it uses to bridge the domains.
- *
- * Each profile has a unique numeric tag, assigned by the OMG.
- * Profile tags in the range 0x80000000 through 0xffffffff are reserved
- * for future use, and are not currently available for assignment.
- *
- * Null object references are indicated by an empty set of profiles,
- * and by a "Null" type ID (a string which contains only a single
- * terminating character). A Null
- * The type ID, if provided by the server, indicates the most derived
- * type that the server wishes to publish, at the time the reference
- * is generated. The object's actual most derived type may later change
- * to a more derived type. Therefore, the type ID in the IOR can only
- * be interpreted by the client as a hint that the object supports at
- * least the indicated interface. The client can succeed in narrowing
- * the reference to the indicated interface, or to one of its base
- * interfaces, based solely on the type ID in the IOR, but must not fail
- * to narrow the reference without consulting the object via the
- * "_is_a" or "_get_interface" pseudo-operations.
- */
- struct IOR {
- /** The type id, represented as a String. */
- string type_id;
-
- /**
- * An array of tagged profiles associated with this
- * object reference.
- */
- sequence
- * Specifications of components must include the following information:
- *
- * The
- * The
- * The
- * Zero or more instances of the
- * For values and value helpers, the codebase is transmitted after the
- * value tag. For stubs and ties, the codebase is transmitted as
- * the TaggedComponent
- *
- *
- *
- * A
- * The encodings currently supported are:
- * profile_data
for the
- * TAG_MULTIPLE_COMPONENTS
profile is a CDR encapsulation
- * of the MultipleComponentProfile
type shown above.
- */
- const ProfileId TAG_MULTIPLE_COMPONENTS = 1;
-
- /**
- * Object references have at least one tagged profile. Each profile
- * supports one or more protocols and encapsulates all the basic
- * information the protocols it supports need to identify an object.
- * Any single profile holds enough information to drive a complete
- * invocation using any of the protocols it supports; the content
- * and structure of those profile entries are wholly specified by
- * these protocols.
- */
- struct TaggedProfile {
- /** The tag, represented as a profile id. */
- ProfileId tag;
-
- /** The associated profile data. */
- sequence TypeID
is the only
- * mechanism that can be used to represent the type
- * CORBA.Object
. Type IDs may only be "Null" in any message,
- * requiring the client to use existing knowledge or to consult the
- * object, to determine interface types supported. The type ID
- * is a Repository ID identifying the interface type, and is provided
- * to allow ORBs to preserve strong typing. This identifier is agreed
- * on within the bridge and, for reasons outside the scope of the
- * interoperability specification, needs to have a much broader scope to
- * address various problems in system evolution and maintenance.
- * Type IDs support detection of type equivalence, and in conjunction
- * with an Interface Repository, allow processes to reason about the
- * relationship of the type of the object referred to and any other type.
- * TaggedComponents
contained in
- * TAG_INTERNET_IOP
and
- * TAG_MULTIPLE_COMPONENTS
profiles are identified by
- * unique numeric tags using a namespace distinct form that is used for
- * profile tags. Component tags are assigned by the OMG.
- *
- *
- * Specification of protocols must describe how the components affect
- * the protocol. The following should be specified in any protocol
- * definition for each TaggedComponent
that the protocol uses:
- *
- *
- */
- struct TaggedComponent {
- /** The tag, represented as a component id. */
- ComponentId tag;
-
- /** The component data associated with the component id. */
- sequence TAG_ORB_TYPE
component has an associated value of
- * type unsigned long (Java long), encoded as a CDR encapsulation,
- * designating an ORB type ID allocated by the OMG for the ORB type of the
- * originating ORB. Anyone may register any ORB types by submitting
- * a short (one-paragraph) description of the ORB type to the OMG,
- * and will receive a new ORB type ID in return. A list of ORB type
- * descriptions and values will be made available on the OMG web server.
- * TAG_ORB_TYPE
component can appear at most once in
- * any IOR profile. For profiles supporting IIOP 1.1 or greater, it
- * is optionally present.
- */
- const ComponentId TAG_ORB_TYPE = 0 ;
-
- /**
- * The code set component of the IOR multi-component profile structure
- * contains:
- *
- *
- * Both char and wchar conversion code sets are listed in order of
- * preference.
- */
- const ComponentId TAG_CODE_SETS = 1 ;
-
- /**
- * A profile component containing the sequence of QoS policies exported
- * with the object reference by an object adapter.
- */
- const ComponentId TAG_POLICIES = 2 ;
-
- /**
- * In cases where the same object key is used for more than one
- * internet location, the following standard IOR Component is defined
- * for support in IIOP version 1.2.
- * TAG_ALTERNATE_IIOP_ADDRESS
component has an
- * associated value of type:
- *
- *
- * encoded as a CDR encapsulation.
- *
- * struct {
- * string HostID,
- * short Port
- * };
- *
- * TAG_ALTERNATE_IIOP_ADDRESS
- * component type may be included in a version 1.2
- * TAG_INTERNET_IOP
Profile. Each of these alternative
- * addresses may be used by the client orb, in addition to the host
- * and port address expressed in the body of the Profile. In cases
- * where one or more TAG_ALTERNATE_IIOP_ADDRESS
components
- * are present in a TAG_INTERNET_IOP
Profile, no order of
- * use is prescribed by Version 1.2 of IIOP.
- */
- const ComponentId TAG_ALTERNATE_IIOP_ADDRESS = 3 ;
-
- /**
- * Class downloading is supported for stubs, ties, values, and
- * value helpers. The specification allows transmission of codebase
- * information on the wire for stubs and ties, and enables usage of
- * pre-existing ClassLoaders when relevant.
- * TAG_JAVA_CODEBASE
in the IOR
- * profile, where the component_data
is a CDR encapsulation
- * of the codebase written as an IDL string. The codebase is a
- * space-separated list of one or more URLs.
- */
- const ComponentId TAG_JAVA_CODEBASE = 25 ;
-
- /**
- * RMI-IIOP has multiple stream format versions. A server
- * can specify its maximum version by including the
- * TAG_RMI_CUSTOM_MAX_STREAM_FORMAT tagged component or
- * rely on the default of version 1 for GIOP 1.2 and less
- * and version 2 for GIOP 1.3 and higher.
- *
- * See Java to IDL ptc/02-01-12 1.4.11.
- */
- const ComponentId TAG_RMI_CUSTOM_MAX_STREAM_FORMAT = 38 ;
-
- /** An array of tagged components, forming a multiple component profile. */
- typedef sequence CosTSInteroperation.PropogationContext
defined in
- * CORBAservices: Common Object Services Specifications.
- */
- const ServiceId TransactionService = 0;
-
- /**
- * Identifies a CDR encapsulation of the
- * CONV_FRAME.CodeSetContext
defined in
- * Section 13.10.2.5, "GIOP Code Set Service Context," on page 13-43.
- */
- const ServiceId CodeSets = 1;
-
- /**
- * Identifies a CDR encapsulation of the RMICustomMaxStreamFormat
- * service context which contains a single byte specifying
- * the client's maximum RMI-IIOP stream format version.
- *
- * See Java to IDL ptc/02-01-12 1.4.12.
- */
- const ServiceId RMICustomMaxStreamFormat = 17 ;
-
- /**
- * DCOM-CORBA Interworking uses three service contexts as defined in
- * "DCOM-CORBA Interworking" in the "Interoperability with non-CORBA
- * Systems" chapter.
- * ChainBypassCheck
carries a CDR encapsulation of the
- * struct CosBridging.ChainBypassCheck
. This is carried
- * only in a Request message as described in Section 20.9.1, "CORBA
- * Chain Bypass," on page 20-19.
- */
- const ServiceId ChainBypassCheck = 2;
-
- /**
- * DCOM-CORBA Interworking uses three service contexts as defined in
- * "DCOM-CORBA Interworking" in the "Interoperability with non-CORBA
- * Systems" chapter.
- * ChainBypassInfo
carries a CDR encapsulation of the
- * struct CosBridging.ChainBypassInfo
. This is carried
- * only in a Reply message as described in Section 20.9.1, "CORBA Chain
- * Bypass," on page 20-19.
- */
- const ServiceId ChainBypassInfo = 3;
-
- /**
- * DCOM-CORBA Interworking uses three service contexts as defined in
- * "DCOM-CORBA Interworking" in the "Interoperability with non-CORBA
- * Systems" chapter.
- * LogicalThreadId
, carries a CDR encapsulation of
- * the struct CosBridging.LogicalThreadId
as described
- * in Section 20.10, "Thread Identification," on page 20-21.
- */
- const ServiceId LogicalThreadId = 4;
-
- /**
- * Identifies a CDR encapsulation of the
- * IIOP.BiDirIIOPServiceContext
defined in Section 15.8,
- * "Bi-Directional GIOP," on page 15-55.
- */
- const ServiceId BI_DIR_IIOP = 5;
-
- /**
- * Identifies a CDR encapsulation of the IOR of the
- * SendingContext.RunTime
object (see Section 5.6, "Access
- * to the Sending Context Run Time," on page 5-15).
- */
- const ServiceId SendingContextRunTime = 6;
-
- /**
- * For information on INVOCATION_POLICIES
refer to the
- * Asynchronous Messaging specification - orbos/98-05-05.
- */
- const ServiceId INVOCATION_POLICIES = 7;
-
- /**
- * For information on FORWARDED_IDENTITY
refer to the
- * Firewall specification - orbos/98-05-04.
- */
- const ServiceId FORWARDED_IDENTITY = 8;
-
- /**
- * Identifies a CDR encapsulation of a marshaled instance of a
- * java.lang.Throwable or one of its subclasses as described in Java
- * to IDL Language Mapping, Section 1.4.8.1, "Mapping of
- * UnknownExceptionInfo Service Context," on page 1-32.
- */
- const ServiceId UnknownExceptionInfo = 9;
-
- /**
- * CORBA formal/02-06-01: 13.7.1:
- * ExceptionDetailMessage identifies a CDR encapsulation of a wstring,
- * encoded using GIOP 1.2 with a TCS-W of UTF-16. This service context
- * may be sent on Reply messages with a reply_status of SYSTEM_EXCEPTION
- * or USER_EXCEPTION. The usage of this service context is defined
- * by language mappings.
- *
- * IDL/Java: ptc/02-01-22: 1.15.2:
- * When a System Exception is marshaled, its GIOP Reply message shall
- * include an associated ExceptionDetailMessage service context. The
- * callee's stack trace is often very valuable debugging information but
- * may contain sensitive or unwanted information. The wstring within the
- * service context will therefore contain additional information relating
- * to the exception, for example the result of calling either
- * printStackTrace(PrintWriter) or getMessage() on the exception. When
- * unmarshaling a System Exception on the client side, the wstring from
- * any ExceptionDetailMessage service context shall become the Java error
- * message in the unmarshaled exception object.
- */
- const ServiceId ExceptionDetailMessage = 14;
-
-
- // BEGIN part which lived in Interceptors.idl.
-
- /**
- * An array of TaggedComponent
objects.
- */
- typedef sequenceCodec
provides a mechanism
- * to transfer these components between their IDL data types and their CDR
- * encapsulation representations.
- * Codec
is obtained from the CodecFactory
.
- * The CodecFactory
is obtained through a call to
- * ORB.resolve_initial_references( "CodecFactory" )
.
- */
- local interface Codec {
-
- /**
- * This exception is thrown by Codec.encode
or
- * Codec.encode_value
when the type is invalid for the
- * encoding. For example, this exception is thrown if the encoding is
- * ENCODING_CDR_ENCAPS
version 1.0 and a type
- * that does not exist in that version, such as wstring
,
- * is passed to the operation.
- */
- exception InvalidTypeForEncoding {};
-
- /**
- * This exception is thrown by Codec.decode
or
- * Codec.decode_value
when the data in the byte array
- * cannot be decoded into an Any.
- */
- exception FormatMismatch {};
-
- /**
- * This exception is thrown by decode_value
when the given
- * TypeCode
does not match the given byte array.
- */
- exception TypeMismatch {};
-
- /**
- * Converts the given any into a byte array based on the encoding
- * format effective for this Codec
.
- *
- * @param data The data, in the form of an any, to be encoded into
- * a byte array.
- * @return A byte array containing the encoded Any. This byte array
- * contains both the TypeCode
and the data of the type.
- * @exception InvalidTypeForEncoding thrown if the type is not valid for
- * the encoding format effective for this Codec
.
- */
- CORBA::OctetSeq encode (in any data)
- raises (InvalidTypeForEncoding);
-
- /**
- * Decodes the given byte array into an Any based on the encoding
- * format effective for this Codec
.
- *
- * @param data The data, in the form of a byte array, to be decoded into
- * an Any.
- * @return An Any containing the data from the decoded byte array.
- * @exception FormatMismatch is thrown if the byte array cannot be
- * decoded into an Any.
- */
- any decode (in CORBA::OctetSeq data) raises (FormatMismatch);
-
- /**
- * Converts the given any into a byte array based on the encoding
- * format effective for this Codec. Only the data from the Any is
- * encoded, not the TypeCode
.
- *
- * @param data The data, in the form of an Any, to be encoded into
- * a byte array.
- * @return A byte array containing the data from the encoded any.
- * @exception InvalidTypeForEncoding thrown if the type is not valid for
- * the encoding format effective for this Codec
.
- */
- CORBA::OctetSeq encode_value (in any data)
- raises (InvalidTypeForEncoding);
-
- /**
- * Decodes the given byte array into an Any based on the given
- * TypeCode
and the encoding format effective for
- * this Codec
.
- *
- * @param data The data, in the form of a byte array, to be decoded
- * into an Any.
- * @param tc The TypeCode to be used to decode the data.
- * @return An Any containing the data from the decoded byte array.
- * @exception FormatMismatch thrown if the byte array cannot be
- * decoded into an Any.
- */
- any decode_value (in CORBA::OctetSeq data, in CORBA::TypeCode tc)
- raises (FormatMismatch, TypeMismatch);
- };
-
- /**
- * Defines an encoding format of a Codec
, such as
- * CDR Encapsulation (ENCODING_CDR_ENCAPS
).
- */
- typedef short EncodingFormat;
-
- /**
- * The CDR Encapsulation encoding.
- * @see CodecFactory
- */
- const EncodingFormat ENCODING_CDR_ENCAPS = 0;
-
- /**
- * Defines the encoding format of a Codec
. This class
- * details the encoding format, such as CDR Encapsulation encoding, and
- * the major and minor versions of that format.
- *
- *
- * Vendors are free to support additional encodings.
- *
- * @see ENCODING_CDR_ENCAPS
- */
- struct Encoding {
- /**
- * The encoding format.
- */
- EncodingFormat format;
-
- /**
- * The major version of this Encoding format.
- */
- octet major_version;
-
- /**
- * The minor version of this Encoding format.
- */
- octet minor_version;
- };
-
- /**
- * ENCODING_CDR_ENCAPS
, version 1.0;ENCODING_CDR_ENCAPS
, version 1.1;ENCODING_CDR_ENCAPS
, version 1.2;ENCODING_CDR_ENCAPS
for all future versions of GIOP as
- * they arise.Codecs
are obtained from the CodecFactory
.
- * The CodecFactory
is obtained through a call to
- * ORB.resolve_initial_references( "CodecFactory" )
.
- */
- local interface CodecFactory {
- /**
- * This exception is thrown by CodecFactory.create_codec
when
- * the factory cannot create a Codec
for a given encoding.
- */
- exception UnknownEncoding {};
-
- /**
- * Create a Codec
of the given encoding.
- *
- * @param enc The encoding for which to create a Codec
.
- * @return A Codec
obtained with the given encoding.
- * @exception UnknownEncoding thrown if this factory cannot create a
- * Codec
of the given encoding.
- */
- Codec create_codec (in Encoding enc) raises (UnknownEncoding);
- };
-
- // END part which lived in Interceptors.idl.
-
-};
-
-#endif // _IOP_IDL_