pragma Ada_2012;
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;