Specification of package Corba.Iop







 ========================================================================= --
 ===                                                                   === --
 ===                 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.    === --
 ===                                                                   === --
 ========================================================================= --

 modif{0} : (JM) 15/01/02 : ajout MIOP

with Corba.Sequences ;
with Corba_Ios ;
with TimeBase ;
with Tgx.Ios ;
with Ada.Strings.Bounded ;
with Ada.Unchecked_Deallocation ;
package Corba.Iop is

   type Profile_Id is new Corba.Unsigned_Long;

   Tag_Internet_Iop : constant :=  0 ;

   Tag_Multiple_Components : constant :=  1 ;

    OrbRiver Profile Ids
    Shared memory protocol
   Tag_Memory_Iop : constant := 16#54475800# ;  "TGX^@"
    Multicast protocol
   Tag_Multicast_Iop : constant := 3 ;  OMG assigned
    Multicast shared memory protocol
   Tag_Multi_Memory_Iop : constant := 16#54475802# ;  "TGX^B"
    SSL transport
   Tag_SSL_Iop : constant := 16#54475803# ;  "TGX^C"
    Green Hills connection	
   Tag_GHS_Iop : constant := 16#54475804# ;  "TGX^D"

   Tgx_Tag_Group      : constant := 39 ;  OMG assigned
   Tgx_Tag_Group_Iiop : constant := 40 ;  OMG assigned

   type Version is
   record
      Major : Corba.Octet := 1 ;
      Minor : Corba.Octet := 0;
   end record ;
   for Version use
   record
      major at 0 range 0 .. 7 ;
      minor at 0 range 8 .. 15 ;
   end record ;
   for Version'size use 16 ;

   type Iiop_Profile_Body_1_0 is
   record
      Iiop_Version : Version;
      Host : Corba.String;
      Port : Corba.Unsigned_Short;
      Object_Key : Corba_Ios.Controlled_Stream;
   end record;

   type Iiop_Profile_Body_1_2 is
   record
      Iiop_Version : Version;
      Host : Corba.String;
      Port : Corba.Unsigned_Short;
      Object_Key : Corba_Ios.Controlled_Stream;
      Components : Corba_Ios.Controlled_Stream;
   end record;

    modif{0} : pour Miop
   type Miop_Profile_Body_1_0 is
   record
      Miop_Version : Version;
      Addr : Corba.String;
      Port : Corba.Unsigned_Short;
      Components : Corba_Ios.Controlled_Stream;
   end record;
    end_{0}

   type Tagged_Profile is
   record
      Tag : Profile_Id;
      Profile_Data : Corba_Ios.Controlled_Stream;
   end record;

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

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

   package Idl_Sequence_TaggedProfile is new Corba.Sequences.Unbounded (Tagged_Profile);

   type IOR_Profiles_Sequence is new Idl_Sequence_TaggedProfile.Sequence ;
   Null_IOR_Profiles : constant IOR_Profiles_Sequence :=
      IOR_Profiles_Sequence (Idl_Sequence_TaggedProfile.Null_Sequence) ;

   type IOR is
   record
      Type_Id : Corba.String;
      Profiles : IOR_Profiles_Sequence;
   end record;

   type Component_Id is new Corba.Unsigned_Long;

   type Tagged_Component is
   record
      Tag : Component_Id;
      Component_Data : Corba_Ios.Controlled_Stream;
   end record;

    modif{0} : ajout MIOP
    use subtype because of Apex 4.0 bug when calling To_Long_Long
    type Object_Group_Id is new Corba.Long_Long;
   subtype Object_Group_Id is Corba.Long_Long;

   type Group_Info is
   record
      Component_Version : Version;
      Group_Domain_Id   : Corba.String;
      Group_Id          : Object_Group_Id;
      Group_Ref_Version : Corba.Unsigned_Long := 0 ;
   end record;

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

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

    end_{0}

   Tag_Orb_Type : constant Component_Id :=  0 ;
    OrbRiver Orb types
   OrbRiver : constant Corba.Unsigned_Long := 16#54475800# ;  Mask for all
    Ada implementation
   OrbRiver_Ada : constant Corba.Unsigned_Long := 16#54475800# ;  "TGX^@"
    C++ implementation
   OrbRiver_Cpp : constant Corba.Unsigned_Long := 16#54475801# ;  "TGX^A"
    Java implementation
   OrbRiver_Java : constant Corba.Unsigned_Long := 16#54475802# ;  "TGX^B"
    OrbAda Critical
   OrbRiver_Critical : constant Corba.Unsigned_Long := 16#54475803# ;  "TGX^C"

   Tag_Code_Sets : constant Component_Id := 1 ;
   Tag_Policies : constant Component_Id := 2 ;
   Tag_Alternate_Iiop_Address : constant Component_Id := 3 ;
   Tag_Complete_Object_Key : constant Component_Id := 5 ;
   Tag_Endpoint_Id_Position : constant Component_Id := 6 ;
   Tag_Location_Policy : constant Component_Id := 12 ;
   Tag_Association_Options : constant Component_Id := 13 ;
   Tag_Sec_Name : constant Component_Id := 14 ;
   Tag_Spkm_1_Sec_Mech : constant Component_Id := 15 ;
   Tag_Spkm_2_Sec_Mech : constant Component_Id := 16 ;
   Tag_Kerberos_V5_Sec_Mech : constant Component_Id := 17 ;
   Tag_Csi_Ecma_Secret_Sec_Mech : constant Component_Id := 18 ;
   Tag_Csi_Ecma_Hybrid_Sec_Mech : constant Component_Id := 19 ;
   Tag_Ssl_Sec_Trans : constant Component_Id := 20 ;
   Tag_Csi_Ecma_Public_Sec_Mech : constant Component_Id := 21 ;
   Tag_Generic_Sec_Mech : constant Component_Id := 22 ;
   TAG_FIREWALL_TRANS : constant Component_Id := 23 ;
   TAG_SCCP_CONTACT_INFO : constant Component_Id := 24 ;
   Tag_Java_Codebase : constant Component_Id := 25 ;
   TAG_TRANSACTION_POLICY : constant Component_Id := 26 ;
   TAG_FT_GROUP : constant Component_Id := 27 ;
   TAG_FT_PRIMARY : constant Component_Id := 28 ;
   TAG_FT_HEARTBEAT_ENABLED : constant Component_Id := 29 ;
   TAG_MESSAGE_ROUTERS : constant Component_Id := 30;
   TAG_OTS_POLICY : constant Component_Id := 31 ;
   TAG_INV_POLICY : constant Component_Id := 32 ;
   TAG_CSI_SEC_MECH_LIST : constant Component_Id := 33 ;
   TAG_NULL_TAG : constant Component_Id := 34 ;
   TAG_SECIOP_SEC_TRANS : constant Component_Id := 35 ;
   TAG_TLS_SEC_TRANS : constant Component_Id := 36 ;
   TAG_ACTIVITY_POLICY : constant Component_Id := 37 ;
   TAG_RMI_CUSTOM_MAX_STREAM_FORMAT : constant Component_Id := 38 ;
      
   Tag_Dce_String_Binding : constant Component_Id := 100 ;
   Tag_Dce_Binding_Name : constant Component_Id := 101 ;
   Tag_Dce_No_Pipes : constant Component_Id := 102 ;
   Tag_Dce_Sec_Mech : constant Component_Id := 103 ;
   TAG_INET_SEC_TRANS : constant Component_Id := 123 ;
    modif{0} : pour MIOP, valeurs attribuees par l'OMG ACU
   Tag_Uipmc      : constant Profile_Id := Tag_Multicast_Iop ;  TBD
   Tag_Group      : constant Component_Id := Tgx_Tag_Group ;
   Tag_Group_Iiop : constant Component_Id := Tgx_Tag_Group_Iiop ;
    end_{0}

   type Request_Id is new Corba.Unsigned_Long ;

   Max_Request : constant := 2 ** 21 - 1 ;

   type Service_Id is new Corba.Unsigned_Long ;

   Transaction_Service : constant Service_Id := 0 ;
   Code_Sets : constant Service_Id :=  1 ;
   Chain_Bypass_Check : constant Service_Id :=  2 ;
   Chain_Bypass_Info : constant Service_Id :=  3 ;
   Logical_Thread_Id : constant Service_Id :=  4 ;
   Bi_Dir_Iiop : constant Service_Id :=  5 ;
   Sending_Context_Run_Time : constant Service_Id :=  6 ;
   Invocation_Policies : constant Service_Id :=  7 ;
   Forwarded_Identity : constant Service_Id :=  8 ;
   Unknown_Exception_Info : constant Service_Id :=  9 ;
   RTCorbaPriority : constant Service_Id := 10 ;
   RTCorbaPriorityRange : constant Service_Id := 11 ;
   FT_GROUP_VERSION : constant Service_Id := 12 ;
   FT_REQUEST : constant Service_Id := 13 ;
   ExceptionDetailMessage : constant Service_Id := 14 ;
   SecurityAttributeService : constant Service_Id := 15;
   ActivityService : constant Service_Id := 16 ;
   RMICustomMaxStreamFormat : constant Service_Id := 17 ;

    RepositoryId of the object
   Tgx_Type_Id : constant Service_Id := 16#54475800# ;  "TGX^@"

   type Msg_Type is ( Request, Reply, Cancel_Request, Locate_Request,
                      Locate_Reply, Close_Connection, Message_Error, Fragment) ;

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

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

   type Reply_Status_Type is ( No_Exception, User_Exception, System_Exception,
                               Location_Forward, Location_Forward_Perm,
                               Needs_Addressing_Mode) ;

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

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

   type Locate_Status_Type is ( Unknown_Object, Object_Here, Object_Forward,
                                Object_Forward_Perm, Loc_System_Exception,
                                Loc_Needs_Addressing_Mode) ;

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

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

   type Message_Header is
   record
      Magic        : Standard.String (1 .. 4) := "GIOP" ;
      GIOP_Version : Version := (1, 0) ;
      Flags        : Corba.Octet := Boolean'pos (Corba_Ios.Is_Little_Endian) ;
      Message_Type : Msg_Type := Message_Error ;
      Message_Size : Corba.Long := 0 ;
   end record ;

   for Message_Header use
   record
      Magic        at 0 range  0 .. 31 ;
      GIOP_Version at 0 range 32 .. 47 ;
      Flags        at 0 range 48 .. 55 ;
      Message_Type at 0 range 56 .. 63 ;
      Message_Size at 0 range 64 .. 95 ;
   end record ;
   for Message_Header'size use 96 ;

   Message_Header_Size : constant Corba_Ios.Stream_Element_Count :=
      Corba_Ios.Stream_Element_Count (Message_Header'size / 8) ;
   Byte_Order_Byte : constant := 7 ;
   Fragment_Flag : constant:= 2 ;

    modif{0} : MIOP prepends a header on each GIOP request
   type T_Tgx_Unique_Id is
   record
      Hdr_Size       : Corba.Long := 12;
      Sender_Ip_Addr : Corba.Long ;
      Reserved       : Corba.Unsigned_Short := 0;
      Sender_Port_Nb : Corba.Unsigned_Short;
      Req_Id         : Request_Id;
   end record;

   for T_Tgx_Unique_Id use
   record
      Hdr_Size       at 0 range   0 ..  31 ;
      Sender_Ip_Addr at 0 range  32 ..  63 ;
      Reserved       at 0 range  64 ..  79 ;   
      Sender_Port_Nb at 0 range  80 ..  95 ;
      Req_Id         at 0 range  96 .. 127 ;
   end record;
   for T_Tgx_Unique_Id'size use 128 ;

   type Miop_Packet_Header_1_0 is
   record
      Magic             : Standard.String (1 .. 4) := "MIOP" ;
      MIOP_Version      : Corba.Octet := 2#0001_0000# ;
      Flags             : Corba.Octet := Boolean'pos (Corba_Ios.Is_Little_Endian) ;
      Length            : Corba.Unsigned_Short;
      Number            : Corba.Unsigned_Long;
      Number_of_Packets : Corba.Unsigned_Long;
       Used to match up MIOP packet fragments
       that should be reassemble together : dont' exceed 252 bytes
       Tgx UniqueId : Sender_Id (4 bytes) + Port Number (2 bytes)
       + Request_Id (4 bytes) + Reserved (2 bytes)
      Unique_Id         :  T_Tgx_Unique_Id; 
   end record ;
   for Miop_Packet_Header_1_0  use
   record
      Magic             at 0 range  0 .. 31 ;
      MIOP_Version      at 0 range 32 .. 39 ;
      Flags             at 0 range 40 .. 47 ;
      Length            at 0 range 48 .. 63 ;
      Number            at 0 range 64 .. 95 ;
      Number_of_Packets at 0 range 96 .. 127 ;
      Unique_Id         at 0 range 128 .. 255 ;
   end record ;
   for Miop_Packet_Header_1_0'size use 256 ;

    Must be multiple of 8:
   Miop_Packet_Header_Size : constant Corba_Ios.Stream_Element_Count :=
      Corba_Ios.Stream_Element_Count (Miop_Packet_Header_1_0'size / 8) ;
    end_{0}

   type Service_Context is
   record
      Context_Id   : Service_Id ;
      Context_Data : Corba_Ios.Controlled_Stream;
   end record ;

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

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

   package Idl_Sequence_Service_Context is new
      Corba.Sequences.Unbounded (Service_Context);

   type Service_Context_List is new Idl_Sequence_Service_Context.Sequence ;
   Null_Service_Context_List : constant Service_Context_List :=
      Service_Context_List (Idl_Sequence_Service_Context.Null_Sequence) ;

   subtype Ref_Mask is Corba.Octet ;
   Full_Poa       : constant Ref_Mask := 1 ;
   Full_Object_Id : constant Ref_Mask := 2 ;
   Ptr_4          : constant Ref_Mask := 4 ;
   Ptr_8          : constant Ref_Mask := 8 ;
   Intf           : constant Ref_Mask := 16 ;
   Poa_Date       : constant Ref_Mask := 32 ;
   RT_Priority    : constant Ref_Mask := 64 ;
   Obj_Ptr        : constant Ref_Mask := 128 ;

   type Local_Ref is
   record
      Obj_Id    : Corba.Object_Identity := 0 ;
      Orb       : Corba.Orb_Identity := 0 ;
      Poa       : Corba.Poa_Signature := 0 ;
      Service   : Corba.Service_Identity := 0 ;
      Serial    : Corba.Unsigned_Short := 0 ;
      Mask      : Ref_Mask := 0 ;
      Level     : Corba.Octet := 0 ;
   end record ;

   Null_Local_Ref : constant Local_Ref := (0, 0, 0, 0, 0, 0, 0);

   type Remote_Info is
   record
       Object key bounds inside the Ior stream
      First   : Corba_Ios.Stream_Element_Count := 0 ;
      Last    : Corba_Ios.Stream_Element_Count := 0 ;
       IIOP parameters index in the Ior stream
      Iop     : Corba_Ios.Stream_Element_Count := 0 ;
      Iop_V   : Corba.Unsigned_Short ;  GIOP version supported
       Local parameters index in the Ior stream (OrbRiver references only)
      Local   : Corba_Ios.Stream_Element_Count := 0 ;
      ProfileId
      Profile : Profile_Id := 0 ;
       Orb and service for requests
      Orb     : Corba.Orb_Identity := 0 ;
      Service : Corba.Service_Identity := 0 ;
   end record ;

   Null_Remote_Info : constant Remote_Info := (0, 0, 0, 0, 0, 0, 0, 0) ;


   Null_UtcT : constant TimeBase.UtcT := (TimeBase.Null_TimeT, 0 , 0, 0) ;

    CORBA Messaging policies
   type Reception_Mode is (Sync_Mode, Async_Mode, Poll_Mode, Timeout_Mode) ;

   type Priority_Band is
   record
      Low       : Short := 0 ;
      High      : Short := Short'last ;
      Service   : Service_Identity := 0 ;  Service of the band
   end record ;
   type Priority_Band_Array is array (Positive range <>) of Priority_Band ;
   type Priority_Bands is access all Priority_Band_Array ;

   type Policy_Info is
   record
      Active       : Unsigned_Long := 0 ;  Active policies mask
      Rebind       : Short := 0 ;  TRANSPARENT
      Sync         : Short := 1 ;  SYNC_WITH_TRANSPORT
      Current_Time : TimeBase.TimeT := TimeBase.Null_TimeT ;
      Req_Start    : TimeBase.UtcT := Null_UtcT ;
      Req_End      : TimeBase.UtcT := Null_UtcT ;
      Rep_Start    : TimeBase.UtcT := Null_UtcT ;
      Rep_End      : TimeBase.UtcT := Null_UtcT ;
      Req_RTTO     : TimeBase.UtcT := Null_UtcT ;
      Rep_RTTO     : TimeBase.UtcT := Null_UtcT ;
      Server_Set   : Boolean := False ;
      Client_Model : Boolean := True ;
      Privete      : Boolean := False ;
      Bi_Dir       : Boolean := False ;
      Priority     : Short := -1 ;
      Bands        : Priority_Bands ;
   end record ;
   Null_Policy_Info : constant Policy_Info := ( Active       => 0,
                                                Rebind       => 0,
                                                Sync         => 1,
                                                Current_Time => TimeBase.Null_TimeT,
                                                Req_Start    => Null_UtcT,
                                                Req_End      => Null_UtcT,
                                                Rep_Start    => Null_UtcT,
                                                Rep_End      => Null_UtcT,
                                                Req_RTTO     => Null_UtcT,
                                                Rep_RTTO     => Null_UtcT,
                                                Server_Set   => False,
                                                Client_Model => True,
                                                Privete      => False,
                                                Bi_Dir       => False,
                                                Priority     => 0,
                                                Bands        => null) ;

    Active policies mask constants
   Rebind_Mode    : constant := 1 ;
   Sync_Scope     : constant := 2 ;
   Req_Start_Time : constant := 4 ;
   Req_End_Time   : constant := 8 ;
   Rep_Start_Time : constant := 16 ;
   Rep_End_Time   : constant := 32 ;
   Rel_Rq_Timeout : constant := 64 ;
   Rel_Rt_Timeout : constant := 128 ;
   Req_Priority   : constant := 256 ;
   Req_Bands      : constant := 512 ;
   Bi_Dir_Mode    : constant := 1024 ;

   Has_Time       : constant := Req_Start_Time + Req_End_Time +
      Rep_Start_Time + Rep_End_Time +
      Rel_Rq_Timeout + Rel_Rt_Timeout ;

   type String_Constant is access constant Standard.String ;

   type Impl_Location is (Local, Value, Collocated, Remote, Foreign) ;

    used by POA 
   type IOR_Info ;
   type IOR_Info_Ptr is access all IOR_Info ;
   type IOR_Info is
   record
      Ref_Count : Natural := 0 ;
      Location  : Impl_Location := Collocated ;
      Remote    : Remote_Info := Null_Remote_Info ;
      Local     : Local_Ref := Null_Local_Ref ;
      Policies  : Policy_Info ;
      Ior       : Corba_Ios.Stream_Data;
      Channel   : Tgx.Ios.Io_Connection_Access ;  Channel to the object
      Alt       : IOR_Info_Ptr ;  Alternate profile or reference
   end record;

   procedure Free is new Ada.Unchecked_Deallocation
      (Object => IOR_Info, Name => IOR_Info_Ptr) ;

    Finalization procedure, called when Ref_Count becomes 0
   procedure Finalize (Self : access IOR_Info) ;

   Null_IOR_Info : constant IOR_Info := ( Ref_Count => 0,
                                          Location  => Local,
                                          Remote    => Null_Remote_Info,
                                          Local     => Null_Local_Ref,
                                          Policies  => Null_Policy_Info,
                                          Ior       => null,
                                          Channel   => null,
                                          Alt       => null ) ;

   subtype Addressing_Disposition is Corba.Short;

   Key_Addr : constant Addressing_Disposition :=  0 ;
   Profile_Addr : constant Addressing_Disposition :=  1 ;
   Reference_Addr : constant Addressing_Disposition :=  2 ;

   type IOR_Addressing_Info is
   record
      Profile  : Corba.Unsigned_Long;
      Ior_Data : IOR;
   end record;

   type Target_Address (Switch : Addressing_Disposition := Key_Addr ) is 
   record
      case Switch is
      when Key_Addr => 
         Object_Key : Corba_Ios.Controlled_Stream;
      when Profile_Addr => 
         Profile : Tagged_Profile;
      when Reference_Addr => 
         Ior : IOR_Addressing_Info;
      when others => null ;
      end case;
   end record;

   type Reserved_Array is array (0 .. 2) of Corba.Octet ;

   type Request_Header_1_2 is
   record
      Id : Request_Id;
      Response_Flags : Corba.Octet;
      Reserved : Reserved_Array ;
      Target : Target_Address;
      Operation : Corba.String;
      Service_Context : Service_Context_List;
   end record;

    Used by POA to build a request from the received stream
   type Request_Header is
   record
      Id : Request_Id;
      Response_Flags : Corba.Octet;
      Target : Local_Ref := Null_Local_Ref ;
      Key_Length : Corba_Ios.Stream_Element_Offset;
      Key : Corba_Ios.Stream_Element_Offset ;
      Extra_Swap : Boolean ;
      Is_Url : Boolean ;
      Extra : Corba_Ios.Stream_Element_Offset ;
      Obj : Corba_Ios.Stream_Element_Offset ;
      Operation_Length : Natural;
      Operation : Corba_Ios.Stream_Element_Offset ;
      Context_Number : Natural ;
      Contexts : Corba_Ios.Stream_Element_Offset ;
      Info : Natural ;
      Req_Priority : Short := -1 ;
      Key_Priority : Short := -1 ;
   end record;

   type Reply_Header_1_0 is
   record
      Contexts     : Service_Context_List := Null_Service_Context_List ;
      Id           : Request_Id ;
      Reply_Status : Reply_Status_Type ;
   end record ;

   type Reply_Header is
   record
      Id           : Request_Id ;
      Reply_Status : Reply_Status_Type ;
      Contexts     : Service_Context_List := Null_Service_Context_List ;
   end record ;

   type Cancel_Request_Header is
   record
      Id : Request_Id ;
   end record ;

   type Locate_Request_Header is
   record
      Id         : Request_Id ;
      Object_Key : Corba_Ios.Controlled_Stream ;
   end record ;

   type Locate_Request_Header_1_2 is
   record
      Id : Request_Id;
      Target : Target_Address;
   end record;

   type Locate_Reply_Header is
   record
      Id            : Request_Id ;
      Locate_Status : Locate_Status_Type ;
   end record ;

   type Fragment_Header is
   record
      Magic        : Standard.String (1 .. 4) := "GIOP" ;
      GIOP_Version : Version := (1, 0) ;
      Flags        : Corba.Octet := Boolean'pos (Corba_Ios.Is_Little_Endian) ;
      Message_Type : Msg_Type := Message_Error ;
      Message_Size : Corba.Long := 0 ;
      Id           : Request_Id;
   end record ;

   for Fragment_Header use
   record
      Magic        at 0 range  0 .. 31 ;
      GIOP_Version at 0 range 32 .. 47 ;
      Flags        at 0 range 48 .. 55 ;
      Message_Type at 0 range 56 .. 63 ;
      Message_Size at 0 range 64 .. 95 ;
      Id           at 0 range 96 .. 127 ;
   end record ;
   for Fragment_Header'size use 128 ;

   Fragment_Header_Size : constant Corba_Ios.Stream_Element_Count :=
      Corba_Ios.Stream_Element_Count (Fragment_Header'size / 8) ;


    ==============================
    OrbRiver exception minor codes
    ==============================

   VMCID_null : constant := 16#54475800# ;  "TGX^@"
   VMCID_Non_Corba_Exception : constant := 16#54475801# ;  "TGX^A"

    Obj_Adapter exception minor codes
   VMCID_POA_Being_Destroyed : constant := 16#54475802# ;  "TGX^B"
   VMCID_POA_No_Default_Servant : constant := 16#54475803# ;  "TGX^C"
   VMCID_POA_No_Servant_Manager : constant := 16#54475804# ;  "TGX^D"
   VMCID_POA_Bad_Servant_Manager : constant := 16#54475805# ;  "TGX^E"
   VMCID_POA_Inactive : constant := 16#54475806# ;  "TGX^F"

    Bad_Inv_Order exception minor codes
   VMCID_POA_Wait_Destroy_In_Invoke : constant := 16#54475807# ;  "TGX^G"
   VMCID_POA_Servant_Manager_Set : constant := 16#54475808# ;  "TGX^H"
   VMCID_POA_Wait_Deactivate_In_Invoke : constant := 16#54475809# ;  "TGX^I"

    Object_Not_Exist exception minor codes
   VMCID_POA_Not_Found : constant := 16#5447580A# ;  "TGX^J"
   VMCID_Object_Not_Found : constant := 16#5447580B# ;  "TGX^K"
   VMCID_Object_Not_Located : constant := 16#5447580C# ;  "TGX^L"

    Transient exception minor codes
   VMCID_POA_Discarding : constant := 16#5447580D# ;  "TGX^M"

    modif{0} : ajout MIOP
    Miop Url exception minor codes
   VMCID_Bad_Port_Number            : constant := 16#54475820# ;    "TGX "
   VMCID_Bad_Miop_Version_Nb        : constant := 16#54475821# ;    "TGX!"
   VMCID_Bad_Grp_Cpnent_Version_Nb  : constant := 16#54475822# ;    "TGX""
   VMCID_Bad_Obj_Group_Id           : constant := 16#54475823# ;    "TGX#"
   VMCID_Bad_Obj_Grp_Ref_Version    : constant := 16#54475824# ;    "TGX$"
   VMCID_Bad_ClassD_Ip_Addr         : constant := 16#54475825# ;    "TGX%"
   VMCID_Bad_Miop_Prot_Addr         : constant := 16#54475826# ;    "TGX&"
   VMCID_Bad_Miop_Url               : constant := 16#54475827# ;    "TGX'"
   VMCID_Miop_Emission_Open_Error   : constant := 16#54475828# ;    "TGX("
   VMCID_Miop_Emission_Write_Error  : constant := 16#54475829# ;    "TGX)"
   VMCID_Miop_Reception_Open_Error  : constant := 16#5447582A# ;    "TGX*"
   VMCID_Miop_Reception_Read_Error  : constant := 16#5447582B# ;    "TGX+"
   VMCID_Miop_Bad_Data_Size         : constant := 16#5447582C# ;    "TGX,"
    end_{0}

    Messaging minor codes
   VMCID_Messaging_Not_Initialized     : constant := 16#5447582D# ;    "TGX-"
   VMCID_Messaging_Request_Start_Time  : constant := 16#5447582E# ;    "TGX."
   VMCID_Messaging_Request_End_Time    : constant := 16#5447582F# ;    "TGX/"
   VMCID_Messaging_Reply_Start_Time    : constant := 16#54475830# ;    "TGX0"
   VMCID_Messaging_Reply_End_Time      : constant := 16#54475831# ;    "TGX1"
   VMCID_Messaging_Relative_Request    : constant := 16#54475832# ;    "TGX2"
   VMCID_Messaging_Relative_Roundtrip  : constant := 16#54475833# ;    "TGX3"
   VMCID_Policy_Factory                : constant := 16#54475834# ;    "TGX4"

    RTCORBA minor codes
   VMCID_RTCORBA_Not_Initialized       : constant := 16#54475835# ;    "TGX5"
   VMCID_RTCORBA_Policy_Error          : constant := 16#54475836# ;    "TGX6"
   VMCID_RTCORBA_No_Matching_Lane      : constant := 16#54475837# ;    "TGX7"
   VMCID_RTCORBA_Request_Refused       : constant := 16#54475838# ;    "TGX8"

end Corba.Iop ;



List of definition uses










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