corba/src/java.corba/share/classes/org/omg/CORBA/ir.idl
author chegar
Mon, 18 Aug 2014 10:07:13 +0100
changeset 26048 c6cdd019b5cb
parent 25862 a5e25d68f971
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
02bb8761fcce Initial load
duke
parents:
diff changeset
     1
/*
5555
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 2192
diff changeset
     2
 * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
4
02bb8761fcce Initial load
duke
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
02bb8761fcce Initial load
duke
parents:
diff changeset
     4
 *
02bb8761fcce Initial load
duke
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
02bb8761fcce Initial load
duke
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
5555
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 2192
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
4
02bb8761fcce Initial load
duke
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
5555
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 2192
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
4
02bb8761fcce Initial load
duke
parents:
diff changeset
    10
 *
02bb8761fcce Initial load
duke
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
02bb8761fcce Initial load
duke
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
02bb8761fcce Initial load
duke
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
02bb8761fcce Initial load
duke
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
02bb8761fcce Initial load
duke
parents:
diff changeset
    15
 * accompanied this code).
02bb8761fcce Initial load
duke
parents:
diff changeset
    16
 *
02bb8761fcce Initial load
duke
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
02bb8761fcce Initial load
duke
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
02bb8761fcce Initial load
duke
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
02bb8761fcce Initial load
duke
parents:
diff changeset
    20
 *
5555
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 2192
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 2192
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
b2b5ed3f0d0d 6943119: Rebrand source copyright notices
ohair
parents: 2192
diff changeset
    23
 * questions.
4
02bb8761fcce Initial load
duke
parents:
diff changeset
    24
 */
02bb8761fcce Initial load
duke
parents:
diff changeset
    25
02bb8761fcce Initial load
duke
parents:
diff changeset
    26
/*
02bb8761fcce Initial load
duke
parents:
diff changeset
    27
 * This file contains OMG IDL from  CORBA V2.0, July 1995.
02bb8761fcce Initial load
duke
parents:
diff changeset
    28
 * It also contains the TypeCode creation APIs in CORBA::ORB
02bb8761fcce Initial load
duke
parents:
diff changeset
    29
 **/
02bb8761fcce Initial load
duke
parents:
diff changeset
    30
02bb8761fcce Initial load
duke
parents:
diff changeset
    31
#pragma prefix "omg.org"
02bb8761fcce Initial load
duke
parents:
diff changeset
    32
//#pragma javaPackage org.omg
02bb8761fcce Initial load
duke
parents:
diff changeset
    33
02bb8761fcce Initial load
duke
parents:
diff changeset
    34
module CORBA {
02bb8761fcce Initial load
duke
parents:
diff changeset
    35
    typedef string Identifier;
02bb8761fcce Initial load
duke
parents:
diff changeset
    36
    typedef string ScopedName;
02bb8761fcce Initial load
duke
parents:
diff changeset
    37
    typedef string RepositoryId;
02bb8761fcce Initial load
duke
parents:
diff changeset
    38
02bb8761fcce Initial load
duke
parents:
diff changeset
    39
    enum DefinitionKind {
02bb8761fcce Initial load
duke
parents:
diff changeset
    40
	dk_none, dk_all,
02bb8761fcce Initial load
duke
parents:
diff changeset
    41
	dk_Attribute, dk_Constant, dk_Exception, dk_Interface,
02bb8761fcce Initial load
duke
parents:
diff changeset
    42
	dk_Module, dk_Operation, dk_Typedef,
02bb8761fcce Initial load
duke
parents:
diff changeset
    43
	dk_Alias, dk_Struct, dk_Union, dk_Enum,
02bb8761fcce Initial load
duke
parents:
diff changeset
    44
	dk_Primitive, dk_String, dk_Sequence, dk_Array,
02bb8761fcce Initial load
duke
parents:
diff changeset
    45
	dk_Repository,
02bb8761fcce Initial load
duke
parents:
diff changeset
    46
	dk_Wstring, dk_Fixed,
02bb8761fcce Initial load
duke
parents:
diff changeset
    47
	dk_Value, dk_ValueBox, dk_ValueMember, // orbos 98-01-18: Objects By Value
02bb8761fcce Initial load
duke
parents:
diff changeset
    48
	dk_Native
02bb8761fcce Initial load
duke
parents:
diff changeset
    49
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
    50
02bb8761fcce Initial load
duke
parents:
diff changeset
    51
02bb8761fcce Initial load
duke
parents:
diff changeset
    52
    interface IRObject
02bb8761fcce Initial load
duke
parents:
diff changeset
    53
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
    54
      An IRObject IDL interface represents the most generic interface
02bb8761fcce Initial load
duke
parents:
diff changeset
    55
      from which all other Interface Repository interfaces are derived,
02bb8761fcce Initial load
duke
parents:
diff changeset
    56
      even the Repository itself.
02bb8761fcce Initial load
duke
parents:
diff changeset
    57
     */
02bb8761fcce Initial load
duke
parents:
diff changeset
    58
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
    59
	// read interface
02bb8761fcce Initial load
duke
parents:
diff changeset
    60
	readonly attribute DefinitionKind def_kind;
02bb8761fcce Initial load
duke
parents:
diff changeset
    61
02bb8761fcce Initial load
duke
parents:
diff changeset
    62
	// write interface
02bb8761fcce Initial load
duke
parents:
diff changeset
    63
	void destroy ();
02bb8761fcce Initial load
duke
parents:
diff changeset
    64
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
    65
02bb8761fcce Initial load
duke
parents:
diff changeset
    66
02bb8761fcce Initial load
duke
parents:
diff changeset
    67
02bb8761fcce Initial load
duke
parents:
diff changeset
    68
    typedef string VersionSpec;
02bb8761fcce Initial load
duke
parents:
diff changeset
    69
02bb8761fcce Initial load
duke
parents:
diff changeset
    70
    interface Contained;
02bb8761fcce Initial load
duke
parents:
diff changeset
    71
    interface Repository;
02bb8761fcce Initial load
duke
parents:
diff changeset
    72
    interface Container;
02bb8761fcce Initial load
duke
parents:
diff changeset
    73
02bb8761fcce Initial load
duke
parents:
diff changeset
    74
    interface Contained : IRObject
02bb8761fcce Initial load
duke
parents:
diff changeset
    75
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
    76
       The Contained Interface is inherited by all Interface Repository
02bb8761fcce Initial load
duke
parents:
diff changeset
    77
       interfaces that are contained by other objects.
02bb8761fcce Initial load
duke
parents:
diff changeset
    78
     */
02bb8761fcce Initial load
duke
parents:
diff changeset
    79
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
    80
	// read/write interface
02bb8761fcce Initial load
duke
parents:
diff changeset
    81
02bb8761fcce Initial load
duke
parents:
diff changeset
    82
	attribute RepositoryId id;
02bb8761fcce Initial load
duke
parents:
diff changeset
    83
	attribute Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
    84
	attribute VersionSpec version;
02bb8761fcce Initial load
duke
parents:
diff changeset
    85
02bb8761fcce Initial load
duke
parents:
diff changeset
    86
	// read interface
02bb8761fcce Initial load
duke
parents:
diff changeset
    87
02bb8761fcce Initial load
duke
parents:
diff changeset
    88
	readonly attribute Container defined_in;
02bb8761fcce Initial load
duke
parents:
diff changeset
    89
	readonly attribute ScopedName absolute_name;
02bb8761fcce Initial load
duke
parents:
diff changeset
    90
	readonly attribute Repository containing_repository;
02bb8761fcce Initial load
duke
parents:
diff changeset
    91
02bb8761fcce Initial load
duke
parents:
diff changeset
    92
	struct Description {
02bb8761fcce Initial load
duke
parents:
diff changeset
    93
	    DefinitionKind kind;
02bb8761fcce Initial load
duke
parents:
diff changeset
    94
	    any value;
02bb8761fcce Initial load
duke
parents:
diff changeset
    95
	};
02bb8761fcce Initial load
duke
parents:
diff changeset
    96
02bb8761fcce Initial load
duke
parents:
diff changeset
    97
	Description describe ();
02bb8761fcce Initial load
duke
parents:
diff changeset
    98
02bb8761fcce Initial load
duke
parents:
diff changeset
    99
	// write interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   100
02bb8761fcce Initial load
duke
parents:
diff changeset
   101
	void move (
02bb8761fcce Initial load
duke
parents:
diff changeset
   102
	    in Container new_container,
02bb8761fcce Initial load
duke
parents:
diff changeset
   103
	    in Identifier new_name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   104
	    in VersionSpec new_version
02bb8761fcce Initial load
duke
parents:
diff changeset
   105
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   106
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   107
02bb8761fcce Initial load
duke
parents:
diff changeset
   108
02bb8761fcce Initial load
duke
parents:
diff changeset
   109
    interface ModuleDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   110
    interface ConstantDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   111
    interface IDLType;
02bb8761fcce Initial load
duke
parents:
diff changeset
   112
    interface StructDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   113
    interface UnionDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   114
    interface EnumDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   115
    interface AliasDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   116
    interface InterfaceDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   117
    interface ExceptionDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   118
    interface ValueDef;		// orbos 98-01-18: Objects By Value
02bb8761fcce Initial load
duke
parents:
diff changeset
   119
    interface ValueMemberDef;	// orbos 98-01-18: Objects By Value
02bb8761fcce Initial load
duke
parents:
diff changeset
   120
    interface ValueBoxDef;	// orbos 98-01-18: Objects By Value
02bb8761fcce Initial load
duke
parents:
diff changeset
   121
    interface NativeDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   122
02bb8761fcce Initial load
duke
parents:
diff changeset
   123
02bb8761fcce Initial load
duke
parents:
diff changeset
   124
    typedef sequence <InterfaceDef> InterfaceDefSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   125
02bb8761fcce Initial load
duke
parents:
diff changeset
   126
02bb8761fcce Initial load
duke
parents:
diff changeset
   127
    typedef sequence <Contained> ContainedSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   128
02bb8761fcce Initial load
duke
parents:
diff changeset
   129
    struct StructMember {
02bb8761fcce Initial load
duke
parents:
diff changeset
   130
	Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   131
	TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   132
	IDLType type_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   133
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   134
    typedef sequence <StructMember> StructMemberSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   135
02bb8761fcce Initial load
duke
parents:
diff changeset
   136
    struct UnionMember {
02bb8761fcce Initial load
duke
parents:
diff changeset
   137
	Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   138
	any label;
02bb8761fcce Initial load
duke
parents:
diff changeset
   139
	TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   140
	IDLType type_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   141
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   142
    typedef sequence <UnionMember> UnionMemberSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   143
02bb8761fcce Initial load
duke
parents:
diff changeset
   144
02bb8761fcce Initial load
duke
parents:
diff changeset
   145
    typedef sequence <Identifier> EnumMemberSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   146
02bb8761fcce Initial load
duke
parents:
diff changeset
   147
    // orbos 98-01-18: Objects By Value -- begin
02bb8761fcce Initial load
duke
parents:
diff changeset
   148
    typedef short Visibility;	
02bb8761fcce Initial load
duke
parents:
diff changeset
   149
    const Visibility PRIVATE_MEMBER = 0; 
02bb8761fcce Initial load
duke
parents:
diff changeset
   150
    const Visibility PUBLIC_MEMBER = 1;
02bb8761fcce Initial load
duke
parents:
diff changeset
   151
02bb8761fcce Initial load
duke
parents:
diff changeset
   152
    struct ValueMember {
02bb8761fcce Initial load
duke
parents:
diff changeset
   153
        Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   154
	RepositoryId id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   155
	RepositoryId defined_in;
02bb8761fcce Initial load
duke
parents:
diff changeset
   156
	VersionSpec version;
02bb8761fcce Initial load
duke
parents:
diff changeset
   157
        TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   158
        IDLType type_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   159
        Visibility access;
02bb8761fcce Initial load
duke
parents:
diff changeset
   160
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   161
    typedef sequence <ValueMember> ValueMemberSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   162
02bb8761fcce Initial load
duke
parents:
diff changeset
   163
    struct Initializer {
02bb8761fcce Initial load
duke
parents:
diff changeset
   164
        StructMemberSeq members;
02bb8761fcce Initial load
duke
parents:
diff changeset
   165
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   166
    typedef sequence <Initializer> InitializerSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   167
02bb8761fcce Initial load
duke
parents:
diff changeset
   168
    typedef sequence <ValueDef> ValueDefSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   169
    
02bb8761fcce Initial load
duke
parents:
diff changeset
   170
    // orbos 98-01-18: Objects By Value -- end
02bb8761fcce Initial load
duke
parents:
diff changeset
   171
02bb8761fcce Initial load
duke
parents:
diff changeset
   172
02bb8761fcce Initial load
duke
parents:
diff changeset
   173
    interface Container : IRObject
02bb8761fcce Initial load
duke
parents:
diff changeset
   174
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   175
      The Container interface is used to form a containment hierarchy
02bb8761fcce Initial load
duke
parents:
diff changeset
   176
      in the Interface Repository. A Container can contain any number
02bb8761fcce Initial load
duke
parents:
diff changeset
   177
      of objects derived from the Contained interface.
02bb8761fcce Initial load
duke
parents:
diff changeset
   178
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   179
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   180
	// read interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   181
02bb8761fcce Initial load
duke
parents:
diff changeset
   182
	Contained lookup ( in ScopedName search_name);
02bb8761fcce Initial load
duke
parents:
diff changeset
   183
02bb8761fcce Initial load
duke
parents:
diff changeset
   184
	ContainedSeq contents (
02bb8761fcce Initial load
duke
parents:
diff changeset
   185
	    in DefinitionKind limit_type,
02bb8761fcce Initial load
duke
parents:
diff changeset
   186
	    in boolean exclude_inherited
02bb8761fcce Initial load
duke
parents:
diff changeset
   187
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   188
02bb8761fcce Initial load
duke
parents:
diff changeset
   189
	ContainedSeq lookup_name (
02bb8761fcce Initial load
duke
parents:
diff changeset
   190
	    in Identifier search_name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   191
	    in long levels_to_search,
02bb8761fcce Initial load
duke
parents:
diff changeset
   192
	    in DefinitionKind limit_type,
02bb8761fcce Initial load
duke
parents:
diff changeset
   193
	    in boolean exclude_inherited
02bb8761fcce Initial load
duke
parents:
diff changeset
   194
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   195
02bb8761fcce Initial load
duke
parents:
diff changeset
   196
	struct Description {
02bb8761fcce Initial load
duke
parents:
diff changeset
   197
	    Contained contained_object;
02bb8761fcce Initial load
duke
parents:
diff changeset
   198
	    DefinitionKind kind;
02bb8761fcce Initial load
duke
parents:
diff changeset
   199
	    any value;
02bb8761fcce Initial load
duke
parents:
diff changeset
   200
	};
02bb8761fcce Initial load
duke
parents:
diff changeset
   201
02bb8761fcce Initial load
duke
parents:
diff changeset
   202
	typedef sequence<Description> DescriptionSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   203
02bb8761fcce Initial load
duke
parents:
diff changeset
   204
	DescriptionSeq describe_contents (
02bb8761fcce Initial load
duke
parents:
diff changeset
   205
	    in DefinitionKind limit_type,
02bb8761fcce Initial load
duke
parents:
diff changeset
   206
	    in boolean exclude_inherited,
02bb8761fcce Initial load
duke
parents:
diff changeset
   207
	    in long max_returned_objs
02bb8761fcce Initial load
duke
parents:
diff changeset
   208
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   209
02bb8761fcce Initial load
duke
parents:
diff changeset
   210
	// write interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   211
02bb8761fcce Initial load
duke
parents:
diff changeset
   212
	ModuleDef create_module (
02bb8761fcce Initial load
duke
parents:
diff changeset
   213
	    in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   214
	    in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   215
	    in VersionSpec version
02bb8761fcce Initial load
duke
parents:
diff changeset
   216
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   217
02bb8761fcce Initial load
duke
parents:
diff changeset
   218
	ConstantDef create_constant (
02bb8761fcce Initial load
duke
parents:
diff changeset
   219
	    in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   220
	    in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   221
	    in VersionSpec version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   222
	    in IDLType type,
02bb8761fcce Initial load
duke
parents:
diff changeset
   223
	    in any value
02bb8761fcce Initial load
duke
parents:
diff changeset
   224
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   225
02bb8761fcce Initial load
duke
parents:
diff changeset
   226
	StructDef create_struct (
02bb8761fcce Initial load
duke
parents:
diff changeset
   227
	    in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   228
	    in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   229
	    in VersionSpec version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   230
	    in StructMemberSeq members
02bb8761fcce Initial load
duke
parents:
diff changeset
   231
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   232
02bb8761fcce Initial load
duke
parents:
diff changeset
   233
	UnionDef create_union (
02bb8761fcce Initial load
duke
parents:
diff changeset
   234
	    in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   235
	    in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   236
	    in VersionSpec version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   237
	    in IDLType discriminator_type,
02bb8761fcce Initial load
duke
parents:
diff changeset
   238
	    in UnionMemberSeq members
02bb8761fcce Initial load
duke
parents:
diff changeset
   239
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   240
02bb8761fcce Initial load
duke
parents:
diff changeset
   241
	EnumDef create_enum (
02bb8761fcce Initial load
duke
parents:
diff changeset
   242
	    in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   243
	    in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   244
	    in VersionSpec version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   245
	    in EnumMemberSeq members
02bb8761fcce Initial load
duke
parents:
diff changeset
   246
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   247
02bb8761fcce Initial load
duke
parents:
diff changeset
   248
	AliasDef create_alias (
02bb8761fcce Initial load
duke
parents:
diff changeset
   249
	    in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   250
	    in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   251
	    in VersionSpec version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   252
	    in IDLType original_type
02bb8761fcce Initial load
duke
parents:
diff changeset
   253
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   254
02bb8761fcce Initial load
duke
parents:
diff changeset
   255
        ExceptionDef create_exception (
02bb8761fcce Initial load
duke
parents:
diff changeset
   256
            in RepositoryId    id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   257
            in Identifier      name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   258
            in VersionSpec     version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   259
            in StructMemberSeq members
02bb8761fcce Initial load
duke
parents:
diff changeset
   260
        );
02bb8761fcce Initial load
duke
parents:
diff changeset
   261
02bb8761fcce Initial load
duke
parents:
diff changeset
   262
02bb8761fcce Initial load
duke
parents:
diff changeset
   263
	InterfaceDef create_interface (
02bb8761fcce Initial load
duke
parents:
diff changeset
   264
	    in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   265
	    in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   266
	    in VersionSpec version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   267
	    in boolean is_abstract,
02bb8761fcce Initial load
duke
parents:
diff changeset
   268
	    in InterfaceDefSeq base_interfaces
02bb8761fcce Initial load
duke
parents:
diff changeset
   269
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   270
02bb8761fcce Initial load
duke
parents:
diff changeset
   271
	// orbos 98-01-18: Objects By Value
02bb8761fcce Initial load
duke
parents:
diff changeset
   272
	ValueDef create_value(
02bb8761fcce Initial load
duke
parents:
diff changeset
   273
	    in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   274
	    in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   275
	    in VersionSpec version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   276
	    in boolean is_custom,
02bb8761fcce Initial load
duke
parents:
diff changeset
   277
	    in boolean is_abstract,
02bb8761fcce Initial load
duke
parents:
diff changeset
   278
	    in octet flags,	// must be 0
02bb8761fcce Initial load
duke
parents:
diff changeset
   279
	    in ValueDef base_value,
02bb8761fcce Initial load
duke
parents:
diff changeset
   280
	    in boolean has_safe_base,
02bb8761fcce Initial load
duke
parents:
diff changeset
   281
	    in ValueDefSeq abstract_base_values,
02bb8761fcce Initial load
duke
parents:
diff changeset
   282
	    in InterfaceDefSeq supported_interfaces,
02bb8761fcce Initial load
duke
parents:
diff changeset
   283
	    in InitializerSeq initializers
02bb8761fcce Initial load
duke
parents:
diff changeset
   284
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   285
	
02bb8761fcce Initial load
duke
parents:
diff changeset
   286
	// orbos 98-01-18: Objects By Value
02bb8761fcce Initial load
duke
parents:
diff changeset
   287
	ValueBoxDef create_value_box(
02bb8761fcce Initial load
duke
parents:
diff changeset
   288
	    in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   289
	    in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   290
	    in VersionSpec version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   291
	    in IDLType original_type_def
02bb8761fcce Initial load
duke
parents:
diff changeset
   292
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   293
	
02bb8761fcce Initial load
duke
parents:
diff changeset
   294
	NativeDef create_native(
02bb8761fcce Initial load
duke
parents:
diff changeset
   295
	    in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   296
	    in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   297
	    in VersionSpec version
02bb8761fcce Initial load
duke
parents:
diff changeset
   298
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   299
	
02bb8761fcce Initial load
duke
parents:
diff changeset
   300
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   301
02bb8761fcce Initial load
duke
parents:
diff changeset
   302
02bb8761fcce Initial load
duke
parents:
diff changeset
   303
02bb8761fcce Initial load
duke
parents:
diff changeset
   304
    interface IDLType : IRObject
02bb8761fcce Initial load
duke
parents:
diff changeset
   305
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   306
       The IDLType interface is an abstract interface inherited by all
02bb8761fcce Initial load
duke
parents:
diff changeset
   307
       IR objects that represent the OMG IDL types. It provides access
02bb8761fcce Initial load
duke
parents:
diff changeset
   308
       to the TypeCode describing the type, and is used in defining the
02bb8761fcce Initial load
duke
parents:
diff changeset
   309
       other interfaces wherever definitions of IDLType must be referenced.
02bb8761fcce Initial load
duke
parents:
diff changeset
   310
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   311
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   312
	readonly attribute TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   313
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   314
02bb8761fcce Initial load
duke
parents:
diff changeset
   315
02bb8761fcce Initial load
duke
parents:
diff changeset
   316
02bb8761fcce Initial load
duke
parents:
diff changeset
   317
    interface PrimitiveDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   318
    interface StringDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   319
    interface SequenceDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   320
    interface ArrayDef;
02bb8761fcce Initial load
duke
parents:
diff changeset
   321
02bb8761fcce Initial load
duke
parents:
diff changeset
   322
    enum PrimitiveKind {
02bb8761fcce Initial load
duke
parents:
diff changeset
   323
	pk_null, pk_void, pk_short, pk_long, pk_ushort, pk_ulong,
02bb8761fcce Initial load
duke
parents:
diff changeset
   324
	pk_float, pk_double, pk_boolean, pk_char, pk_octet,
02bb8761fcce Initial load
duke
parents:
diff changeset
   325
	pk_any, pk_TypeCode, pk_Principal, pk_string, pk_objref
02bb8761fcce Initial load
duke
parents:
diff changeset
   326
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   327
02bb8761fcce Initial load
duke
parents:
diff changeset
   328
    interface Repository : Container
02bb8761fcce Initial load
duke
parents:
diff changeset
   329
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   330
      Repository is an interface that provides global access to the
02bb8761fcce Initial load
duke
parents:
diff changeset
   331
      Interface Repository. Repository objects can contain constants,
02bb8761fcce Initial load
duke
parents:
diff changeset
   332
      typedefs, exceptions, interfaces, and modules.
02bb8761fcce Initial load
duke
parents:
diff changeset
   333
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   334
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   335
	// read interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   336
02bb8761fcce Initial load
duke
parents:
diff changeset
   337
	Contained lookup_id (in RepositoryId search_id);
02bb8761fcce Initial load
duke
parents:
diff changeset
   338
02bb8761fcce Initial load
duke
parents:
diff changeset
   339
	PrimitiveDef get_primitive (in PrimitiveKind kind);
02bb8761fcce Initial load
duke
parents:
diff changeset
   340
02bb8761fcce Initial load
duke
parents:
diff changeset
   341
	// write interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   342
02bb8761fcce Initial load
duke
parents:
diff changeset
   343
	StringDef create_string (in unsigned long bound);
02bb8761fcce Initial load
duke
parents:
diff changeset
   344
02bb8761fcce Initial load
duke
parents:
diff changeset
   345
	SequenceDef create_sequence (
02bb8761fcce Initial load
duke
parents:
diff changeset
   346
	    in unsigned long bound,
02bb8761fcce Initial load
duke
parents:
diff changeset
   347
	    in IDLType element_type
02bb8761fcce Initial load
duke
parents:
diff changeset
   348
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   349
02bb8761fcce Initial load
duke
parents:
diff changeset
   350
	ArrayDef create_array (
02bb8761fcce Initial load
duke
parents:
diff changeset
   351
	    in unsigned long length,
02bb8761fcce Initial load
duke
parents:
diff changeset
   352
	    in IDLType element_type
02bb8761fcce Initial load
duke
parents:
diff changeset
   353
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   354
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   355
02bb8761fcce Initial load
duke
parents:
diff changeset
   356
02bb8761fcce Initial load
duke
parents:
diff changeset
   357
    interface ModuleDef : Container, Contained
02bb8761fcce Initial load
duke
parents:
diff changeset
   358
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   359
      A ModuleDef can contain constants, typedefs, exceptions, interfaces,
02bb8761fcce Initial load
duke
parents:
diff changeset
   360
      and other module objects.
02bb8761fcce Initial load
duke
parents:
diff changeset
   361
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   362
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   363
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   364
02bb8761fcce Initial load
duke
parents:
diff changeset
   365
    struct ModuleDescription {
02bb8761fcce Initial load
duke
parents:
diff changeset
   366
	Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   367
	RepositoryId id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   368
	RepositoryId defined_in;
02bb8761fcce Initial load
duke
parents:
diff changeset
   369
	VersionSpec version;
02bb8761fcce Initial load
duke
parents:
diff changeset
   370
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   371
02bb8761fcce Initial load
duke
parents:
diff changeset
   372
02bb8761fcce Initial load
duke
parents:
diff changeset
   373
    interface ConstantDef : Contained
02bb8761fcce Initial load
duke
parents:
diff changeset
   374
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   375
      A ConstantDef object defines a named constant.
02bb8761fcce Initial load
duke
parents:
diff changeset
   376
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   377
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   378
	readonly attribute TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   379
	attribute IDLType type_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   380
	attribute any value;
02bb8761fcce Initial load
duke
parents:
diff changeset
   381
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   382
02bb8761fcce Initial load
duke
parents:
diff changeset
   383
    struct ConstantDescription {
02bb8761fcce Initial load
duke
parents:
diff changeset
   384
	Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   385
	RepositoryId id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   386
	RepositoryId defined_in;
02bb8761fcce Initial load
duke
parents:
diff changeset
   387
	VersionSpec version;
02bb8761fcce Initial load
duke
parents:
diff changeset
   388
	TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   389
	any value;
02bb8761fcce Initial load
duke
parents:
diff changeset
   390
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   391
02bb8761fcce Initial load
duke
parents:
diff changeset
   392
02bb8761fcce Initial load
duke
parents:
diff changeset
   393
    interface TypedefDef : Contained, IDLType
02bb8761fcce Initial load
duke
parents:
diff changeset
   394
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   395
      TypedefDef is an abstract interface used as a base interface for
02bb8761fcce Initial load
duke
parents:
diff changeset
   396
      all named non-object types(structures, unions, enumerations,
02bb8761fcce Initial load
duke
parents:
diff changeset
   397
      aliases). The TypedefDef interface is not inherited by the definition
02bb8761fcce Initial load
duke
parents:
diff changeset
   398
      objects for the primitive or anonymous types.
02bb8761fcce Initial load
duke
parents:
diff changeset
   399
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   400
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   401
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   402
02bb8761fcce Initial load
duke
parents:
diff changeset
   403
    struct TypeDescription {
02bb8761fcce Initial load
duke
parents:
diff changeset
   404
	Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   405
	RepositoryId id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   406
	RepositoryId defined_in;
02bb8761fcce Initial load
duke
parents:
diff changeset
   407
	VersionSpec version;
02bb8761fcce Initial load
duke
parents:
diff changeset
   408
	TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   409
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   410
02bb8761fcce Initial load
duke
parents:
diff changeset
   411
02bb8761fcce Initial load
duke
parents:
diff changeset
   412
    interface StructDef : TypedefDef, Container
02bb8761fcce Initial load
duke
parents:
diff changeset
   413
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   414
       A StructDef represents an OMG IDL structure definition.
02bb8761fcce Initial load
duke
parents:
diff changeset
   415
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   416
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   417
	attribute StructMemberSeq members;
02bb8761fcce Initial load
duke
parents:
diff changeset
   418
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   419
02bb8761fcce Initial load
duke
parents:
diff changeset
   420
02bb8761fcce Initial load
duke
parents:
diff changeset
   421
    interface UnionDef : TypedefDef, Container
02bb8761fcce Initial load
duke
parents:
diff changeset
   422
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   423
       A UnionDef represents an OMG IDL union definition.
02bb8761fcce Initial load
duke
parents:
diff changeset
   424
     */
02bb8761fcce Initial load
duke
parents:
diff changeset
   425
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   426
	readonly attribute TypeCode discriminator_type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   427
	attribute IDLType discriminator_type_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   428
	attribute UnionMemberSeq members;
02bb8761fcce Initial load
duke
parents:
diff changeset
   429
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   430
02bb8761fcce Initial load
duke
parents:
diff changeset
   431
02bb8761fcce Initial load
duke
parents:
diff changeset
   432
    interface EnumDef : TypedefDef
02bb8761fcce Initial load
duke
parents:
diff changeset
   433
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   434
      A EnumDef represents an OMG IDL enum definition.
02bb8761fcce Initial load
duke
parents:
diff changeset
   435
     */
02bb8761fcce Initial load
duke
parents:
diff changeset
   436
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   437
	attribute EnumMemberSeq members;
02bb8761fcce Initial load
duke
parents:
diff changeset
   438
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   439
02bb8761fcce Initial load
duke
parents:
diff changeset
   440
02bb8761fcce Initial load
duke
parents:
diff changeset
   441
    interface AliasDef : TypedefDef
02bb8761fcce Initial load
duke
parents:
diff changeset
   442
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   443
       An AliasDef represents an OMG IDL typedef that aliases other
02bb8761fcce Initial load
duke
parents:
diff changeset
   444
       definition.
02bb8761fcce Initial load
duke
parents:
diff changeset
   445
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   446
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   447
	attribute IDLType original_type_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   448
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   449
02bb8761fcce Initial load
duke
parents:
diff changeset
   450
02bb8761fcce Initial load
duke
parents:
diff changeset
   451
    interface PrimitiveDef: IDLType
02bb8761fcce Initial load
duke
parents:
diff changeset
   452
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   453
      A PrimitiveDef represents one of the IDL primitive types. As
02bb8761fcce Initial load
duke
parents:
diff changeset
   454
      primitive types are unnamed, this interface is not derived from
02bb8761fcce Initial load
duke
parents:
diff changeset
   455
      TypedefDef or Contained.
02bb8761fcce Initial load
duke
parents:
diff changeset
   456
     */
02bb8761fcce Initial load
duke
parents:
diff changeset
   457
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   458
	readonly attribute PrimitiveKind kind;
02bb8761fcce Initial load
duke
parents:
diff changeset
   459
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   460
02bb8761fcce Initial load
duke
parents:
diff changeset
   461
02bb8761fcce Initial load
duke
parents:
diff changeset
   462
    interface StringDef : IDLType
02bb8761fcce Initial load
duke
parents:
diff changeset
   463
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   464
      A StringDef represents an OMG IDL string type. As string
02bb8761fcce Initial load
duke
parents:
diff changeset
   465
      types are anonymous, this interface is not derived from TypedefDef
02bb8761fcce Initial load
duke
parents:
diff changeset
   466
      or Contained.
02bb8761fcce Initial load
duke
parents:
diff changeset
   467
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   468
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   469
	attribute unsigned long bound;
02bb8761fcce Initial load
duke
parents:
diff changeset
   470
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   471
02bb8761fcce Initial load
duke
parents:
diff changeset
   472
02bb8761fcce Initial load
duke
parents:
diff changeset
   473
    interface SequenceDef : IDLType
02bb8761fcce Initial load
duke
parents:
diff changeset
   474
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   475
      A SequenceDef represents an OMG IDL sequence type. As sequence
02bb8761fcce Initial load
duke
parents:
diff changeset
   476
      types are anonymous, this interface is not derived from TypedefDef
02bb8761fcce Initial load
duke
parents:
diff changeset
   477
      or Contained.
02bb8761fcce Initial load
duke
parents:
diff changeset
   478
     */
02bb8761fcce Initial load
duke
parents:
diff changeset
   479
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   480
	attribute unsigned long bound;
02bb8761fcce Initial load
duke
parents:
diff changeset
   481
	readonly attribute TypeCode element_type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   482
	attribute IDLType element_type_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   483
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   484
02bb8761fcce Initial load
duke
parents:
diff changeset
   485
    interface ArrayDef : IDLType
02bb8761fcce Initial load
duke
parents:
diff changeset
   486
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   487
      An ArrayDef represents an OMG IDL array type. As array
02bb8761fcce Initial load
duke
parents:
diff changeset
   488
      types are anonymous, this interface is not derived from TypedefDef
02bb8761fcce Initial load
duke
parents:
diff changeset
   489
      or Contained.
02bb8761fcce Initial load
duke
parents:
diff changeset
   490
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   491
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   492
	attribute unsigned long length;
02bb8761fcce Initial load
duke
parents:
diff changeset
   493
	readonly attribute TypeCode element_type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   494
	attribute IDLType element_type_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   495
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   496
02bb8761fcce Initial load
duke
parents:
diff changeset
   497
02bb8761fcce Initial load
duke
parents:
diff changeset
   498
    interface ExceptionDef : Contained, Container
02bb8761fcce Initial load
duke
parents:
diff changeset
   499
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   500
      An ExceptionDef represents an exception definition.
02bb8761fcce Initial load
duke
parents:
diff changeset
   501
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   502
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   503
	readonly attribute TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   504
	attribute StructMemberSeq members;
02bb8761fcce Initial load
duke
parents:
diff changeset
   505
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   506
    struct ExceptionDescription {
02bb8761fcce Initial load
duke
parents:
diff changeset
   507
	Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   508
	RepositoryId id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   509
	RepositoryId defined_in;
02bb8761fcce Initial load
duke
parents:
diff changeset
   510
	VersionSpec version;
02bb8761fcce Initial load
duke
parents:
diff changeset
   511
	TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   512
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   513
02bb8761fcce Initial load
duke
parents:
diff changeset
   514
02bb8761fcce Initial load
duke
parents:
diff changeset
   515
02bb8761fcce Initial load
duke
parents:
diff changeset
   516
    enum AttributeMode {ATTR_NORMAL, ATTR_READONLY};
02bb8761fcce Initial load
duke
parents:
diff changeset
   517
02bb8761fcce Initial load
duke
parents:
diff changeset
   518
    interface AttributeDef : Contained
02bb8761fcce Initial load
duke
parents:
diff changeset
   519
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   520
      An AttributeDef represents the information that defines an
02bb8761fcce Initial load
duke
parents:
diff changeset
   521
      attribute of an interface.
02bb8761fcce Initial load
duke
parents:
diff changeset
   522
    */
02bb8761fcce Initial load
duke
parents:
diff changeset
   523
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   524
	readonly attribute TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   525
	attribute IDLType type_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   526
	attribute AttributeMode mode;
02bb8761fcce Initial load
duke
parents:
diff changeset
   527
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   528
02bb8761fcce Initial load
duke
parents:
diff changeset
   529
    struct AttributeDescription {
02bb8761fcce Initial load
duke
parents:
diff changeset
   530
	Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   531
	RepositoryId id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   532
	RepositoryId defined_in;
02bb8761fcce Initial load
duke
parents:
diff changeset
   533
	VersionSpec version;
02bb8761fcce Initial load
duke
parents:
diff changeset
   534
	TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   535
	AttributeMode mode;
02bb8761fcce Initial load
duke
parents:
diff changeset
   536
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   537
02bb8761fcce Initial load
duke
parents:
diff changeset
   538
02bb8761fcce Initial load
duke
parents:
diff changeset
   539
02bb8761fcce Initial load
duke
parents:
diff changeset
   540
    enum OperationMode {OP_NORMAL, OP_ONEWAY};
02bb8761fcce Initial load
duke
parents:
diff changeset
   541
02bb8761fcce Initial load
duke
parents:
diff changeset
   542
    enum ParameterMode {PARAM_IN, PARAM_OUT, PARAM_INOUT};
02bb8761fcce Initial load
duke
parents:
diff changeset
   543
    struct ParameterDescription {
02bb8761fcce Initial load
duke
parents:
diff changeset
   544
	Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   545
	TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   546
	IDLType type_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   547
	ParameterMode mode;
02bb8761fcce Initial load
duke
parents:
diff changeset
   548
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   549
    typedef sequence <ParameterDescription> ParDescriptionSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   550
02bb8761fcce Initial load
duke
parents:
diff changeset
   551
    typedef Identifier ContextIdentifier;
02bb8761fcce Initial load
duke
parents:
diff changeset
   552
    typedef sequence <ContextIdentifier> ContextIdSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   553
02bb8761fcce Initial load
duke
parents:
diff changeset
   554
    typedef sequence <ExceptionDef> ExceptionDefSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   555
    typedef sequence <ExceptionDescription> ExcDescriptionSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   556
02bb8761fcce Initial load
duke
parents:
diff changeset
   557
    interface OperationDef : Contained
02bb8761fcce Initial load
duke
parents:
diff changeset
   558
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   559
      An OperationDef represents the information that defines an
02bb8761fcce Initial load
duke
parents:
diff changeset
   560
      operation of an interface.
02bb8761fcce Initial load
duke
parents:
diff changeset
   561
     */
02bb8761fcce Initial load
duke
parents:
diff changeset
   562
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   563
	readonly attribute TypeCode result;
02bb8761fcce Initial load
duke
parents:
diff changeset
   564
	attribute IDLType result_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   565
	attribute ParDescriptionSeq params;
02bb8761fcce Initial load
duke
parents:
diff changeset
   566
	attribute OperationMode mode;
02bb8761fcce Initial load
duke
parents:
diff changeset
   567
	attribute ContextIdSeq contexts;
02bb8761fcce Initial load
duke
parents:
diff changeset
   568
	attribute ExceptionDefSeq exceptions;
02bb8761fcce Initial load
duke
parents:
diff changeset
   569
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   570
02bb8761fcce Initial load
duke
parents:
diff changeset
   571
    struct OperationDescription {
02bb8761fcce Initial load
duke
parents:
diff changeset
   572
	Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   573
	RepositoryId id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   574
	RepositoryId defined_in;
02bb8761fcce Initial load
duke
parents:
diff changeset
   575
	VersionSpec version;
02bb8761fcce Initial load
duke
parents:
diff changeset
   576
	TypeCode result;
02bb8761fcce Initial load
duke
parents:
diff changeset
   577
	OperationMode mode;
02bb8761fcce Initial load
duke
parents:
diff changeset
   578
	ContextIdSeq contexts;
02bb8761fcce Initial load
duke
parents:
diff changeset
   579
	ParDescriptionSeq parameters;
02bb8761fcce Initial load
duke
parents:
diff changeset
   580
	ExcDescriptionSeq exceptions;
02bb8761fcce Initial load
duke
parents:
diff changeset
   581
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   582
02bb8761fcce Initial load
duke
parents:
diff changeset
   583
02bb8761fcce Initial load
duke
parents:
diff changeset
   584
02bb8761fcce Initial load
duke
parents:
diff changeset
   585
    typedef sequence <RepositoryId> RepositoryIdSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   586
    typedef sequence <OperationDescription> OpDescriptionSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   587
    typedef sequence <AttributeDescription> AttrDescriptionSeq;
02bb8761fcce Initial load
duke
parents:
diff changeset
   588
02bb8761fcce Initial load
duke
parents:
diff changeset
   589
    interface InterfaceDef : Container, Contained, IDLType
02bb8761fcce Initial load
duke
parents:
diff changeset
   590
    /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   591
      An InterfaceDef object represents an interface definition. It can
02bb8761fcce Initial load
duke
parents:
diff changeset
   592
      contains constants, typedefs, exceptions, operations, and
02bb8761fcce Initial load
duke
parents:
diff changeset
   593
      attributes.
02bb8761fcce Initial load
duke
parents:
diff changeset
   594
     */
02bb8761fcce Initial load
duke
parents:
diff changeset
   595
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   596
	// read/write interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   597
02bb8761fcce Initial load
duke
parents:
diff changeset
   598
	attribute InterfaceDefSeq base_interfaces;
02bb8761fcce Initial load
duke
parents:
diff changeset
   599
	attribute boolean is_abstract;
02bb8761fcce Initial load
duke
parents:
diff changeset
   600
02bb8761fcce Initial load
duke
parents:
diff changeset
   601
	// read interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   602
02bb8761fcce Initial load
duke
parents:
diff changeset
   603
	boolean is_a (in RepositoryId interface_id);
02bb8761fcce Initial load
duke
parents:
diff changeset
   604
02bb8761fcce Initial load
duke
parents:
diff changeset
   605
	struct FullInterfaceDescription {
02bb8761fcce Initial load
duke
parents:
diff changeset
   606
	    Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   607
	    RepositoryId id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   608
	    RepositoryId defined_in;
02bb8761fcce Initial load
duke
parents:
diff changeset
   609
	    VersionSpec version;
02bb8761fcce Initial load
duke
parents:
diff changeset
   610
	    boolean is_abstract;
02bb8761fcce Initial load
duke
parents:
diff changeset
   611
	    OpDescriptionSeq operations;
02bb8761fcce Initial load
duke
parents:
diff changeset
   612
	    AttrDescriptionSeq attributes;
02bb8761fcce Initial load
duke
parents:
diff changeset
   613
	    RepositoryIdSeq base_interfaces;
02bb8761fcce Initial load
duke
parents:
diff changeset
   614
	    TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   615
	};
02bb8761fcce Initial load
duke
parents:
diff changeset
   616
02bb8761fcce Initial load
duke
parents:
diff changeset
   617
	FullInterfaceDescription describe_interface();
02bb8761fcce Initial load
duke
parents:
diff changeset
   618
02bb8761fcce Initial load
duke
parents:
diff changeset
   619
	// write interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   620
02bb8761fcce Initial load
duke
parents:
diff changeset
   621
	AttributeDef create_attribute (
02bb8761fcce Initial load
duke
parents:
diff changeset
   622
	    in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   623
	    in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   624
	    in VersionSpec version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   625
	    in IDLType type,
02bb8761fcce Initial load
duke
parents:
diff changeset
   626
	    in AttributeMode mode
02bb8761fcce Initial load
duke
parents:
diff changeset
   627
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   628
02bb8761fcce Initial load
duke
parents:
diff changeset
   629
	OperationDef create_operation (
02bb8761fcce Initial load
duke
parents:
diff changeset
   630
	    in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   631
	    in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   632
	    in VersionSpec version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   633
	    in IDLType result,
02bb8761fcce Initial load
duke
parents:
diff changeset
   634
	    in OperationMode mode,
02bb8761fcce Initial load
duke
parents:
diff changeset
   635
	    in ParDescriptionSeq params,
02bb8761fcce Initial load
duke
parents:
diff changeset
   636
	    in ExceptionDefSeq exceptions,
02bb8761fcce Initial load
duke
parents:
diff changeset
   637
	    in ContextIdSeq contexts
02bb8761fcce Initial load
duke
parents:
diff changeset
   638
	    );
02bb8761fcce Initial load
duke
parents:
diff changeset
   639
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   640
02bb8761fcce Initial load
duke
parents:
diff changeset
   641
    struct InterfaceDescription {
02bb8761fcce Initial load
duke
parents:
diff changeset
   642
	Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   643
	RepositoryId id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   644
	RepositoryId defined_in;
02bb8761fcce Initial load
duke
parents:
diff changeset
   645
	VersionSpec version;
02bb8761fcce Initial load
duke
parents:
diff changeset
   646
	RepositoryIdSeq base_interfaces;
02bb8761fcce Initial load
duke
parents:
diff changeset
   647
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   648
02bb8761fcce Initial load
duke
parents:
diff changeset
   649
02bb8761fcce Initial load
duke
parents:
diff changeset
   650
    // orbos 98-01-18: Objects By Value -- begin
02bb8761fcce Initial load
duke
parents:
diff changeset
   651
02bb8761fcce Initial load
duke
parents:
diff changeset
   652
    interface ValueMemberDef : Contained
02bb8761fcce Initial load
duke
parents:
diff changeset
   653
02bb8761fcce Initial load
duke
parents:
diff changeset
   654
      /** A <code>ValueMemberDef</code> object represents the public
02bb8761fcce Initial load
duke
parents:
diff changeset
   655
      and private data member definition of a <code>Value</code> type
02bb8761fcce Initial load
duke
parents:
diff changeset
   656
      */
02bb8761fcce Initial load
duke
parents:
diff changeset
   657
02bb8761fcce Initial load
duke
parents:
diff changeset
   658
 {
02bb8761fcce Initial load
duke
parents:
diff changeset
   659
        readonly attribute TypeCode type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   660
	         attribute IDLType type_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   661
		 attribute Visibility access;
02bb8761fcce Initial load
duke
parents:
diff changeset
   662
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   663
02bb8761fcce Initial load
duke
parents:
diff changeset
   664
    interface ValueDef : Container, Contained, IDLType
02bb8761fcce Initial load
duke
parents:
diff changeset
   665
      /**
02bb8761fcce Initial load
duke
parents:
diff changeset
   666
	A ValueDef object represents the definition of the
02bb8761fcce Initial load
duke
parents:
diff changeset
   667
	<code>Value</code> object used to pass the object state
02bb8761fcce Initial load
duke
parents:
diff changeset
   668
	between hosts
02bb8761fcce Initial load
duke
parents:
diff changeset
   669
	*/
02bb8761fcce Initial load
duke
parents:
diff changeset
   670
02bb8761fcce Initial load
duke
parents:
diff changeset
   671
      {
02bb8761fcce Initial load
duke
parents:
diff changeset
   672
	   // read/write interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   673
	    attribute InterfaceDefSeq supported_interfaces;
02bb8761fcce Initial load
duke
parents:
diff changeset
   674
	    attribute InitializerSeq initializers;
02bb8761fcce Initial load
duke
parents:
diff changeset
   675
	    attribute ValueDef base_value;
02bb8761fcce Initial load
duke
parents:
diff changeset
   676
	    attribute ValueDefSeq abstract_base_values;
02bb8761fcce Initial load
duke
parents:
diff changeset
   677
	    attribute boolean is_abstract;
02bb8761fcce Initial load
duke
parents:
diff changeset
   678
	    attribute boolean is_custom;
02bb8761fcce Initial load
duke
parents:
diff changeset
   679
	    attribute octet flags; // always 0
02bb8761fcce Initial load
duke
parents:
diff changeset
   680
	    attribute boolean has_safe_base;
02bb8761fcce Initial load
duke
parents:
diff changeset
   681
02bb8761fcce Initial load
duke
parents:
diff changeset
   682
	    // read interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   683
	    boolean is_a(in RepositoryId value_id);
02bb8761fcce Initial load
duke
parents:
diff changeset
   684
02bb8761fcce Initial load
duke
parents:
diff changeset
   685
	    struct FullValueDescription {
02bb8761fcce Initial load
duke
parents:
diff changeset
   686
	      Identifier 	name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   687
	      RepositoryId 	id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   688
	      boolean 	is_abstract;
02bb8761fcce Initial load
duke
parents:
diff changeset
   689
	      boolean 	is_custom;
02bb8761fcce Initial load
duke
parents:
diff changeset
   690
	      octet 		flags; // always 0
02bb8761fcce Initial load
duke
parents:
diff changeset
   691
	      RepositoryId 	defined_in;
02bb8761fcce Initial load
duke
parents:
diff changeset
   692
	      VersionSpec 	version;
02bb8761fcce Initial load
duke
parents:
diff changeset
   693
	      OpDescriptionSeq operations;
02bb8761fcce Initial load
duke
parents:
diff changeset
   694
	      AttrDescriptionSeq attributes;
02bb8761fcce Initial load
duke
parents:
diff changeset
   695
	      ValueMemberSeq 	members;
02bb8761fcce Initial load
duke
parents:
diff changeset
   696
	      InitializerSeq 	initializers;
02bb8761fcce Initial load
duke
parents:
diff changeset
   697
	      RepositoryIdSeq supported_interfaces;
02bb8761fcce Initial load
duke
parents:
diff changeset
   698
	      RepositoryIdSeq abstract_base_values;
02bb8761fcce Initial load
duke
parents:
diff changeset
   699
	      boolean 	has_safe_base;
02bb8761fcce Initial load
duke
parents:
diff changeset
   700
	      RepositoryId	base_value;
02bb8761fcce Initial load
duke
parents:
diff changeset
   701
	      TypeCode	type;
02bb8761fcce Initial load
duke
parents:
diff changeset
   702
	  };
02bb8761fcce Initial load
duke
parents:
diff changeset
   703
02bb8761fcce Initial load
duke
parents:
diff changeset
   704
	  FullValueDescription describe_value();
02bb8761fcce Initial load
duke
parents:
diff changeset
   705
02bb8761fcce Initial load
duke
parents:
diff changeset
   706
	  // write interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   707
02bb8761fcce Initial load
duke
parents:
diff changeset
   708
	  ValueMemberDef create_value_member(
02bb8761fcce Initial load
duke
parents:
diff changeset
   709
	      in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   710
	      in Identifier name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   711
	      in VersionSpec version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   712
	      in IDLType type_def,
02bb8761fcce Initial load
duke
parents:
diff changeset
   713
	      in Visibility access
02bb8761fcce Initial load
duke
parents:
diff changeset
   714
	  );
02bb8761fcce Initial load
duke
parents:
diff changeset
   715
02bb8761fcce Initial load
duke
parents:
diff changeset
   716
	  AttributeDef create_attribute(
02bb8761fcce Initial load
duke
parents:
diff changeset
   717
	      in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   718
	      in Identifier   name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   719
	      in VersionSpec  version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   720
	      in IDLType      type,
02bb8761fcce Initial load
duke
parents:
diff changeset
   721
	      in AttributeMode mode
02bb8761fcce Initial load
duke
parents:
diff changeset
   722
	  );
02bb8761fcce Initial load
duke
parents:
diff changeset
   723
02bb8761fcce Initial load
duke
parents:
diff changeset
   724
	  OperationDef create_operation(
02bb8761fcce Initial load
duke
parents:
diff changeset
   725
	      in RepositoryId id,
02bb8761fcce Initial load
duke
parents:
diff changeset
   726
	      in Identifier   name,
02bb8761fcce Initial load
duke
parents:
diff changeset
   727
	      in VersionSpec  version,
02bb8761fcce Initial load
duke
parents:
diff changeset
   728
	      in IDLType      result,
02bb8761fcce Initial load
duke
parents:
diff changeset
   729
	      in OperationMode     mode,
02bb8761fcce Initial load
duke
parents:
diff changeset
   730
	      in ParDescriptionSeq params,
02bb8761fcce Initial load
duke
parents:
diff changeset
   731
	      in ExceptionDefSeq   exceptions,
02bb8761fcce Initial load
duke
parents:
diff changeset
   732
	      in ContextIdSeq contexts
02bb8761fcce Initial load
duke
parents:
diff changeset
   733
	  );
02bb8761fcce Initial load
duke
parents:
diff changeset
   734
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   735
    struct ValueDescription {
02bb8761fcce Initial load
duke
parents:
diff changeset
   736
        Identifier name;
02bb8761fcce Initial load
duke
parents:
diff changeset
   737
        RepositoryId id;
02bb8761fcce Initial load
duke
parents:
diff changeset
   738
        boolean is_abstract;
02bb8761fcce Initial load
duke
parents:
diff changeset
   739
        boolean is_custom;
02bb8761fcce Initial load
duke
parents:
diff changeset
   740
        octet   flags; // always 0
02bb8761fcce Initial load
duke
parents:
diff changeset
   741
        RepositoryId defined_in;
02bb8761fcce Initial load
duke
parents:
diff changeset
   742
        VersionSpec version;
02bb8761fcce Initial load
duke
parents:
diff changeset
   743
        RepositoryIdSeq supported_interfaces;
02bb8761fcce Initial load
duke
parents:
diff changeset
   744
        RepositoryIdSeq abstract_base_values;
02bb8761fcce Initial load
duke
parents:
diff changeset
   745
        boolean has_safe_base;
02bb8761fcce Initial load
duke
parents:
diff changeset
   746
        RepositoryId base_value;
02bb8761fcce Initial load
duke
parents:
diff changeset
   747
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   748
02bb8761fcce Initial load
duke
parents:
diff changeset
   749
    interface ValueBoxDef : IDLType 
02bb8761fcce Initial load
duke
parents:
diff changeset
   750
02bb8761fcce Initial load
duke
parents:
diff changeset
   751
      /** ValueBoxDef is an interface that reresents a value type with
02bb8761fcce Initial load
duke
parents:
diff changeset
   752
	a single data member inside its state section and no
02bb8761fcce Initial load
duke
parents:
diff changeset
   753
	inheritance or methods. For example, when transmitting a
02bb8761fcce Initial load
duke
parents:
diff changeset
   754
	string or sequence as an actual parameter on an interface
02bb8761fcce Initial load
duke
parents:
diff changeset
   755
	operation or as a data member of a value type that is an
02bb8761fcce Initial load
duke
parents:
diff changeset
   756
	actual parameter, it may be important to preserve any sharing
02bb8761fcce Initial load
duke
parents:
diff changeset
   757
	of the string or sequence within the object graph being
02bb8761fcce Initial load
duke
parents:
diff changeset
   758
	transmitted. Because current IDL data types do not preserve
02bb8761fcce Initial load
duke
parents:
diff changeset
   759
	referential integrity in this way, this requirement is
02bb8761fcce Initial load
duke
parents:
diff changeset
   760
	conveniently handled by using a value type. Value types also
02bb8761fcce Initial load
duke
parents:
diff changeset
   761
	support the transmission of nulls (as a distinguished value),
02bb8761fcce Initial load
duke
parents:
diff changeset
   762
	whereas IDL data types such as string and sequence (which are
02bb8761fcce Initial load
duke
parents:
diff changeset
   763
	mapped to empty strings and sequences) do not. The Java to IDL
02bb8761fcce Initial load
duke
parents:
diff changeset
   764
	mapping requires both preservation of referential integrity
02bb8761fcce Initial load
duke
parents:
diff changeset
   765
	and transmission of nulls. Because it would be cumbersome to
02bb8761fcce Initial load
duke
parents:
diff changeset
   766
	require the full IDL syntax for a value type for this specific
02bb8761fcce Initial load
duke
parents:
diff changeset
   767
	usage, this shorthand notation is introduced to cover this use
02bb8761fcce Initial load
duke
parents:
diff changeset
   768
	of value types for simple containment of a single data member.
02bb8761fcce Initial load
duke
parents:
diff changeset
   769
	*/
02bb8761fcce Initial load
duke
parents:
diff changeset
   770
02bb8761fcce Initial load
duke
parents:
diff changeset
   771
    {
02bb8761fcce Initial load
duke
parents:
diff changeset
   772
        attribute IDLType original_type_def;
02bb8761fcce Initial load
duke
parents:
diff changeset
   773
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   774
    
02bb8761fcce Initial load
duke
parents:
diff changeset
   775
    // orbos 98-01-18: Objects By Value -- end
02bb8761fcce Initial load
duke
parents:
diff changeset
   776
149
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
   777
    enum TCKind {
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
   778
        tk_null, tk_void,
4
02bb8761fcce Initial load
duke
parents:
diff changeset
   779
        tk_short, tk_long, tk_ushort, tk_ulong,
149
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
   780
        tk_float, tk_double, tk_boolean, tk_char,
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
   781
        tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref,
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
   782
        tk_struct, tk_union, tk_enum, tk_string,
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
   783
        tk_sequence, tk_array, tk_alias, tk_except,
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
   784
        tk_longlong, tk_ulonglong, tk_longdouble,
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
   785
        tk_wchar, tk_wstring, tk_fixed,
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
   786
        tk_value, tk_value_box,
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
   787
        tk_native,
4e9d88727ae3 6627817: Remove ^M characters in all files (Makefiles too)
ohair
parents: 4
diff changeset
   788
        tk_abstract_interface
4
02bb8761fcce Initial load
duke
parents:
diff changeset
   789
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   790
02bb8761fcce Initial load
duke
parents:
diff changeset
   791
    interface NativeDef : TypedefDef {
02bb8761fcce Initial load
duke
parents:
diff changeset
   792
    };
02bb8761fcce Initial load
duke
parents:
diff changeset
   793
};