Specification of package Corba.Portableserver







 ========================================================================= --
 ===                                                                   === --
 ===                 Top Graph'X CORBA Implementation                  === --
 ===                                                                   === --
 ===                 Copyright (c) 2000, 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.    === --
 ===                                                                   === --
 ========================================================================= --

 TGX: Corba is made ancestor of PortableServer and its children to allow
 TGX: the use of certain private operations
 TGX: a renaming declaration provides the mapping conformance

with Corba.AbstractBase ;
with Corba.Object ;
with Corba.Impl ;
with Corba.Iop ;
with Corba.Sequences ;
with Corba.Idl_Sequence_Octet ;
with Ada.Exceptions ;
pragma Elaborate_All (Corba.Object) ;
package Corba.PortableServer is

   type POA_Ref is new Corba.AbstractBase.Ref with null record;

   package Idl_Sequence_Poa is new Corba.Sequences.Unbounded (POA_Ref);

   type POAList is new Idl_Sequence_Poa.Sequence ;
   Null_POAList : constant POAList := POAList (Idl_Sequence_Poa.Null_Sequence) ;

   type ObjectId is new Corba.Idl_Sequence_Octet.Sequence ;
   Null_ObjectId : constant ObjectId :=
      ObjectId (Corba.Idl_Sequence_Octet.Null_Sequence) ;

   function String_To_ObjectId (Value : in Standard.String) return ObjectId ;
   procedure String_To_ObjectId ( Value : in Standard.String ;
                                  Oid   : in out ObjectId) ;
   function ObjectId_To_String (Value : in ObjectId) return Standard.String ;

   package Idl_Sequence_ObjectId is new Corba.Sequences.Unbounded (ObjectId);

   type IDs is new Idl_Sequence_ObjectId.Sequence ;
   Null_IDs : constant IDs := IDs (Idl_Sequence_ObjectId.Null_Sequence) ;

   ForwardRequest : exception;
   type ForwardRequest_Members is new Corba.Idl_Exception_Members with 
   record
      Forward_Reference : Corba.Object.Ref;
   end record;

   ForwardRequest_Id : constant Corba.RepositoryId := Corba.To_Unbounded_String
   ("IDL:omg.org/PortableServer/ForwardRequest:1.0") ;

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

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

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

   Thread_Policy_Id : constant Corba.PolicyType := 16 ;
   Lifespan_Policy_Id : constant Corba.PolicyType := 17 ;
   Id_Uniqueness_Policy_Id : constant Corba.PolicyType := 18 ;
   Id_Assignment_Policy_Id : constant Corba.PolicyType := 19 ;
   Implicit_Activation_Policy_Id : constant Corba.PolicyType := 20 ;
   Servant_Retention_Policy_Id : constant Corba.PolicyType := 21 ;
   Request_Processing_Policy_Id : constant Corba.PolicyType := 22 ;

    OrbAda policies
   Priority_Mode_Policy_Id : constant Corba.PolicyType := 16#54475801# ;  "TGX^A"
   Thread_Count_Policy_Id : constant Corba.PolicyType := 16#54475802# ;  "TGX^B"
   TCP_Mode_Policy_Id : constant Corba.PolicyType := 16#54475803# ;  "TGX^C"
   TCP_Port_Policy_Id : constant Corba.PolicyType := 16#54475804# ;  "TGX^D"
   Protocol_Policy_Id : constant Corba.PolicyType := 16#54475805# ;  "TGX^E"

   type Thread_Counter is new Long range 0 .. Long'last ;

   type Priority_Mode_Policy_Value is (Unchanged, User_Defined) ;
   type TCP_Mode_Policy_Value is (Root_Port, Inherited_Port, Own_Port) ;

   type ThreadPolicyValue is ( Orb_Ctrl_Model, Single_Thread_Model);
   for ThreadPolicyValue'size use 32 ;

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

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

   type LifespanPolicyValue is ( Transient, Persistent);
   for LifespanPolicyValue'size use 32 ;

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

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

   type IdUniquenessPolicyValue is ( Unique_Id, Multiple_Id);
   for IdUniquenessPolicyValue'size use 32 ;

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

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

   type IdAssignmentPolicyValue is ( User_Id, System_Id);
   for IdAssignmentPolicyValue'size use 32 ;

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

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

   type ImplicitActivationPolicyValue is
     ( Implicit_Activation, No_Implicit_Activation);
   for ImplicitActivationPolicyValue'size use 32 ;

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

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

   type ServantRetentionPolicyValue is ( Retain, Non_Retain);
   for ServantRetentionPolicyValue'size use 32 ;

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

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

   type RequestProcessingPolicyValue is
     ( Use_Active_Object_Map_Only, Use_Default_Servant, Use_Servant_Manager);
   for RequestProcessingPolicyValue'size use 32 ;

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

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

   type Unicity_Mask is new Unsigned_Long ;

   I native Servant;
   type Servant_Base is abstract new Corba.Impl.Object with
   record
      Default_Poa : Corba.Impl.Object_Ptr ;
      Activations : Corba.Unsigned_Long := 0 ;  Number of POA registrations
      Requests    : Corba.Unsigned_Long := 0 ;  Requests in progress
      Unique_Mask : Unicity_Mask := 0 ;  POA belonging mask
   end record ;
   type Servant is access all Servant_Base'Class;

   I "values of type Servant support a language-specific
   I programming interface that can be used by the ORB to
   I obtain a default POA for that servant. This
   I interface is used only to support implicit
   I activation.”
   procedure Get_Default_POA ( For_Servant : access Servant_Base ;
                               Poa         : in out POA_Ref'class) ;

   I "Values of type Servant provide default
   I implementations of the standard object reference
   I operations get_interface, is_a, and non_existent."
   procedure Get_Type_Id ( For_Servant : access Servant_Base ;
                           Type_Id     : in out RepositoryId) is abstract ;

   function Get_Interface (For_Servant : access Servant_Base)
      return Corba.Object.Ref;
   procedure Get_Interface ( For_Servant : access Servant_Base ;
                             Intf        : in out Corba.Object.Ref'class) ;

   function Is_A ( For_Servant     : access Servant_Base;
                   Logical_Type_ID : in Standard.String) return Boolean;

   function Non_Existent (For_Servant : access Servant_Base) return Boolean;

   I "Values of type Servant must be testable for identity
   function "=" (Left, Right: access Servant_Base) return Boolean ;

    All typed skeleton objects implementations derive from the following type
   type Typed_Servant_Base is abstract new Servant_Base with null record ;
   type Typed_Servant is access all Typed_Servant_Base'class ;

    This primitive is used by the POA to invoke an operation on the servant
    It is generated by the IDL to Ada compiler
   procedure Typed_Skeleton
      ( Self    : access Typed_Servant_Base ;
        Request : in Corba.Iop.Request_Header ;
        Stream  : access Corba_Ios.Iop_Stream_Type) is abstract ;

   type Skeleton_Ptr is access procedure
      ( Self    : in Corba.Impl.Object_Ptr ;
        Request : in Corba.Iop.Request_Header ;
        Stream  : access Corba_Ios.Iop_Stream_Type) ;
   type Operation_Skeletons is array (Positive range <>) of Skeleton_Ptr ;

   function Get_Skeleton
      ( Request    : in Corba.Iop.Request_Header ;
        Stream     : access Corba_Ios.Iop_Stream_Type ;
        Scale      : in Corba.Impl.Operation_Signature ;
        Signatures : in Corba.Impl.Operation_Signatures ;
        Skeletons  : in Operation_Skeletons) return Skeleton_Ptr ;

    All DSI skeleton objects implementations must derive from the following type
   type DSI_Servant_Base is abstract new Servant_Base with null record ;
   type DSI_Servant is access all DSI_Servant_Base'class ;

    This primitive is used by the POA to invoke an operation on the servant
    It is generated by the IDL to Ada compiler
   procedure DSI_Skeleton
      ( Self    : access DSI_Servant_Base ;
        Object  : in Corba.Object.Ref ;
        Request : in Corba.Iop.Request_Header_1_2 ;
        Stream  : access Corba_Ios.Iop_Stream_Type) is abstract ;

   NotAGroupObject : exception;
   type NotAGroupObject_Members is new Corba.Idl_Exception_Members with null
      record;

   NotAGroupObject_Id : constant Corba.RepositoryId := Corba.To_Corba_String
      ("IDL:omg.org/PortableServer/NotAGroupObject:1.0") ;

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

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

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

end Corba.PortableServer;




List of definition uses










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