-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
- 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    : not null 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    : not null 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;