-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
- with DDS.TypeSupport_Impl;  
- with DDS.DataReader;  
- with DDS.DataReaderListener;  
-   
- with DDS.Topic;  
- with DDS.TopicListener;  
- with DDS.TopicDescription;  
- with DDS.TopicDescription_Impl;  
-   
- with DDS.DomainParticipant;  
-   
- with Ada.Unchecked_Deallocation;  
- with RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h; use RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h;  
- with DDS.StatusCondition;  
- with RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h;  
-   
- package DDS.Topic_Impl is  
-   
-    type Ref is limited new DDS.TopicDescription_Impl.Ref and DDS.Topic.Ref with private;  
-    type Ref_Access is access all Ref'Class;  
-   
-    procedure Set_Qos  
-      (Self : not null access Ref;  
-       Qos  : in DDS.TopicQos);  
-   
-    procedure Set_Qos_With_Profile  
-      (Self : not null access Ref;  
-       Library_Name  : in String;  
-       Profile_Name  : in String);  
-   
-    procedure Set_Qos_With_Profile  
-      (Self : not null access Ref;  
-       Library_Name  : in Standard.String;  
-       Profile_Name  : in Standard.String);  
-   
-    procedure Get_Qos  
-      (Self : not null access Ref;  
-       Qos  : in out DDS.TopicQos);  
-   
-    procedure Set_Listener  
-      (Self       : not null access Ref;  
-       A_Listener : in DDS.TopicListener.Ref_Access;  
-       Mask       : in DDS.StatusMask);  
-   
-    function Get_Listener  
-      (Self : not null access Ref)  
-       return DDS.TopicListener.Ref_Access;  
-   
-    procedure Get_Inconsistent_Topic_Status  
-      (Self   : not null access Ref;  
-       Status : in out DDS.InconsistentTopicStatus);  
-   
-    function Get_Type_Name  
-      (Self : not null access Ref)  
-       return DDS.String;  
-   
-    function Get_Name  
-      (Self : not null access Ref)  
-       return DDS.String;  
-   
-    function Get_Participant  
-      (Self : not null access Ref)  
-      return access DDS.DomainParticipant.Ref'Class;  
-   
-      
-      
-      
-    function As_TopicDescription_Impl_I  
-      (Self : not null access Ref)  
-       return access DDS.TopicDescription_Impl.Ref;  
-   
-    function As_TopicDescription_I  
-      (Self : not null access Ref)  
-       return DDS.TopicDescription.Ref_Access;  
-   
-   
-    function Get_FacadeI (C_TopicW : access RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h.DDS_Topic)  
-                          return Ref_Access;  
-   
-    function CreateI  
-      (Participant   : DDS.DomainParticipant.Ref_Access;  
-       Topic_Name    : in DDS.String;  
-       Type_Name     : in DDS.String;  
-       Qos           : in DDS.TopicQos;  
-       A_Listener    : in DDS.TopicListener.Ref_Access;  
-       Mask          : in DDS.StatusMask)  
-       return DDS.Topic.Ref_Access;  
-   
-    function Create_WrapperI  
-      (C_TopicW : access RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h.DDS_Topic)  
-       return DDS.Topic_Impl.Ref_Access;  
-   
-    function Create_ReferenceI (C_TopicW : access RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h.DDS_Topic)  
-                                return Ref_Access;  
-   
-    function TW_As_TopicDescription_I (Self : not null access Ref)  
-                                       return access DDS_TopicDescription;  
-   
-    function TW_As_Entity_I (Self : not null access Ref)  
-                             return access RTIDDS.Low_Level.ndds_dds_c_dds_c_infrastructure_h.DDS_Entity;  
-   
-    function TW_As_Impl_I (Self : not null access Ref)  
-                           return access DDS_TopicImpl;  
-   
-    function As_TopicWrapper_I (Self : not null access Ref)  
-                                return  access RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h.DDS_Topic;  
-   
-    function Get_StatusCondition (Self : not null access Ref) return  
-      DDS.StatusCondition.Ref_Access;  
-   
-    function Get_Status_Changes (Self : not null access Ref) return  
-      DDS.StatusMask;  
-   
-    function Get_Instance_Handle (Self : not null access Ref) return  
-      DDS.InstanceHandle_T;  
-   
-    function create_datareaderI  
-      (self               : not null access Ref;  
-       l                  : Integer;  
-       datareaderlistener : DDS.DataReaderListener.Ref_Access;  
-       i                  : Integer) return DDS.DataReader.Ref_Access;  
-   
-    function get_data_type (self : not null access Ref) return DDS.TypeSupport_Impl.Ref_Access;  
-   
-    procedure Free (This : in out Ref_Access);  
-   
-    procedure Finalize_Callback  
-      (arg1 : System.Address;  
-       arg2 : System.Address;  
-       arg3 : access RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h.REDAWorker);  
-    pragma Convention (C, Finalize_Callback);  
-    function As_TopicDescription  
-      (Self : not null access Ref)  
-       return DDS.TopicDescription.Ref_Access;  
-   
- private  
-    type Ref is limited new DDS.TopicDescription_Impl.Ref and DDS.Topic.Ref with record  
-       C_Topic : access RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h.DDS_Topic;  
-       TD_Impl : DDS.TopicDescription_Impl.Ref_Access;  
-       Available_References : Standard.Integer;  
-    end record;  
-   
-    procedure Free_Impl is new Ada.Unchecked_Deallocation (Ref'Class, Ref_Access);  
-    procedure Free_Mem (This : in out Ref_Access) renames Free_Impl;  
- end DDS.Topic_Impl;