pragma Ada_2012;
pragma Style_Checks ("NM32766");
with Ada.Unchecked_Conversion;
with DDS.DataWriter;
with DDS.Domain_Entity_Impl;
with DDS.Entity_Impl;
with DDS.Publisher;
with DDS.Topic;
with DDS.DataWriterListener;
with DDS.MetpTypeSupport;
with System;
with RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h;
with RTIDDS.Low_Level.ndds_dds_c_dds_c_publication_h;
package DDS.DataWriter_Impl is
type Ref is limited new DDS.Domain_Entity_Impl.Ref and DDS.DataWriter.Ref with record
null;
end record;
type Ref_Access is access all Ref'Class;
procedure Set_Qos
(Self : not null access Ref;
Qos : in DDS.DataWriterQos);
procedure Set_Qos_With_Profile (Self : not null access Ref;
Library_Name : String;
Profile_Name : String);
procedure Set_Qos_With_Profile (Self : not null access Ref;
Library_Name : Standard.String;
Profile_Name : Standard.String);
procedure Get_Qos
(Self : not null access Ref;
Qos : in out DDS.DataWriterQos);
procedure Set_Listener
(Self : not null access Ref;
A_Listener : in DDS.DataWriterListener.Ref_Access;
Mask : in DDS.StatusMask);
function Get_Listener
(Self : not null access Ref)
return DDS.DataWriterListener.Ref_Access;
function Get_Topic
(Self : not null access Ref)
return DDS.Topic.Ref_Access;
function Get_Publisher
(Self : not null access Ref)
return access DDS.Publisher.Ref'Class;
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);
procedure Get_Liveliness_Lost_Status
(Self : not null access Ref;
Status : in out DDS.LivelinessLostStatus);
procedure Get_Offered_Deadline_Missed_Status
(Self : not null access Ref;
Status : in out DDS.OfferedDeadlineMissedStatus);
procedure Get_Offered_Incompatible_Qos_Status
(Self : not null access Ref;
Status : in out DDS.OfferedIncompatibleQosStatus);
procedure Get_Publication_Matched_Status
(Self : not null access Ref;
Status : in out DDS.PublicationMatchedStatus);
procedure Assert_Liveliness
(Self : not null access Ref);
function Get_Matched_Subscriptions
(Self : not null access Ref)
return DDS.InstanceHandle_Seq.Sequence;
function Get_Matched_Subscription_Data
(Self : not null access Ref;
Subscription_Handle : in DDS.InstanceHandle_T)
return DDS.SubscriptionBuiltinTopicData;
function Get_Matched_Subscription_Locators
(Self : not null access Ref)
return DDS.Locator_Seq.Sequence;
procedure Free (This : in out Ref_Access);
function CreateI (Publisher : DDS.Publisher.Ref_Access;
Topic : access DDS.Topic.Ref'Class;
Qos : in DDS.DataWriterQos;
Listener : in DDS.DataWriterListener.Ref_Access;
Mask : in DDS.StatusMask)
return DDS.DataWriter.Ref_Access;
function CreateI (Publisher : DDS.Publisher.Ref_Access;
Topic : access DDS.Topic.Ref'Class;
Library_Name : in DDS.String;
Profile_name : in DDS.String;
Listener : in DDS.DataWriterListener.Ref_Access;
Mask : in DDS.StatusMask)
return DDS.DataWriter.Ref_Access;
function Register_Instance
(Self : not null access Ref;
Instance_Data : System.Address)
return DDS.InstanceHandle_T;
function Register_Instance_W_Timestamp
(Self : not null access Ref;
Instance_Data : System.Address;
Source_Timestamp : in DDS.Time_T)
return DDS.InstanceHandle_T;
function Register_Instance_W_Params
(Self : not null access Ref;
Instance_Data : System.Address;
Params : access DDS.WriteParams_T)
return Standard.DDS.InstanceHandle_T;
procedure Unregister_Instance
(Self : not null access Ref;
Instance_Data : System.Address;
Handle : in DDS.InstanceHandle_T;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class);
procedure Unregister_Instance_W_Timestamp
(Self : not null access Ref;
Instance_Data : System.Address;
Handle : in DDS.InstanceHandle_T;
Source_Timestamp : in DDS.Time_T;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class);
procedure Unregister_Instance_W_Params
(Self : not null access Ref;
Instance_Data : System.Address;
Params : access DDS.WriteParams_T;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class);
procedure WriteI
(Self : not null access Ref;
Instance_Data : System.Address;
Handle : in DDS.InstanceHandle_T_Access;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class);
procedure Write_W_Timestamp
(Self : not null access Ref;
Instance_Data : System.Address;
Handle : in DDS.InstanceHandle_T_Access;
Source_Timestamp : in DDS.Time_T;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class);
procedure Write_W_Params
(Self : not null access Ref;
Instance_Data : System.Address;
Params : in out DDS.WriteParams_T;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class);
procedure Dispose
(Self : not null access Ref;
Instance_Data : System.Address;
Instance_Handle : in DDS.InstanceHandle_T;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class);
procedure Dispose_W_Timestamp
(Self : not null access Ref;
Instance_Data : System.Address;
Instance_Handle : in DDS.InstanceHandle_T;
Source_Timestamp : in DDS.Time_T;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class);
procedure Dispose_W_Params
(Self : not null access Ref;
Instance_Data : System.Address;
Params : in DDS.WriteParams_T;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class);
procedure Get_Key_Value
(Self : not null access Ref;
Key_Holder : System.Address;
Handle : in DDS.InstanceHandle_T);
function Lookup_Instance
(Self : not null access Ref;
Key_Holder : System.Address) return DDS.InstanceHandle_T;
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);
procedure Get_Reliable_Reader_Activity_Changed_Status
(Self : not null access Ref;
status : in out DDS.ReliableReaderActivityChangedStatus);
procedure Set_Reliable_Reader_Activity_Changed_Status
(Self : not null access Ref;
status : in DDS.ReliableReaderActivityChangedStatus);
procedure Get_Reliable_Writer_Cache_Changed_Status
(Self : not null access Ref;
status : in out DDS.ReliableWriterCacheChangedStatus);
procedure Get_DataWriter_Cache_Status
(Self : not null access Ref;
status : in out DDS.DataWriterCacheStatus);
procedure Get_DataWriter_Protocol_Status
(Self : not null access Ref;
status : in out DDS.DataWriterProtocolStatus);
procedure Get_Matched_Subscription_Datawriter_Protocol_Status
(Self : not null access Ref;
status : in out DDS.DataWriterProtocolStatus;
subscription_handle : DDS.InstanceHandle_T);
procedure Get_Matched_Subscription_Datawriter_Protocol_Status_By_Locator
(Self : not null access Ref;
status : in out DDS.DataWriterProtocolStatus;
locator : DDS.Locator_T);
procedure Flush
(Self : not null access Ref);
function Is_Metp_Writer
(Self : not null access Ref;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class) return Standard.Boolean;
procedure Delete_Metp_Data
(Self : not null access Ref;
Instance_Data : System.Address;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class);
procedure call_listener(Self : not null access Ref;
mask : StatusMask);
procedure set_reliable_writer_cache_changed_status
(Self : not null access Ref;
To : ReliableWriterCacheChangedStatus);
procedure set_datawriter_cache_status
(Self : not null access Ref;
To : DataWriterCacheStatus);
procedure set_datawriter_protocol_status
(Self : not null access Ref;
To : DataWriterProtocolStatus);
procedure set_matched_subscription_datawriter_protocol_status
(Self : not null access Ref;
To : DDS.DataWriterProtocolStatus;
handle : DDS.InstanceHandle_T);
procedure set_matched_subscription_datawriter_protocol_status_by_locator
(Self : not null access Ref;
status : DDS.DataWriterProtocolStatus;
locator : DDS.Locator_T);
type DDS_DataWriter_Access is access all RTIDDS.Low_Level.ndds_dds_c_dds_c_publication_h.DDS_DataWriter with Storage_Size => 0;
function As_DDS_Entity_access is new Ada.Unchecked_Conversion(DDS_DataWriter_Access,DDS.Entity_Impl.DDS_Entity_Access);
function Get_FacadeI (C_DataWriter : DDS_DataWriter_Access)
return Ref_Access;
procedure Get_LoanI
(Self : not null access Ref;
Loan_Ret : out System.Address;
Initialize_Data : out Standard.Boolean;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class);
procedure Discard_LoanI
(Self : not null access Ref;
Sample : System.Address;
MetpImpl : not null access DDS.MetpTypeSupport.ref'Class);
function GetInterface (Self : not null access Ref) return DDS_DataWriter_Access;
procedure SetInterface (Self : not null access Ref; To : DDS_DataWriter_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.DataWriter_Impl;