Specification of package Corba.Value







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

with Ada.Finalization ;

with Corba_Ios ;
with Corba.AbstractBase ;
with Corba.Impl ;
with Corba.Iop ;

pragma Elaborate_All (Corba.AbstractBase) ;
package Corba.Value is
   type Base is new Corba.AbstractBase.Ref with null record;

   function Is_A ( Self       : in Base ;
                   Logical_Id : in Standard.String ) return Boolean ;

   type Impl_Base is abstract new Corba.Impl.Object with null record ;

   type Impl_Base_Ptr is access all Impl_Base'class ;

   function Get_RepositoryId (Self : access Impl_Base)
      return RepositoryId is abstract ;

   function Is_A ( Self : access Impl_Base ;
                   Id   : in RepositoryId )
      return Boolean is abstract ;

   TGX: ValueDef transformed to AbstractBase to avoid extra dependencies
   TGX: but the value returned can be safely narrowed to ValueDef.Ref
   function Get_Value_Def (Self : in Base) return Corba.AbstractBase.Ref ;

   TGX: Constructor of a new value
   TGX: If Self is not null, the new value implementation is initialized
   TGX: with the given value contents
   procedure Initializer (Self : in out Base) ;

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

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

    Custom marshalling procedures
    (need to be overwritten by custom value implementations)
   procedure Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : access Impl_Base ) ;

   procedure Write
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Item   : access Impl_Base ) ;

   Null_Base : constant Base := ( Ada.Finalization.Controlled with
                                  Ptr      => null,
                                  Location => Corba.Iop.Value,
                                  IOP      => null) ;

   TGX: Registration of value readers
   type Value_Reader is access function
      ( Stream  : access Corba_Ios.Iop_Stream_Type ;
        Start   : in Corba_Ios.Stream_Element_Offset) return Impl_Base_Ptr ;

   procedure Register ( Id     : in Standard.String ;
                        Reader : in Value_Reader) ;

   type Value_Writer is access procedure
      ( Stream  : access Corba_Ios.Iop_Stream_Type ;
        Value   : in Impl_Base_Ptr) ;

   procedure Register ( Id     : in Standard.String ;
                        Writer : in Value_Writer ) ;

   function Impl_Read
      ( Stream : access Corba_Ios.Iop_Stream_Type ;
        Actual : in Value_Reader) return Corba.Impl.Object_Ptr ;

   procedure Set_Chunk_Start (Stream : access Corba_Ios.Iop_Stream_Type) ;

   procedure Set_Chunk_Size (Stream : access Corba_Ios.Iop_Stream_Type) ;

   procedure Set_Value_Start ( Stream : access Corba_Ios.Iop_Stream_Type ;
                               Start  : in Corba_Ios.Stream_Element_Offset ;
                               Ptr    : in Corba.Impl.Object_Ptr) ;

   function Get_Value_Start ( Stream : access Corba_Ios.Iop_Stream_Type ;
                              Ptr    : in Corba.Impl.Object_Ptr)
      return Corba_Ios.Stream_Element_Offset ;
end Corba.Value;




List of definition uses










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