-   
-   
-   
-   
-   
-   
-   
-   
- pragma Ada_05;  
-   
- with RTIDDS.Obj;  
-   
- with System;  
- with Ada.Finalization;  
- private with Ada.Unchecked_Deallocation;  
- package RTIDDS.Obj_Impl is  
-    pragma Preelaborate;  
-   
-    type Ref is new Ada.Finalization.Limited_Controlled and RTIDDS.Obj.Ref with private;  
-   
-    type Ref_Access is access all Ref'Class;  
-   
-    function GetInterface (Self : not null access constant Ref)  
-       return System.Address;  
-   
-    procedure SetInterface (Self : not null access Ref;  
-                            To   : System.Address);  
-   
-    function Interface_Is_Null (Self : not null access constant Ref)  
-       return Boolean;  
-   
-    procedure Free (Self : in out Ref_Access);  
-   
- private  
-    type Ref is new Ada.Finalization.Limited_Controlled and RTIDDS.Obj.Ref with record  
-       native_Object : System.Address;  
-    end record;  
-    procedure Free_Ref is new Ada.Unchecked_Deallocation (Ref'Class, Ref_Access);  
-    procedure Free (Self : in out Ref_Access) renames Free_Ref;  
- end RTIDDS.Obj_Impl;