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