-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
- with DDS.DataReaderListener;  
- with DDS.DataReader;  
- with DDS.Entity_Impl;  
- with DDS.TypeSupport_Impl;  
- with DDS.TopicDescription; use DDS.TopicDescription;  
- limited with DDS.DomainParticipant;  
- with RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h; use RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h;  
- with Ada.Unchecked_Deallocation;  
- package DDS.TopicDescription_Impl is  
-   
-    type Ref is limited new DDS.Entity_Impl.Ref and DDS.TopicDescription.Ref with private;  
-    type Ref_Access is access all Ref'Class;  
-   
-   
-    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 CreateI (Wrapper : not null access RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h.DDS_Topic)  
-                      return DDS.TopicDescription_Impl.Ref_Access;  
-   
-    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;  
-   
-    function Get_Native_Topic_Wrapper (Self : not null access Ref) return access RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h.DDS_Topic;  
-   
-    procedure Set_Native_ContentFilteredTopic_Wrapper (Self : not null access Ref; CFTopic_W : access RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h.DDS_ContentFilteredTopic);  
-   
-    function Get_Native_ContentFilteredTopic_Wrapper (Self : not null access Ref) return access RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h.DDS_ContentFilteredTopic;  
-   
-    procedure Free (This : in out Ref_Access);  
-   
-    type DDS_TopicDescription_Access is access all DDS_TopicDescription with Storage_Size => 0;  
-   
-   
-    function GetInterface  
-      (Self : not null access Ref)  
-       return DDS_TopicDescription_Access;  
-    procedure SetInterface (Self : not null access Ref; To : DDS_TopicDescription_Access);  
-   
-    function GetInterface  
-      (Self : not null access constant Ref)  
-       return System.Address;  
-    procedure SetInterface (Self : not null access Ref; To : System.Address);  
-   
- private  
-    type Ref is limited new DDS.Entity_Impl.Ref and DDS.TopicDescription.Ref  with record  
-       Native_Topic_Wrapper : access RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h.DDS_Topic;  
-       Native_ContentFilteredTopic_Wrapper : access RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h.DDS_ContentFilteredTopic;  
-    end record;  
-   
-    procedure Free_Impl is new Ada.Unchecked_Deallocation (Ref'Class, Ref_Access);  
-    procedure Free (This : in out Ref_Access) renames Free_Impl;  
- end DDS.TopicDescription_Impl;