Specification of package Corba







 ========================================================================= --
 ===                                                                   === --
 ===                 Top Graph'X CORBA Implementation                  === --
 ===                                                                   === --
 ===                 Copyright (c) 1996, Top Graph'X.                  === --
 ===                                                                   === --
 ===                     --- Copyright Notice ---                      === --
 ===                                                                   === --
 ===    This software is protected as an unpublished work under the    === --
 ===     Copyright Act of 1976.  All rights reserved.  Top Graph'X.    === --
 ===                                                                   === --
 ========================================================================= --
with System ;
with Ada.Exceptions;
with Ada.Strings.Unbounded;
with Ada.Strings.Wide_Unbounded;
with Ada.Unchecked_Conversion ;

with Tgx.Named_Data ;

with Corba_Ios ;
pragma Elaborate_All (Corba_Ios) ;
pragma Elaborate_All (Ada.Strings.Unbounded) ;
pragma Elaborate_All (Ada.Strings.Wide_Unbounded) ;
package Corba is

   
    IDL Data Types
   
   subtype Boolean is Standard.Boolean;
   subtype Char is Standard.Character;
   subtype Wchar is Standard.Wide_Character;
   type Short is range -2**15 .. 2**15 - 1;
   for Short'size use 16 ;
   type Unsigned_Short is mod 2**16;
   for Unsigned_Short'size use 16 ;
   type Long is range -2**31 .. 2**31 - 1;
   type Unsigned_Long is mod 2**32;

   type Long_Long is private;

   function To_Long_Long (High : in Long ; Low : in Unsigned_Long)
      return Long_Long;

   function To_Long (N : in Long_Long) return Long;

   function "<" (Left, Right : in Long_Long) return Boolean;

   function "<=" (Left, Right : in Long_Long) return Boolean;

   function ">" (Left, Right : in Long_Long) return Boolean;

   function ">=" (Left, Right : in Long_Long) return Boolean;

   function "+" (Left, Right : in Long_Long) return Long_Long;

   function "+" (Left : in Long_Long; Right : in Long) return Long_Long;

   function "+" (Left : in Long; Right : in Long_Long) return Long_Long;

   function "-" (N : in Long_Long) return Long_Long;

   function "-" (Left, Right : in Long_Long) return Long_Long;

   function "-" (Left : in Long_Long; Right : in Long) return Long_Long;

   function "*" (Left, Right : in Long_Long) return Long_Long;

   function "*" (Left : in Long_Long; Right : in Long) return Long_Long;

   function "*" (Left : in Long; Right : in Long_Long) return Long_Long;

   function "/" (Left, Right : in Long_Long) return Long_Long;

   function "/" (Left : in Long_Long; Right : in Long) return Long_Long;

   function "mod" (Left, Right : in Long_Long) return Long_Long;

   function "mod" (Left : in Long_Long; Right : in Long) return Long;

   function "abs" (N : in Long_Long) return Long_Long;

   function LL_Image (N : in Long_Long) return Standard.String;

   function LL_Value (N : in Standard.String) return Long_Long;

   Zero : constant Long_Long ;

   One : constant Long_Long;

   Max_Long_Long : constant Long_Long;

   Min_Long_Long : constant Long_Long;

   type Unsigned_Long_Long is private;

   function To_Unsigned_Long_Long
      ( High : in Unsigned_Long ;
        Low  : in Unsigned_Long) return Unsigned_Long_Long;

   function To_Unsigned_Long (N : in Unsigned_Long_Long) return Unsigned_Long;

   function "<" (Left,Right : in Unsigned_Long_Long) return Boolean;

   function "<=" (Left,Right : in Unsigned_Long_Long) return Boolean;

   function ">" (Left,Right : in Unsigned_Long_Long) return Boolean;

   function ">=" (Left,Right : in Unsigned_Long_Long) return Boolean;

   function "+" (Left, Right : in Unsigned_Long_Long)
      return Unsigned_Long_Long;

   function "+" ( Left : in Unsigned_Long_Long;
                  Right : in Unsigned_Long) return Unsigned_Long_Long;

   function "+" ( Left : in Unsigned_Long;
                  Right : in Unsigned_Long_Long) return Unsigned_Long_Long;

   function "-" (N : in Unsigned_Long_Long) return Unsigned_Long_Long;

   function "-" (Left, Right : in Unsigned_Long_Long)
      return Unsigned_Long_Long;

   function "-" ( Left : in Unsigned_Long_Long;
                  Right : in Unsigned_Long) return Unsigned_Long_Long;

   function "*" (Left, Right : in Unsigned_Long_Long)
      return Unsigned_Long_Long;

   function "*" ( Left : in Unsigned_Long_Long;
                  Right : in Unsigned_Long) return Unsigned_Long_Long;

   function "*" ( Left : in Unsigned_Long;
                  Right : in Unsigned_Long_Long) return Unsigned_Long_Long;

   function "/" (Left, Right : in Unsigned_Long_Long)
      return Unsigned_Long_Long;

   function "/" ( Left : in Unsigned_Long_Long;
                  Right : in Unsigned_Long) return Unsigned_Long_Long;

   function "mod" (Left, Right : in Unsigned_Long_Long)
      return Unsigned_Long_Long;

   function "mod" ( Left : in Unsigned_Long_Long;
                    Right : in Unsigned_Long) return Unsigned_Long;

   function "not" (N : in Unsigned_Long_Long) return Unsigned_Long_Long;

   function "and" ( Left, Right : in Unsigned_Long_Long)
      return Unsigned_Long_Long;

   function "or" ( Left, Right : in Unsigned_Long_Long)
      return Unsigned_Long_Long;

   function "xor" ( Left, Right : in Unsigned_Long_Long)
      return Unsigned_Long_Long;

   function ULL_Image (N : in Unsigned_Long_Long) return Standard.String;

   function ULL_Value (N : in Standard.String) return Unsigned_Long_Long;

   U_Zero : constant Unsigned_Long_Long ;

   U_One : constant Unsigned_Long_Long;

   Max_U_Long_Long : constant Unsigned_Long_Long ;

   function To_Long_Long (N : in Unsigned_Long_Long)
      return Long_Long;

   function To_Unsigned_Long_Long (N : in Long_Long)
      return Unsigned_Long_Long;

   function High (N : in Long_Long) return Long ;
   function Low (N : in Long_Long) return Unsigned_Long ;

   function High (N : in Unsigned_Long_Long) return Unsigned_Long ;
   function Low (N : in Unsigned_Long_Long) return Unsigned_Long ;

   type Float is digits 6;
   type Double is digits 15;
   type Octet is mod 256;
   type String is new Ada.Strings.Unbounded.Unbounded_String;
   type Wide_String is new Ada.Strings.Wide_Unbounded.Unbounded_Wide_String;

   function To_Corba_String (Source : in Standard.String)
      return String renames To_Unbounded_String;
   function To_Standard_String (Source : in String)
      return Standard.String renames To_String;

   function To_Corba_Wide_String (Source : in Standard.Wide_String)
      return Wide_String renames To_Unbounded_Wide_String;
   function To_Standard_Wide_String (Source : in Wide_String)
      return Standard.Wide_String renames To_Wide_String;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Octet ) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Short ) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Long) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Long_Long) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Unsigned_Short) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Unsigned_Long) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Unsigned_Long_Long) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Float) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Double) ;


   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Standard.String) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out String) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Wide_String) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Octet ) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Short ) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Long) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Long_Long) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Unsigned_Short) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Unsigned_Long) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Unsigned_Long_Long) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Float) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Double) ;


   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Standard.String) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in String) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Wide_String) ;

   Null_String : constant String := String
      (Ada.Strings.Unbounded.Null_Unbounded_String);

   Null_Wide_String : constant Wide_String := Wide_String
      (Ada.Strings.Wide_Unbounded.Null_Unbounded_Wide_String);

    Bytes to number conversions
   subtype Two_Bytes_Array is Corba_Ios.Stream_Element_Array (1 .. 2) ;
   subtype Four_Bytes_Array is Corba_Ios.Stream_Element_Array (1 .. 4) ;
   subtype Eight_Bytes_Array is Corba_Ios.Stream_Element_Array (1 .. 8) ;

   function To_Bytes is new Ada.Unchecked_Conversion
      ( Source => Corba_Ios.Stream_Element_Count, Target => Four_Bytes_Array) ;

   function To_Bytes is new Ada.Unchecked_Conversion
      ( Source => Long, Target => Four_Bytes_Array) ;

   function To_Bytes is new Ada.Unchecked_Conversion
      ( Source => Unsigned_Long, Target => Four_Bytes_Array) ;

   function To_Count is new Ada.Unchecked_Conversion
      ( Source => Four_Bytes_Array, Target => Corba_Ios.Stream_Element_Count) ;

   function To_ULong is new Ada.Unchecked_Conversion
      ( Source => Four_Bytes_Array, Target => Unsigned_Long) ;

   function To_Long is new Ada.Unchecked_Conversion
      ( Source => Four_Bytes_Array, Target => Long) ;

   function To_Bytes is new Ada.Unchecked_Conversion
      ( Source => Short, Target => Two_Bytes_Array) ;

   function To_Bytes is new Ada.Unchecked_Conversion
      ( Source => Unsigned_Short, Target => Two_Bytes_Array) ;

   function To_Short is new Ada.Unchecked_Conversion
      ( Source => Two_Bytes_Array, Target => Short) ;

   function To_UShort is new Ada.Unchecked_Conversion
      ( Source => Two_Bytes_Array, Target => Unsigned_Short) ;

   OMGVMCID : constant Unsigned_Long  := 16#4F4D0000#;

   
    Exceptions
   
   type Idl_Exception_Members is abstract tagged null record;
   type Idl_Exception_Members_Access is access all Idl_Exception_Members'class;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Idl_Exception_Members ) is abstract ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Idl_Exception_Members ) is abstract ;

   procedure Get_Members ( X  : in Ada.Exceptions.Exception_Occurrence ;
                           To : out Idl_Exception_Members) is abstract;

   procedure Raise_Exception (Self : in Idl_Exception_Members'class);

   type Completion_Status is (Completed_Yes, Completed_No, Completed_Maybe);
   type Exception_Type is (No_Exception, User_Exception, System_Exception);

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Completion_Status ) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Completion_Status ) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Exception_Type ) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Exception_Type ) ;

   type System_Exception_Members is abstract new Idl_Exception_Members with
   record
      Minor     : Unsigned_Long;
      Completed : Completion_Status;
   end record;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out System_Exception_Members ) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in System_Exception_Members ) ;

   procedure Get_Members
      ( X  : in Ada.Exceptions.Exception_Occurrence ;
        To : out System_Exception_Members) ;

    the unknown exception
   Unknown : exception;
   type Unknown_Members is new System_Exception_Members with null record;
    an invalid parameter was passed
   Bad_Param : exception;
   type Bad_Param_Members is new System_Exception_Members with null record;
    dynamic memory allocation failure
   No_Memory : exception;
   type No_Memory_Members is new System_Exception_Members with null record;
    violated implementation limit
   Imp_Limit : exception;
   type Imp_Limit_Members is new System_Exception_Members with null record;
    communication failure
   Comm_Failure : exception;
   type Comm_Failure_Members is  new System_Exception_Members with null record;
    invalid object reference
   Inv_Objref : exception;
   type Inv_Objref_Members is new System_Exception_Members with null record;
    no permission for attempted op.
   No_Permission : exception;
   type No_Permission_Members is new System_Exception_Members with null record;
    ORB internal error
   Internal : exception;
   type Internal_Members is new System_Exception_Members with null record;
    error marshalling param/result
   Marshal : exception;
   type Marshal_Members is new System_Exception_Members with null record;
    ORB initialization failure
   Initialization_Failure : exception;
   type Initialization_Failure_Members is new System_Exception_Members with null record;
    operation implementation unavailable
   No_Implement : exception;
   type No_Implement_Members is new System_Exception_Members with null record;
    bad typecode
   Bad_Typecode : exception;
   type Bad_Typecode_Members is new System_Exception_Members with null record;
    invalid operation
   Bad_Operation : exception;
   type Bad_Operation_Members is new System_Exception_Members with null record;
    insufficient resources for req.
   No_Resources : exception;
   type No_Resources_Members is new System_Exception_Members with null record;
    response to request not yet available
   No_Response : exception;
   type No_Response_Members is new System_Exception_Members with null record;
    persistent storage failure
   Persist_Store : exception;
   type Persist_Store_Members is new System_Exception_Members with null record;
    routine invocations out of order
   Bad_Inv_Order : exception;
   type Bad_Inv_Order_Members is new System_Exception_Members with null record;
    transient failure - reissue request
   Transient : exception;
   type Transient_Members is new System_Exception_Members with null record;
    cannot free memory
   Free_Mem : exception;
   type Free_Mem_Members is new System_Exception_Members with null record;
    invalid identifier syntax
   Inv_Ident : exception;
   type Inv_Ident_Members is new System_Exception_Members with null record;
    invalid flag was specified
   Inv_Flag : exception;
   type Inv_Flag_Members is new System_Exception_Members with null record;
    error accessing interface repository
   Intf_Repos : exception;
   type Intf_Repos_Members is new System_Exception_Members with null record;
    error processing context object
   Bad_Context : exception;
   type Bad_Context_Members is new System_Exception_Members with null record;
    failure detected by object adapte
   Obj_Adapter : exception;
   type Obj_Adapter_Members is new System_Exception_Members with null record;
    data conversion error
   Data_Conversion : exception;
   type Data_Conversion_Members is new System_Exception_Members with null record;
    object not exist error
   Object_Not_Exist : exception;
   type Object_Not_Exist_Members is new System_Exception_Members with null record;
    required transaction context not present
   Transaction_Required : exception;
   type Transaction_Required_Members is new System_Exception_Members with null record;
    transaction already rolled back or marked for
    rollback, cannot proceed
   Transaction_Rolledback : exception;
   type Transaction_Rolledback_Members is new System_Exception_Members with null record;
    invalid transaction context
   Invalid_Transaction : exception;
   type Invalid_Transaction_Members is new System_Exception_Members with null record;
    invalid policy
   Inv_Policy : exception;
   type Inv_Policy_Members is new System_Exception_Members with null record;
    invalid transaction context
   Codeset_Incompatible : exception;
   type Codeset_Incompatible_Members is new System_Exception_Members with null record;

   Rebind : exception ;  rebind needed
   type Rebind_Members is new System_Exception_Members with null record;

   Timeout : exception ;  operation timed out
   type Timeout_Members is new System_Exception_Members with null record;

   Transaction_Unavailable : exception ;  no transaction
   type Transaction_Unavailable_Members is new System_Exception_Members with null record;

   Transaction_Mode : exception ;  invalid transaction mode
   type Transaction_Mode_Members is new System_Exception_Members with null record;

   Bad_Qos : exception ;  bad quality of service
   type Bad_Qos_Members is new System_Exception_Members with null record;

   Invalid_Activity : exception ;  bad quality of service
   type Invalid_Activity_Members is new System_Exception_Members with null record;

   Activity_Completed : exception ;  bad quality of service
   type Activity_Completed_Members is new System_Exception_Members with null record;

   Activity_Required : exception ;  bad quality of service
   type Activity_Required_Members is new System_Exception_Members with null record;


   type Definitionkind is
      ( Dk_None, Dk_All, Dk_Attribute, Dk_Constant,
        Dk_Exception, Dk_Interface, Dk_Module, Dk_Operation,
        Dk_Typedef, Dk_Alias, Dk_Struct, Dk_Union, Dk_Enum,
        Dk_Primitive, Dk_String, Dk_Sequence, Dk_Array, Dk_Repository,
        Dk_Wstring, Dk_Fixed, Dk_Value, Dk_ValueBox, Dk_ValueMember, Dk_Native,
        Dk_AbstractInterface, Dk_LocalInterface);
   for Definitionkind'size use 32 ;

   type Tckind is
      ( Tk_Null, Tk_Void, Tk_Short, Tk_Long, Tk_Ushort, Tk_Ulong,
        Tk_Float, Tk_Double, Tk_Boolean, Tk_Char, Tk_Octet,
        Tk_Any, Tk_Typecode, Tk_Principal, Tk_Objref, Tk_Struct,
        Tk_Union, Tk_Enum, Tk_String, Tk_Sequence, Tk_Array,
        Tk_Alias, Tk_Except, Tk_Longlong, Tk_Ulonglong,
        Tk_Longdouble, Tk_Wchar, Tk_Wstring, Tk_Fixed,
        Tk_Value, Tk_Value_Box, Tk_Native, Tk_Abstract_Interface,
        Tk_Local_Interface, Tk_Indirect);
   for Tckind'size use 32 ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Tckind ) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Tckind ) ;

   type ValueModifier is new Short;
   Vm_None : constant ValueModifier := 0;
   Vm_Custom : constant ValueModifier := 1;
   Vm_Abstract : constant ValueModifier := 2;
   Vm_Truncatable : constant ValueModifier := 3;

   type Visibility is new Short;
   Private_Member : constant Visibility := 0;
   Public_Member : constant Visibility := 1;

   type Operationmode is (Op_Normal, Op_Oneway);
   for Operationmode'size use 32 ;
   type Parametermode is (Param_In, Param_Out, Param_Inout);
   for Parametermode'size use 32 ;
   type Attributemode is (Attr_Normal, Attr_Readonly);
   for AttributeMode'size use 32 ;

   type Any (Kind : Corba.Tckind := Tk_Null) is private;
   Null_Any : constant Any ;

   type Identifier is new String;
   Null_Identifier : constant Identifier := Identifier (Null_String) ;
   type Scopedname is new String;
   Null_Scopedname : constant Scopedname := Scopedname (Null_String) ;
   type Repositoryid is new String;
   Null_Id : constant Repositoryid := Repositoryid (Null_String) ;
   type Versionspec is new String;
   type Objectid is new String ;

   
    TypeCode
   
   package Typecode is
      TGX : Make Typecode.Object type visible to allow implementation of
      TGX : required operations like Corba.Iterate_Over_Any_Elements

      type Object (Kind : Corba.Tckind := Tk_Null) is
      record
          used when inside Any
         Little : Boolean := Corba_Ios.Is_Little_Endian ;
          aligment of value in Any
         Align      : Corba_Ios.Stream_Element_Count := 1 ;
          Maximum of alignment among all components
         Max_Align  : Corba_Ios.Stream_Element_Count := 1 ;
         case Kind is
         when Tk_Null .. Tk_Principal | Tk_Longlong .. Tk_Wchar =>
            null ;
         when Tk_String | Tk_WString =>
            Max_Length : Unsigned_Long := 0 ;
         when Tk_Fixed =>
            Fixed_Digits : Unsigned_Short := 0 ;
            Fixed_Scale  : Short := 0 ;
         when Tk_Indirect =>
            Offset : Long := 0 ;
         when others =>
            Code : Corba_Ios.Controlled_Stream ;
            Swap : Corba_Ios.Controlled_Stream ;
         end case;
      end record;

      procedure Iop_Read
         ( Stream : access Corba_Ios.Iop_Stream_Type ;
           Item   : out Object ) ;

      procedure Iop_Write
         ( Stream : access Corba_Ios.Iop_Stream_Type ;
           Item   : in Object ) ;

      Bounds  : exception;
      Badkind : exception;

      type Bounds_Members is new Corba.Idl_Exception_Members
         with null record;

      procedure Get_Members ( X  : in Ada.Exceptions.Exception_Occurrence ;
                              To : out Bounds_Members) ;

      procedure Iop_Read
         ( Stream : access Corba_Ios.Iop_Stream_Type ;
           Item   : out Bounds_Members ) ;

      procedure Iop_Write
         ( Stream : access Corba_Ios.Iop_Stream_Type ;
           Item   : in Bounds_Members ) ;

      type Badkind_Members is new Corba.Idl_Exception_Members
         with null record;

      procedure Iop_Read
         ( Stream : access Corba_Ios.Iop_Stream_Type ;
           Item   : out Badkind_Members ) ;

      procedure Iop_Write
         ( Stream : access Corba_Ios.Iop_Stream_Type ;
           Item   : in Badkind_Members ) ;

      procedure Get_Members ( X  : in Ada.Exceptions.Exception_Occurrence ;
                              To : out Badkind_Members) ;

      function Equal (Self : in Object; Tc : in Object) return Corba.Boolean;

      function "=" (Left, Right : in Object) return Boolean renames Equal;

      function Equivalent (Left, Right : in Object) return Boolean;
      function Get_Compact_Typecode (Self : in Object) return Object;

      function Kind (Self : in Object) return Corba.Tckind;

      IDL: for Tk_Objref, Tk_Struct, Tk_Union, Tk_Enum,
      IDL: Tk_Alias, Tk_Value, Tk_Value_Box, Tk_Native,
      IDL: Tk_Abstract_Interface, and Tk_Except
      function Id (Self : in Object) return Corba.RepositoryId ;

      IDL: for Tk_Objref, Tk_Struct, Tk_Union, Tk_Enum,
      IDL: Tk_Alias, Tk_Value, Tk_Value_Box, Tk_Native,
      IDL: Tk_Abstract_Interface, and Tk_Except
      function Name (Self : in Object) return Corba.Identifier ;

      IDL: for Tk_Struct, Tk_Union, Tk_Enum, Tk_Value,
      IDL: Tk_Value_Box, and Tk_Except
      function Member_Count (Self : in Object) return Corba.Unsigned_Long;

      IDL: for Tk_Struct, Tk_Union, Tk_Enum, Tk_Value,
      IDL: Tk_Value_Box, and Tk_Except
      function Member_Name
         ( Self  : in Object ;
           Index : in Corba.Unsigned_Long) return Corba.Identifier ;

      IDL: for Tk_Struct, Tk_Union, Tk_Value, Tk_Value_Box, and Tk_Except
      function Member_Type
         ( Self  : in Object ;
           Index : in Corba.Unsigned_Long) return Object ;

      IDL: for Tk_Union
      function Member_Label
         ( Self  : in Object ;
           Index : in Corba.Unsigned_Long) return Any ;

      IDL: for Tk_Union
      function Discriminator_Type (Self : in Object) return Object ;

      IDL: for Tk_Union
      function Default_Index (Self : in Object) return Corba.Long;

      IDL: for Tk_String, Tk_Sequence, and Tk_Array
      function Length (Self : in Object) return Corba.Unsigned_Long;

      IDL: for Tk_Sequence, Tk_Array, Tk_Value, Tk_Value_Box, and Tk_Alias
      function Content_Type (Self : in Object) return Object ;

      IDL: for Tk_Fixed
      function Fixed_Digits(Self : in Object) return Unsigned_Short;

      IDL: for Tk_Fixed
      function Fixed_Scale(Self : in Object) return Short;

      IDL: for Tk_Value
      function Member_Visibility ( Self  : in Object;
                                   Index : in Unsigned_Long) return Visibility;

      IDL: for Tk_Value
      function Type_Modifier (Self : in Object) return ValueModifier;

      IDL: for Tk_Value
      function Concrete_Base_Type (Self : in Object) return Object;

       To make a Tk_Object typecode
      function Object_Typecode ( Id   : in Repositoryid ;
                                 Name : in Identifier) return Object ;

      function Convert_To_Tc (Bytes : in Corba_Ios.Stream_Element_Array)
         return Object ;

      function Register_Tc (Bytes : in Corba_Ios.Stream_Elements)
         return Boolean ;

      function Get_Tc (R_Id : in Standard.String) return Object ;

      Is_Little_Endian : Boolean renames Corba_Ios.Is_Little_Endian ;

      Tc_Null : constant Object := ( Kind      => Tk_Null,
                                     Little    => Is_Little_Endian,
                                     Align     => 1,
                                     Max_Align => 1) ;
      Tc_Void : constant Object := ( Kind      => Tk_Void,
                                     Little    => Is_Little_Endian,
                                     Align     => 1,
                                     Max_Align => 1) ;
      Tc_Short : constant Object := ( Kind      => Tk_Short,
                                      Little    => Is_Little_Endian,
                                      Align     => 2,
                                      Max_Align => 2) ;
      Tc_Long : constant Object := ( Kind      => Tk_Long,
                                     Little    => Is_Little_Endian,
                                     Align     => 4,
                                     Max_Align => 4) ;
      Tc_Long_Long : constant Object := ( Kind      => Tk_LongLong,
                                          Little    => Is_Little_Endian,
                                          Align     => 8,
                                          Max_Align => 8) ;
      Tc_Ushort : constant Object := ( Kind      => Tk_Ushort,
                                       Little    => Is_Little_Endian,
                                       Align     => 2,
                                       Max_Align => 2) ;
      Tc_Ulong : constant Object := ( Kind      => Tk_Ulong,
                                      Little    => Is_Little_Endian,
                                      Align     => 4,
                                      Max_Align => 4) ;
      Tc_ULong_long : constant Object := ( Kind      => Tk_ULonglong,
                                           Little    => Is_Little_Endian,
                                           Align     => 8,
                                           Max_Align => 8) ;
      Tc_Float : constant Object := ( Kind      => Tk_Float,
                                      Little    => Is_Little_Endian,
                                      Align     => 4,
                                      Max_Align => 4) ;
      Tc_Double : constant Object := ( Kind      => Tk_Double,
                                       Little    => Is_Little_Endian,
                                       Align     => 8,
                                       Max_Align => 8) ;
      Tc_Long_Double : constant Object := ( Kind      => Tk_LongDouble,
                                            Little    => Is_Little_Endian,
                                            Align     => 8,
                                            Max_Align => 8) ;
      Tc_Boolean : constant Object := ( Kind      => Tk_Boolean,
                                        Little    => Is_Little_Endian,
                                        Align     => 1,
                                        Max_Align => 1) ;
      Tc_Char : constant Object := ( Kind      => Tk_Char,
                                     Little    => Is_Little_Endian,
                                     Align     => 1,
                                     Max_Align => 1) ;
      Tc_WChar : constant Object := ( Kind      => Tk_WChar,
                                      Little    => Is_Little_Endian,
                                      Align     => 2,
                                      Max_Align => 2) ;
      Tc_Octet : constant Object := ( Kind      => Tk_Octet,
                                      Little    => Is_Little_Endian,
                                      Align     => 1,
                                      Max_Align => 1) ;
      Tc_Any : constant Object := ( Kind      => Tk_Any,
                                    Little    => Is_Little_Endian,
                                    Align     => 4,
                                    Max_Align => 8) ;
      Tc_Typecode : constant Object := ( Kind       => Tk_Typecode,
                                         Little     => Is_Little_Endian,
                                         Align      => 4,
                                         Max_Align  => 4) ;
      Tc_Principal : constant Object := ( Kind      => Tk_Principal,
                                          Little    => Is_Little_Endian,
                                          Align     => 4,
                                          Max_Align => 4) ;
      Tc_Object : constant Object := ( Kind       => Tk_Objref,
                                       Little     => Is_Little_Endian,
                                       Align      => 4,
                                       Max_Align  => 4,
                                       Code       => Corba_Ios.Null_Controlled_Stream,
                                       Swap       => Corba_Ios.Null_Controlled_Stream) ;
      Tc_String : constant Object := ( Kind       => Tk_String,
                                       Little     => Is_Little_Endian,
                                       Align      => 4,
                                       Max_Align  => 4,
                                       Max_Length => 0) ;
      Tc_WString : constant Object := ( Kind       => Tk_WString,
                                        Little     => Is_Little_Endian,
                                        Align      => 4,
                                        Max_Align  => 4,
                                        Max_Length => 0) ;
   end Typecode;

   function Get_Type (The_Any : in Any) return Typecode.Object;
   function Type_Of (The_Any : in Any) return Typecode.Object  Deprecated
      renames Get_Type;

   function To_Any (From : in Short) return Any;
   function To_Any (From : in Long) return Any;
   function To_Any (From : in Long_Long) return Any;
   function To_Any (From : in Unsigned_Short) return Any;
   function To_Any (From : in Unsigned_Long) return Any;
   function To_Any (From : in Unsigned_Long_Long) return Any;
   function To_Any (From : in Float) return Any;
   function To_Any (From : in Double) return Any;
   function To_Any (From : in Boolean) return Any;
   function To_Any (From : in Char) return Any;
   function To_Any (From : in WChar) return Any;
   function To_Any (From : in Octet) return Any;
   function To_Any (From : in Any) return Any;
   function To_Any (From : in TypeCode.Object) return Any;
   function To_Any (From : in String) return Any;
   function To_Any (From : in Wide_String) return Any;

   function From_Any (From : in Any) return Short;
   function From_Any (From : in Any) return Long;
   function From_Any (From : in Any) return Long_Long;
   function From_Any (From : in Any) return Unsigned_Short;
   function From_Any (From : in Any) return Unsigned_Long;
   function From_Any (From : in Any) return Unsigned_Long_Long;
   function From_Any (From : in Any) return Float;
   function From_Any (From : in Any) return Double;
   function From_Any (From : in Any) return Boolean;
   function From_Any (From : in Any) return Char;
   function From_Any (From : in Any) return WChar;
   function From_Any (From : in Any) return Octet;
   function From_Any (From : in Any) return Any;
   function From_Any (From : in Any) return TypeCode.Object;
   function From_Any (From : in Any) return String;
   function From_Any (From : in Any) return Wide_String;

   function To_Short (From : in Any) return Short renames From_Any;
   function To_Long (From : in Any) return Long renames From_Any;
   function To_Long_Long (From : in Any) return Long_Long renames From_Any;
   function To_Unsigned_Short (From : in Any) return Unsigned_Short
      renames From_Any;
   function To_Unsigned_Long (From : in Any) return Unsigned_Long renames From_Any;
   function To_Unsigned_Long_Long (From : in Any) return Unsigned_Long_Long
      renames From_Any;
   function To_Float (From : in Any) return Float renames From_Any;
   function To_Double (From : in Any) return Double renames From_Any;
   function To_Boolean (From : in Any) return Boolean renames From_Any;
   function To_Char (From : in Any) return Char renames From_Any;
   function To_WChar (From : in Any) return WChar renames From_Any;
   function To_Octet (From : in Any) return Octet renames From_Any;
   function To_TypeCode (From : in Any) return TypeCode.Object renames From_Any;
   function To_String (From : in Any) return String renames From_Any;
   function To_Wide_String (From : in Any) return Wide_String renames From_Any;

   type Flags is new Corba.Unsigned_Long;
   Arg_In    : constant Flags := 1;
   Arg_Out   : constant Flags := 2;
   Arg_Inout : constant Flags := 4;

   type Namedvalue is
   record
      Name      : Identifier;
      Argument  : Any;
      Len       : Long  := 0;  Meaningless
      Arg_Modes : Flags := 0;
   end record;
   type Access_Namedvalue is access all Namedvalue ;

   Out_List_Memory    : constant Flags := 2**3;  CORBA 7.2.1
   In_Copy_Value      : constant Flags := 2**4;  CORBA 7.2.2
   Inv_No_Response    : constant Flags := 2**5;  CORBA 7.3.1
   Inv_Term_On_Err    : constant Flags := 2**6;  Deprecated
   Resp_No_Wait       : constant Flags := 2**7;  Deprecated
   Dependent_List     : constant Flags := 2**8;  CORBA 7.4.2
   Ctx_Restrict_Scope : constant Flags := 2**9;  CORBA 7.6.4
   Ctx_Delete_Descendents : constant Flags := 2**10;  CORBA 7.6.7

    in support of Object interface
   type PolicyType is new Unsigned_Long;
   SecConstruction : constant PolicyType := 11 ;

   type PolicyErrorCode is new Corba.Short;

   Bad_Policy : constant PolicyErrorCode :=  0 ;
   Unsupported_Policy : constant PolicyErrorCode :=  1 ;
   Bad_Policy_Type : constant PolicyErrorCode :=  2 ;
   Bad_Policy_Value : constant PolicyErrorCode :=  3 ;
   Unsupported_Policy_Value : constant PolicyErrorCode :=  4 ;

   PolicyError : exception;
   type PolicyError_Members is new Idl_Exception_Members with 
   record
      reason : PolicyErrorCode;
   end record;

   PolicyError_Id : constant RepositoryId := To_Unbounded_String
   ("IDL:omg.org/CORBA/PolicyError:1.0") ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out PolicyError_Members ) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in PolicyError_Members ) ;

   procedure Get_Members (X  : in Ada.Exceptions.Exception_Occurrence ;
                          To : out PolicyError_Members) ;

   type SetOverrideType is (Set_Override, Add_Override) ;

   type Status is new Corba.Unsigned_Long;

    Standard exception Ids
   Unknown_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/UNKNOWN:1.0") ;

   Bad_Param_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/BAD_PARAM:1.0") ;

   No_Memory_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/NO_MEMORY:1.0") ;

   Imp_Limit_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/IMP_LIMIT:1.0") ;

   Comm_Failure_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/COMM_FAILURE:1.0") ;

   Inv_Objref_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/INV_OBJREF:1.0") ;

   No_Permission_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/NO_PERMISSION:1.0") ;

   Internal_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/INTERNAL:1.0") ;

   Marshal_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/MARSHAL:1.0") ;

   Initialize_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/INITIALIZE:1.0") ;

   No_Implement_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/NO_IMPLEMENT:1.0") ;

   Bad_Typecode_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/BAD_TYPECODE:1.0") ;

   Bad_Operation_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/BAD_OPERATION:1.0") ;

   No_Resources_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/NO_RESOURCES:1.0") ;

   No_Response_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/NO_RESPONSE:1.0") ;

   Persist_Store_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/PERSIST_STORE:1.0") ;

   Bad_Inv_Order_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/BAD_INV_ORDER:1.0") ;

   Transient_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/TRANSIENT:1.0") ;

   Free_Mem_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/FREE_MEM:1.0") ;

   Inv_Ident_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/INV_IDENT:1.0") ;

   Inv_Flag_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/INV_FLAG:1.0") ;

   Intf_Repos_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/INTF_REPOS:1.0") ;

   Bad_Context_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/BAD_CONTEXT:1.0") ;

   Obj_Adapter_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/OBJ_ADAPTER:1.0") ;

   Data_Conversion_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/DATA_CONVERSION:1.0") ;

   Object_Not_Exist_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/OBJECT_NOT_EXIST:1.0") ;

   Transaction_Required_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/TRANSACTION_REQUIRED:1.0") ;

   Transaction_Rolledback_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/TRANSACTION_ROLLEDBACK:1.0") ;

   Invalid_Transaction_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/INVALID_TRANSACTION:1.0") ;

   Inv_Policy_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/INV_POLICY:1.0") ;

   Codeset_Incompatible_Id : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/CODESET_INCOMPATIBLE:1.0") ;

   Rebind_Id  : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/REBIND:1.0") ;

   Timeout_Id  : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/TIMEOUT:1.0") ;

   Transaction_Unavailable_Id  : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/TRANSACTION_UNAVAILABLE:1.0") ;

   Transaction_Mode_Id  : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/TRANSACTION_MODE:1.0") ;

   Bad_Qos_Id  : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/BAD_QOS:1.0") ;

   Invalid_Activity_Id  : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/INVALID_ACTIVITY:1.0") ;

   Activity_Completed_Id  : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/ACTIVITY_COMPLETED:1.0") ;

   Activity_Required_Id  : constant RepositoryId := To_Unbounded_String
      ("IDL:omg.org/CORBA/ACTIVITY_REQUIRED:1.0") ;

      procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Boolean ) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Char ) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out WChar ) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Char ) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in WChar ) ;

   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Boolean ) ;

   type Object_Identity is new Unsigned_Long ;
   type Service_Identity is new Unsigned_Short ;
   type Orb_Identity is new Unsigned_Long ;

   type ServiceType is new Corba.Unsigned_Short;

   Security : constant ServiceType :=  1 ;

   type ServiceOption is new Corba.Unsigned_Long;

   type ServiceDetailType is new Corba.Unsigned_Long;

   type Poa_Signature is new Corba.Unsigned_Long;

   subtype OpaqueValue is System.Address;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type;
        Item   : out AttributeMode);
   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type;
        Item   : in AttributeMode);

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type;
        Item   : out OperationMode);
   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type;
        Item   : in OperationMode);

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type;
        Item   : out ParameterMode);
   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type;
        Item   : in ParameterMode);


   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out SetOverrideType ) ;
   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in SetOverrideType ) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Definitionkind ) ;
   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Definitionkind ) ;

   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Any ) ;
   procedure Iop_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : out Any ;
        Offset : in Corba_Ios.Stream_Element_Offset) ;
   procedure Iop_Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : in Any ) ;

   TGX: To compare repository ids, taking into account differences
        in minor version numbers
   function Is_A (Actual, Formal : in Standard.String) return Boolean ;

   TGX: To register a user exception
   procedure Register_Exception
      ( Tag  : in Standard.String ;
        Name : in Repositoryid ;
        Code : in Corba.Typecode.Object ;
        Id   : in Ada.Exceptions.Exception_Id ;
        Sys  : in Boolean := False ) ;

   TGX: To raise a Corba reply exception
   procedure Store_Members_And_Raise
      ( Is_System : in Boolean ;
        Members   : in Any ;
        Identity  : in Ada.Exceptions.Exception_Id) ;

private
   Is_Little_Endian : Boolean renames Corba_Ios.Is_Little_Endian ;

   type Long_Long is
   record
      Low  : Unsigned_Long ;
      High : Long ;
   end record ;

   for Long_Long use
   record
      Low  at 0 range  0 .. 31;
      High at 0 range 32 .. 63 ;
   end record ;

   type Unsigned_Long_Long is
   record
      Low  : Unsigned_Long ;
      High : Unsigned_Long ;
   end record ;

   for Unsigned_Long_Long use
   record
      Low  at 0 range  0 .. 31;
      High at 0 range 32 .. 63 ;
   end record ;

   function To_Long_Long is new Ada.Unchecked_Conversion
      ( Source => Eight_Bytes_Array, Target => Long_Long) ;

   function To_Bytes is new Ada.Unchecked_Conversion
      ( Source => Long_Long, Target => Eight_Bytes_Array) ;

   Zero : constant Long_Long := (Low => 0, High => 0) ;

   One : constant Long_Long := (Low => 1, High => 0) ;

   Max_Long_Long : constant Long_Long := (Low => 2**32 - 1, High => 2**31 - 1) ;

   Min_Long_Long : constant Long_Long := (Low => 0, High => - 2**31) ;

   U_Zero : constant Unsigned_Long_Long := (Low => 0, High => 0) ;

   U_One : constant Unsigned_Long_Long := (Low => 1, High => 0) ;

   Max_U_Long_Long : constant Unsigned_Long_Long := (Low => 2**32 - 1, High => 2**32 - 1) ;

   procedure Build_Any
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Code   : in Typecode.Object ;
        Item   : in out Any ) ;

   type Any (Kind : Corba.Tckind := Tk_Null) is
   record
      Little  : Boolean := Is_Little_Endian ;
      Start   : Corba_Ios.Stream_Element_Offset := 0 ;
      Type_Of : Typecode.Object (Kind => Kind);
      Data    : Corba_Ios.Controlled_Stream ;
   end record ;

   function Store_Members ( Is_System : in Boolean ;
                            Members   : in Any ;
                            Identity  : in Ada.Exceptions.Exception_Id)
      return Standard.String ;

   procedure Get_Members ( X         : in Ada.Exceptions.Exception_Occurrence ;
                           Is_System : out Boolean ;
                           Members   : in out Any ) ;

   type Exception_Information is
   record
      Is_System : Boolean ;
      Code      : Typecode.Object ;
      Id        : Ada.Exceptions.Exception_Id ;
   end record ;

   Null_Exception_Information : constant Exception_Information :=
      ( Is_System => False,
        Code      => Typecode.Tc_Null,
        Id        => Ada.Exceptions.Null_Id) ;

   type Exception_Description is
   record
      Is_System : Boolean ;
      Code      : Typecode.Object ;
      Id        : Ada.Exceptions.Exception_Id ;
      R_Id      : Repositoryid ;
   end record ;

   Null_Exception_Description : constant Exception_Description :=
      ( Is_System => False,
        Code      => Typecode.Tc_Null,
        Id        => Ada.Exceptions.Null_Id,
        R_Id      => Null_Id) ;

   package Exception_Base is new Tgx.Named_Data
      (Exception_Information, Null_Exception_Information, Repositoryid) ;

   package Exception_Search is new Tgx.Named_Data
      (Exception_Description, Null_Exception_Description, Corba.String) ;

   procedure Register_Exception
      ( Name : in Repositoryid ;
        Code : in Corba.Typecode.Object ;
        Id   : in Ada.Exceptions.Exception_Id ;
        Sys  : in Boolean := False ) ;

    Allow retrieval of exception parameters
   function Get_Type_Code (Name : in Repositoryid) return Typecode.Object;
    With the external tag
   function Get_Type_Code (Name : in Standard.String) return Typecode.Object;

    With the external tag
   function Get_Exception_Repository_Id (Name : in Standard.String)
      return RepositoryId ;

    so that it becomes possible to raise the corresponding Ada exception
   function Get_Exception_Id (Name : in Repositoryid)
      return Ada.Exceptions.Exception_Id;
    With the external tag
   function Get_Exception_Id (Name : in Standard.String)
      return Ada.Exceptions.Exception_Id;

   Null_Any : constant Any := ( Kind => Tk_Null,
                                Little => Is_Little_Endian,
                                Start  => 0,
                                Type_Of => ( Kind      => Tk_Null,
                                             Little    => Is_Little_Endian,
                                             Align     => 1,
                                             Max_Align => 1),
                                Data => Corba_Ios.Null_Controlled_Stream ) ;

end Corba;



List of definition uses










This page was generated by PrismTech's ada2html on Friday Mai 12 2006 16:18