1. --  (c) Copyright, Real-Time Innovations, $Date:: 2012-02-16 #$ 
  2. --  All rights reserved. 
  3. -- 
  4. --  No duplications, whole or partial, manual or electronic, may be made 
  5. --  without express written permission.  Any such copies, or 
  6. --  revisions thereof, must display this notice unaltered. 
  7. --  This code contains trade secrets of Real-Time Innovations, Inc. 
  8.  
  9. pragma Ada_05; 
  10.  
  11. with RTIDDS.Obj; 
  12.  
  13. with System; 
  14. with Ada.Finalization; 
  15. private with Ada.Unchecked_Deallocation; 
  16. package RTIDDS.Obj_Impl is 
  17.    pragma Preelaborate; 
  18.  
  19.    type Ref is new Ada.Finalization.Limited_Controlled  and RTIDDS.Obj.Ref with private; 
  20.  
  21.    type Ref_Access is access all Ref'Class; 
  22.  
  23.    function GetInterface (Self : not null access constant Ref) 
  24.                          return System.Address; 
  25.  
  26.    procedure SetInterface (Self : not null access Ref; 
  27.                            To : System.Address); 
  28.  
  29.    function Interface_Is_Null (Self : not null access constant Ref) 
  30.                               return Boolean; 
  31.  
  32.    procedure Free (Self : in out Ref_Access); 
  33.  
  34. private 
  35.    type Ref is new Ada.Finalization.Limited_Controlled  and RTIDDS.Obj.Ref with record 
  36.       native_Object  : System.Address; 
  37.    end record; 
  38.    procedure Free_Ref is new Ada.Unchecked_Deallocation (Ref'Class, Ref_Access); 
  39.    procedure Free (Self : in out Ref_Access) renames Free_Ref; 
  40. end RTIDDS.Obj_Impl;