pragma Ada_2012;
with Ada.Unchecked_Conversion;
with DDS.Entity_Impl;
with DDS.Subscriber;
with DDS.DomainParticipant;
with DDS.SubscriberListener;
with DDS.DataReaderListener;
with DDS.Domain_Entity_Impl;
with DDS.DataReader;
with DDS.DataReaderSeq;
with DDS.TopicDescription;
private with System;
private with Ada.Unchecked_Deallocation;
with RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h;
with RTIDDS.Low_Level.ndds_dds_c_dds_c_subscription_h;
package DDS.Subscriber_Impl is
use RTIDDS.Low_Level.ndds_dds_c_dds_c_subscription_h;
type Ref is new DDS.Domain_Entity_Impl.Ref and DDS.Subscriber.Ref with private;
type Ref_Access is access all Ref'Class;
function Create_DataReader
(Self : not null access Ref;
Topic : not null access DDS.TopicDescription.Ref'Class;
Qos : in DDS.DataReaderQoS;
A_Listener : in DDS.DataReaderListener.Ref_Access;
Mask : in DDS.StatusMask)
return DDS.DataReader.Ref_Access;
function Create_DataReader_With_Profile
(Self : not null access Ref;
Topic : not null access DDS.TopicDescription.Ref'Class;
Library_Name : in DDS.String;
profile_name : in DDS.String;
A_Listener : in DDS.DataReaderListener.Ref_Access := null;
Mask : in DDS.StatusMask := STATUS_MASK_NONE)
return DDS.DataReader.Ref_Access;
function Create_DataReader_With_Profile
(Self : not null access Ref;
Topic : not null access DDS.TopicDescription.Ref'Class;
Library_Name : in Standard.String;
profile_name : in Standard.String;
A_Listener : in DDS.DataReaderListener.Ref_Access := null;
Mask : in DDS.StatusMask := STATUS_MASK_NONE)
return DDS.DataReader.Ref_Access;
procedure Delete_DataReader
(Self : not null access Ref;
A_DataReader : in out DDS.DataReader.Ref_Access);
procedure Delete_Contained_Entities
(Self : not null access Ref);
function Lookup_DataReader
(Self : not null access Ref;
Topic_Name : in DDS.String)
return DDS.DataReader.Ref_Access;
procedure Get_DataReaders
(Self : not null access Ref;
Readers : not null access DDS.DataReaderSeq.Sequence;
Sample_States : in DDS.SampleStateKind;
View_States : in DDS.ViewStateKind;
Instance_States : in DDS.InstanceStateKind);
procedure Notify_DataReaders
(Self : not null access Ref);
procedure Set_Qos
(Self : not null access Ref;
Qos : in DDS.SubscriberQos);
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.SubscriberQos);
procedure Set_Listener
(Self : not null access Ref;
A_Listener : DDS.SubscriberListener.Ref_Access;
Mask : in DDS.StatusKind);
function Get_Listener
(Self : not null access Ref)
return DDS.SubscriberListener.Ref_Access;
procedure Begin_Access
(Self : not null access Ref);
procedure End_Access
(Self : not null access Ref);
function Get_Participant
(Self : not null access Ref)
return access DDS.DomainParticipant.Ref'Class;
procedure Set_Default_DataReader_Qos
(Self : not null access Ref;
Qos : in DDS.DataReaderQoS);
procedure Set_Default_DataReader_Qos_With_Profile
(Self : not null access Ref;
libName : DDS.String;
profName : DDS.String);
procedure Set_Default_DataReader_Qos_With_Profile
(Self : not null access Ref;
libName : Standard.String;
profName : Standard.String);
procedure Get_Default_DataReader_Qos
(Self : not null access Ref;
Qos : in out DDS.DataReaderQoS);
procedure Copy_From_Topic_Qos
(Self : not null access Ref;
A_DataReader_Qos : in out DDS.DataReaderQoS;
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_Subscriber_Access is access all DDS_Subscriber with Storage_Size => 0;
function CreateI
(Participant : in not null DDS.DomainParticipant.Ref_Access;
Qos : in DDS.SubscriberQos;
A_Listener : in DDS.SubscriberListener.Ref_Access;
Mask : in DDS.StatusMask)
return DDS.Subscriber.Ref_Access;
function Create_WrapperI
(C_Subscriber : not null DDS_Subscriber_Access)
return DDS.Subscriber_Impl.Ref_Access;
function Get_FacadeI (C_Subscriber : not null DDS_Subscriber_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 As_DDS_Entity_access is new Ada.Unchecked_Conversion (DDS_Subscriber_Access, DDS.Entity_Impl.DDS_Entity_Access);
function GetInterface (Self : not null access Ref) return DDS_Subscriber_Access;
procedure SetInterface (Self : not null access Ref; To : DDS_Subscriber_Access);
procedure call_listener (Self : not null access Ref;
mask : StatusMask);
private
type Ref is new DDS.Domain_Entity_Impl.Ref and DDS.Subscriber.Ref with record
Participant : DDS.DomainParticipant.Ref_Access;
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.Subscriber_Impl;