pragma Ada_2012;
pragma Style_Checks ("NM32766");
with Ada.Unchecked_Conversion;
with DDS.Domain_Entity_Impl;
with DDS.Entity_Impl;
with DDS.Publisher;
limited with DDS.DomainParticipant;
with DDS.PublisherListener;
with DDS.Topic;
with DDS.DataWriter;
with DDS.DataWriterListener;
with Ada.Unchecked_Deallocation;
with RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h;
with RTIDDS.Low_Level.ndds_dds_c_dds_c_publication_h; use RTIDDS.Low_Level.ndds_dds_c_dds_c_publication_h;
with RTIDDS.Low_Level.ndds_dds_c_dds_c_infrastructure_h; use RTIDDS.Low_Level.ndds_dds_c_dds_c_infrastructure_h;
package DDS.Publisher_Impl is
type Ref is limited new DDS.Domain_Entity_Impl.Ref and DDS.Publisher.Ref with null record;
type Ref_Access is access all Ref'Class;
function Create_DataWriter
(Self : not null access Ref;
A_Topic : in DDS.Topic.Ref_Access;
Qos : in DDS.DataWriterQos;
A_Listener : in DDS.DataWriterListener.Ref_Access;
Mask : in DDS.StatusMask)
return DDS.DataWriter.Ref_Access;
function Create_DataWriter_With_Profile
(Self : not null access Ref;
A_Topic : in DDS.Topic.Ref_Access;
Library_Name : in DDS.String;
profile_name : in DDS.String;
A_Listener : in DDS.DataWriterListener.Ref_Access;
Mask : in DDS.StatusMask := STATUS_MASK_NONE)
return DDS.DataWriter.Ref_Access;
function Create_DataWriter_With_Profile
(Self : not null access Ref;
A_Topic : in DDS.Topic.Ref_Access;
Library_Name : in Standard.String;
profile_name : in Standard.String;
A_Listener : in DDS.DataWriterListener.Ref_Access;
Mask : in DDS.StatusMask := STATUS_MASK_NONE)
return DDS.DataWriter.Ref_Access;
procedure Delete_DataWriter
(Self : not null access Ref;
A_DataWriter : in out DDS.DataWriter.Ref_Access);
function Lookup_DataWriter
(Self : not null access Ref;
Topic_Name : in DDS.String_Ptr)
return DDS.DataWriter.Ref_Access;
procedure Delete_Contained_Entities
(Self : not null access Ref);
procedure Set_Qos
(Self : not null access Ref;
Qos : in DDS.PublisherQos);
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.PublisherQos);
procedure Set_Listener
(Self : not null access Ref;
A_Listener : in DDS.PublisherListener.Ref_Access;
Mask : in DDS.StatusMask);
function Get_Listener
(Self : not null access Ref)
return DDS.PublisherListener.Ref_Access;
procedure Suspend_Publications
(Self : not null access Ref);
procedure Resume_Publications
(Self : not null access Ref);
procedure Begin_Coherent_Changes
(Self : not null access Ref);
procedure End_Coherent_Changes
(Self : not null access Ref);
procedure Wait_For_Acknowledgments
(Self : not null access Ref;
Max_Wait : in DDS.Duration_T);
procedure Wait_For_Asynchronous_Publishing
(Self : not null access Ref;
Max_Wait : in DDS.Duration_T);
function Get_Participant
(Self : not null access Ref)
return access DDS.DomainParticipant.Ref'Class;
procedure Set_Default_DataWriter_Qos
(Self : not null access Ref;
Qos : in DDS.DataWriterQos);
procedure Set_Default_DataWriter_Qos_With_Profile
(Self : not null access Ref;
libName : DDS.String;
profName : DDS.String);
procedure Set_Default_DataWriter_Qos_With_Profile
(Self : not null access Ref;
libName : Standard.String;
profName : Standard.String);
procedure Get_Default_DataWriter_Qos
(Self : not null access Ref;
Qos : in out DDS.DataWriterQos);
procedure Copy_From_Topic_Qos
(Self : not null access Ref;
A_DataWriter_Qos : in out DDS.DataWriterQos;
A_Topic_Qos : in DDS.TopicQos);
procedure Set_Default_Profile
(Self : not null access Ref;
library_name : DDS.String;
profile_name : DDS.String);
procedure Set_Default_Library
(Self : not null access Ref;
library_name : DDS.String);
function Get_Default_Library
(Self : not null access Ref)
return DDS.String;
function Get_Default_Profile
(Self : not null access Ref)
return DDS.String;
function Get_Default_Profile_Library
(Self : not null access Ref)
return DDS.String;
procedure Free (This : in out Ref_Access);
type DDS_Publisher_Access is access all DDS_Publisher with Storage_Size => 0;
function CreateI (C_Participant : access DDS_DomainParticipant;
Qos : in DDS.PublisherQos;
A_Listener : in DDS.PublisherListener.Ref_Access;
Mask : in DDS.StatusMask)
return DDS.Publisher.Ref_Access;
function As_DDS_Entety_Access is new ada.Unchecked_Conversion(DDS_Publisher_Access,DDS.Entity_Impl.DDS_Entity_Access);
function Create_WrapperI (C_Publisher : in DDS_Publisher_Access)
return Ref_Access;
function Get_FacadeI (C_Publisher : DDS_Publisher_Access)
return 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 GetInterface (Self : not null access Ref) return DDS_Publisher_Access;
procedure SetInterface (Self : not null access Ref; To : DDS_Publisher_Access);
private
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.Publisher_Impl;