pragma Ada_05;
with DDS.DataReaderListener;
with DDS.DataReader;
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;
with Ada.Unchecked_Deallocation;
package DDS.TopicDescription_Impl is
type Ref is limited new DDS.TopicDescription.Ref with private;
type Ref_Access is access all Ref'Class;
function GetInterface
(Self : not null access Ref)
return System.Address;
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 : 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 access DDS.TypeSupport_Impl.Ref;
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);
private
type Ref is limited new 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;