-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
- with Ada.Unchecked_Conversion;  
- with DDS.DataReader;  
- with DDS.Domain_Entity_Impl;  
- with DDS.Entity_Impl;  
- with DDS.Subscriber;  
- with DDS.Topic;  
- with DDS.TopicDescription;  
- with DDS.DataReaderListener;  
- with DDS.QueryCondition;  
- with DDS.ReadCondition;  
- with DDS.MetpTypeSupport;  
- with DDS.IndexCondition;  
- with System;  
- with RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h;  
- with RTIDDS.Low_Level.ndds_dds_c_dds_c_subscription_h;  
-   
- package DDS.DataReader_Impl is  
-   
-    type Ref is abstract new DDS.Domain_Entity_Impl.Ref and DDS.DataReader.Ref with private;  
-    type Ref_Access is access all Ref'Class;  
-   
-    function Create_Readcondition  
-      (Self            : not null access Ref;  
-       Sample_States   : in DDS.SampleStateMask;  
-       View_States     : in DDS.ViewStateMask;  
-       Instance_States : in DDS.InstanceStateMask)  
-       return DDS.ReadCondition.Ref_Access;  
-   
-    function Create_Querycondition  
-      (Self             : not null access Ref;  
-       Sample_States    : in DDS.SampleStateMask;  
-       View_States      : in DDS.ViewStateMask;  
-       Instance_States  : in DDS.InstanceStateMask;  
-       Query_Expression : in DDS.String;  
-       Query_Parameters : in DDS.String_Seq.Sequence)  
-       return DDS.QueryCondition.Ref_Access;  
-   
-    function Create_IndexCondition  
-      (Self            : not null access Ref;  
-       Index_Name      : in DDS.String;  
-       Sample_State    : in DDS.SampleStateMask;  
-       view_state      : in DDS.ViewStateMask;  
-       instance_state  : in DDS.InstanceStateMask;  
-       Sample_Info     : in DDS.SampleInfo)  
-       return DDS.IndexCondition.Ref_Access;  
-   
-    procedure Delete_Readcondition  
-      (Self        : not null access Ref;  
-       A_Condition : access DDS.ReadCondition.Ref'Class);  
-   
-    procedure  Delete_Contained_Entities  
-      (Self : not null access Ref);  
-      
-      
-      
-      
-      
-      
-   
-    procedure Set_Qos  
-      (Self : not null access Ref;  
-       Qos  : in DDS.DataReaderQoS);  
-   
-    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.DataReaderQoS);  
-   
-    procedure Set_Listener  
-      (Self       : not null access Ref;  
-       A_Listener : in DDS.DataReaderListener.Ref_Access;  
-       Mask       : in DDS.StatusMask);  
-   
-    function Get_Listener  
-      (Self : not null access Ref)  
-       return DDS.DataReaderListener.Ref_Access;  
-   
-    procedure Call_ListnerT  
-      (Self       : not null access Ref;  
-       A_Listener : in DDS.DataReaderListener.Ref_Access;  
-       Mask       : in DDS.StatusMask);  
-   
-    function Get_Topicdescription  
-      (Self : not null access Ref)  
-       return DDS.TopicDescription.Ref_Access;  
-   
-    function Get_Subscriber  
-      (Self : not null access Ref)  
-       return access DDS.Subscriber.Ref'Class;  
-   
-    procedure Get_Sample_Rejected_Status  
-      (Self   : not null access Ref;  
-       Status : in out DDS.SampleRejectedStatus);  
-   
-    procedure Get_Liveliness_Changed_Status  
-      (Self   : not null access Ref;  
-       Status : in out DDS.LivelinessChangedStatus);  
-   
-    procedure Get_Requested_Deadline_Missed_Status  
-      (Self   : not null access Ref;  
-       Status : in out DDS.RequestedDeadlineMissedStatus);  
-   
-    procedure Get_Requested_Incompatible_Qos_Status  
-      (Self   : not null access Ref;  
-       Status : in out DDS.RequestedIncompatibleQosStatus);  
-   
-    procedure Get_Subscription_Matched_Status  
-      (Self   : not null access Ref;  
-       Status : in out DDS.SubscriptionMatchedStatus);  
-   
-    procedure Get_Sample_Lost_Status  
-      (Self   : not null access Ref;  
-       Status : in out DDS.SampleLostStatus);  
-   
-    procedure Get_Datareader_Cache_Status  
-      (Self   : not null access Ref;  
-       Status : in out DDS.DataReaderCacheStatus);  
-   
-    procedure Get_Datareader_Protocol_Status  
-      (Self   : not null access Ref;  
-       Status : in out DDS.DataReaderProtocolStatus);  
-   
-    procedure Get_Matched_Publication_Datareader_Protocol_Status  
-      (Self               : not null access Ref;  
-       Status             : in out DDS.DataReaderProtocolStatus;  
-       Publication_Handle : not null access DDS.InstanceHandle_T);  
-   
-    procedure Wait_For_Historical_Data  
-      (Self     : not null access Ref;  
-       Max_Wait : in DDS.Duration_T);  
-   
-    function Get_Matched_Publications  
-      (Self                : not null access Ref)  
-       return DDS.InstanceHandle_Seq.Sequence;  
-   
-    function Get_Matched_Publication_Data  
-      (Self               : not null access Ref;  
-       Publication_Handle : not null access DDS.InstanceHandle_T)  
-       return DDS.PublicationBuiltinTopicData;  
-   
-    procedure Free (This : in out Ref_Access);  
-   
-    type DDS_DataReader_Access is access all RTIDDS.Low_Level.ndds_dds_c_dds_c_subscription_h.DDS_DataReader with Storage_Size => 0;  
-   
-    function CreateI (Subscriber : not null DDS.Subscriber.Ref_Access;  
-                      Topic      : not null access DDS.TopicDescription.Ref'Class;  
-                      Qos        : in DDS.DataReaderQoS;  
-                      Listener   : in DDS.DataReaderListener.Ref_Access;  
-                      Mask       : in DDS.StatusMask)  
-                      return DDS.DataReader.Ref_Access;  
-   
-    function CreateI (Subscriber   : not null DDS.Subscriber.Ref_Access;  
-                      Topic        : not null access DDS.TopicDescription.Ref'Class;  
-                      Library_Name : in DDS.String;  
-                      Profile_Name : in DDS.String;  
-                      Listener     : in DDS.DataReaderListener.Ref_Access;  
-                      Mask         : in DDS.StatusMask)  
-                      return DDS.DataReader.Ref_Access;  
-   
-    function Create_WrapperI (Subscriber   : not null DDS.Subscriber.Ref_Access;  
-                              C_DataReader : DDS_DataReader_Access;  
-                              Topic        : not null access DDS.Topic.Ref'Class)  
-                              return Ref_Access;  
-   
-    function Get_FacadeI (C_DataReader : DDS_DataReader_Access)  
-                          return Ref_Access;  
-   
-   
-    procedure Read_Or_Take_UntypedI  
-      (Self                                : not null access constant Ref;  
-       Is_Loan                             : out DDS.Boolean;  
-       Received_Data                       : System.Address;  
-       Data_Count                          : out Natural;  
-       Info_Seq                            : SampleInfo_Seq.Sequence_Access;  
-       Data_Seq_Len                        : Long_Integer;  
-       Data_Seq_Max_Len                    : Long_Integer;  
-       Data_Seq_Has_Ownership              : Long_Integer;  
-       Data_Seq_Contiguous_Buffer_For_Copy : System.Address;  
-       Data_Size                           : Integer;  
-       Max_Samples                         : Long_Integer;  
-       Sample_States                       : SampleStateMask;  
-       View_States                         : ViewStateMask;  
-       Instance_States                     : InstanceStateMask;  
-       Take                                : DDS.Boolean);  
-    function Read_Or_Take_UntypedI  
-      (Self                                : not null access constant Ref;  
-       Is_Loan                             : access DDS.Boolean;  
-       Received_Data                       : System.Address;  
-       Data_Count                          : access Natural;  
-       Info_Seq                            : SampleInfo_Seq.Sequence_Access;  
-       Data_Seq_Len                        : Long_Integer;  
-       Data_Seq_Max_Len                    : Long_Integer;  
-       Data_Seq_Has_Ownership              : Long_Integer;  
-       Data_Seq_Contiguous_Buffer_For_Copy : System.Address;  
-       Data_Size                           : Integer;  
-       Max_Samples                         : Long_Integer;  
-       Sample_States                       : SampleStateMask;  
-       View_States                         : ViewStateMask;  
-       Instance_States                     : InstanceStateMask;  
-       Take                                : DDS.Boolean) return DDS.ReturnCode_T;  
-   
-   
-    procedure ReadI  
-      (Self            : not null access Ref;  
-       Received_Data   : System.Address;  
-       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       Sample_States   : in Standard.DDS.SampleStateMask := Standard.DDS.ANY_SAMPLE_STATE;  
-       View_States     : in Standard.DDS.ViewStateMask := Standard.DDS.ANY_VIEW_STATE;  
-       Instance_States : in Standard.DDS.InstanceStateMask := Standard.DDS.ANY_INSTANCE_STATE);  
-   
-    procedure TakeI  
-      (Self            : not null access Ref;  
-       Received_Data   : System.Address;  
-       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       Sample_States   : in Standard.DDS.SampleStateMask := Standard.DDS.ANY_SAMPLE_STATE;  
-       View_States     : in Standard.DDS.ViewStateMask := Standard.DDS.ANY_VIEW_STATE;  
-       Instance_States : in Standard.DDS.InstanceStateMask := Standard.DDS.ANY_INSTANCE_STATE);  
-   
-    procedure Read_W_Condition  
-      (Self          : not null access Ref;  
-       Received_Data : System.Address;  
-       Info_Seq      : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples   : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       Condition     : access Standard.DDS.ReadCondition.Ref'Class);  
-   
-    function Read_W_Condition  
-      (Self          : not null access Ref;  
-       Received_Data : System.Address;  
-       Info_Seq      : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples   : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       Condition     : access Standard.DDS.ReadCondition.Ref'Class) return DDS.ReturnCode_T;  
-   
-   
-    procedure Take_W_Condition  
-      (Self          : not null access Ref;  
-       Received_Data : System.Address;  
-       Info_Seq      : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples   : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       Condition     : access Standard.DDS.ReadCondition.Ref'Class);  
-   
-    function Take_W_Condition  
-      (Self          : not null access Ref;  
-       Received_Data : System.Address;  
-       Info_Seq      : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples   : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       Condition     : access Standard.DDS.ReadCondition.Ref'Class) return DDS.ReturnCode_T;  
-   
-   
-    procedure Read_Next_Sample  
-      (Self          : not null access Ref;  
-       Received_Data : System.Address;  
-       Sample_Info   : not null access Standard.DDS.SampleInfo);  
-   
-   
-    procedure Take_Next_Sample  
-      (Self          : not null access Ref;  
-       Received_Data : System.Address;  
-       Sample_Info   : not null access Standard.DDS.SampleInfo);  
-   
-   
-    procedure Read_Instance  
-      (Self            : not null access Ref;  
-       Received_Data   : System.Address;  
-       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       A_Handle        : access constant Standard.DDS.InstanceHandle_T;  
-       Sample_States   : in Standard.DDS.SampleStateMask := Standard.DDS.ANY_SAMPLE_STATE;  
-       View_States     : in Standard.DDS.ViewStateMask := Standard.DDS.ANY_VIEW_STATE;  
-       Instance_States : in Standard.DDS.InstanceStateMask := Standard.DDS.ANY_INSTANCE_STATE);  
-   
-   
-    procedure Take_Instance  
-      (Self            : not null access Ref;  
-       Received_Data   : System.Address;  
-       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       A_Handle        : access constant Standard.DDS.InstanceHandle_T;  
-       Sample_States   : in Standard.DDS.SampleStateMask := Standard.DDS.ANY_SAMPLE_STATE;  
-       View_States     : in Standard.DDS.ViewStateMask := Standard.DDS.ANY_VIEW_STATE;  
-       Instance_States : in Standard.DDS.InstanceStateMask := Standard.DDS.ANY_INSTANCE_STATE);  
-   
-   
-    procedure Read_Next_Instance  
-      (Self            : not null access Ref;  
-       Received_Data   : System.Address;  
-       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       Previous_Handle : access constant Standard.DDS.InstanceHandle_T;  
-       Sample_States   : in Standard.DDS.SampleStateMask := Standard.DDS.ANY_SAMPLE_STATE;  
-       View_States     : in Standard.DDS.ViewStateMask := Standard.DDS.ANY_VIEW_STATE;  
-       Instance_States : in Standard.DDS.InstanceStateMask := Standard.DDS.ANY_INSTANCE_STATE);  
-   
-   
-    procedure Take_Next_Instance  
-      (Self            : not null access Ref;  
-       Received_Data   : System.Address;  
-       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       Previous_Handle : access constant Standard.DDS.InstanceHandle_T;  
-       Sample_States   : in Standard.DDS.SampleStateMask := Standard.DDS.ANY_SAMPLE_STATE;  
-       View_States     : in Standard.DDS.ViewStateMask := Standard.DDS.ANY_VIEW_STATE;  
-       Instance_States : in Standard.DDS.InstanceStateMask := Standard.DDS.ANY_INSTANCE_STATE);  
-   
-   
-   
-    procedure Read_Next_Instance_W_Condition  
-      (Self            : not null access Ref;  
-       Received_Data   : System.Address;  
-       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       Previous_Handle : access constant Standard.DDS.InstanceHandle_T;  
-       Condition       : Standard.DDS.ReadCondition.Ref_Access);  
-    function Read_Next_Instance_W_Condition  
-      (Self            : not null access Ref;  
-       Received_Data   : System.Address;  
-       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       Previous_Handle : access constant Standard.DDS.InstanceHandle_T;  
-       Condition       : Standard.DDS.ReadCondition.Ref_Access) return DDS.ReturnCode_T;  
-   
-   
-   
-    procedure Take_Next_Instance_W_Condition  
-      (Self            : not null access Ref;  
-       Received_Data   : System.Address;  
-       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       Previous_Handle : access constant Standard.DDS.InstanceHandle_T;  
-       Condition       : Standard.DDS.ReadCondition.Ref_Access);  
-    function Take_Next_Instance_W_Condition  
-      (Self            : not null access Ref;  
-       Received_Data   : System.Address;  
-       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence;  
-       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED;  
-       Previous_Handle : access constant Standard.DDS.InstanceHandle_T;  
-       Condition       : Standard.DDS.ReadCondition.Ref_Access) return DDS.ReturnCode_T;  
-   
-   
-   
-    procedure Return_Loan  
-      (Self          : not null access Ref;  
-       Received_Data : System.Address;  
-       Info_Seq      : not null access Standard.DDS.SampleInfo_Seq.Sequence);  
-   
-   
-   
-    function Lookup_Instance  
-      (Self       : not null access Ref;  
-       Key_Holder : System.Address) return Standard.DDS.InstanceHandle_T;  
-   
-    function Is_Data_ConsistentI  
-      (Self          : not null access Ref;  
-       Sample        : System.Address;  
-       Sample_Info   : not null DDS.SampleInfo_Access;  
-       MetpImpl      : DDS.MetpTypeSupport.Ref_Access) return Standard.Boolean;  
-   
-    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  call_listener (Self  : not null access Ref;  
-                              mask  : StatusMask);  
-   
-    procedure  set_liveliness_changed_status  
-      (Self : not null access Ref;  
-       To  : LivelinessChangedStatus);  
-   
-    function GetInterface (Self : not null access constant Ref) return DDS_DataReader_Access;  
-    procedure SetInterface (Self : not null access Ref; To : DDS_DataReader_Access);  
-    function as_dds_entety_access is  
-      new Ada.Unchecked_Conversion (DDS_DataReader_Access, DDS.Entity_Impl.DDS_Entity_Access);  
-   
-   
-    procedure Get_Key_Value_UntypedI  
-      (Self          : not null access constant Ref;  
-       Key_Holder    : System.Address;  
-       Handle        : access constant DDS.InstanceHandle_T);  
-   
-    procedure Get_Key_Value  
-      (Self       : not null access constant Ref;  
-       Key_Holder : System.Address;  
-       Handle     : access constant Standard.DDS.InstanceHandle_T) renames Get_Key_Value_UntypedI;  
-   
-   
-    function Lookup_Instance_UntypedI (Self          : not null access constant Ref;  
-                                       Key_Holder    : System.Address) return DDS.InstanceHandle_T;  
-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
-    function Return_Loan_UntypedI  
-      (Self          : not null access constant Ref;  
-       Received_Data : System.Address;  
-       Data_Count    : Natural;  
-       Info_Seq      : Standard.DDS.SampleInfo_Seq.Sequence) return DDS.ReturnCode_T;  
-   
-    procedure Return_Loan_UntypedI  
-      (Self          : not null access constant Ref;  
-       Received_Data : System.Address;  
-       Data_Count    : Natural;  
-       Info_Seq      : Standard.DDS.SampleInfo_Seq.Sequence);  
-   
-   
-    function Read_Or_Take_W_Condition_UntypedI  
-      (Self                                : not null access constant Ref;  
-       Is_Loan                             : out DDS.Boolean;  
-       Received_Data                       : System.Address;  
-       Data_Count                          : access Natural;  
-       Info_Seq                            : SampleInfo_Seq.Sequence;  
-       Data_Seq_Len                        : Long_Integer;  
-       Data_Seq_Max_Len                    : Long_Integer;  
-       Data_Seq_Has_Ownership              : Long_Integer;  
-       Data_Seq_Contiguous_Buffer_For_Copy : System.Address;  
-       Data_Size                           : Integer;  
-       Max_Samples                         : Long_Integer;  
-       Condition                           : not null access DDS.ReadCondition.Ref'Class;  
-       Take                                : DDS.Boolean) return DDS.ReturnCode_T;  
-   
-    function Read_Or_Take_Instance_UntypedI  
-      (Self                                : not null access constant Ref;  
-       Is_Loan                             : out DDS.Boolean;  
-       Received_Data                       : System.Address;  
-       Data_Count                          : access Natural;  
-       Info_Seq                            : SampleInfo_Seq.Sequence;  
-       Data_Seq_Len                        : Long_Integer;  
-       Data_Seq_Max_Len                    : Long_Integer;  
-       Data_Seq_Has_Ownership              : Long_Integer;  
-       Data_Seq_Contiguous_Buffer_For_Copy : System.Address;  
-       Data_Size                           : Integer;  
-       Max_Samples                         : Long_Integer;  
-       Handle                              : DDS.InstanceHandle_T_Access;  
-       Sample_States                       : DDS.SampleStateMask;  
-       View_States                         : DDS.ViewStateMask;  
-       Instance_States                     : DDS.InstanceStateMask;  
-       Take                                : DDS.Boolean) return DDS.ReturnCode_T;  
-   
-    function Read_Or_Take_Instance_W_Condition_UntypedI  
-      (Self                                : not null access constant Ref;  
-       Is_Loan                             : access DDS.Boolean;  
-       Received_Data                       : System.Address;  
-       Data_Count                          : access Natural;  
-       Info_Seq                            : SampleInfo_Seq.Sequence;  
-       Data_Seq_Len                        : Long_Integer;  
-       Data_Seq_Max_Len                    : Long_Integer;  
-       Data_Seq_Has_Ownership              : Long_Integer;  
-       Data_Seq_Contiguous_Buffer_For_Copy : System.Address;  
-       Data_Size                           : Integer;  
-       Max_Samples                         : Long_Integer;  
-       Handle                              : DDS.InstanceHandle_T_Access;  
-       Condition                           : not null access DDS.ReadCondition.Ref'Class;  
-       Take                                : DDS.Boolean) return DDS.ReturnCode_T;  
-   
-    function Read_Or_Take_Next_Instance_UntypedI  
-      (Self                                : not null access constant Ref;  
-       Is_Loan                             : access DDS.Boolean;  
-       Received_Data                       : System.Address;  
-       Data_Count                          : access Natural;  
-       Info_Seq                            : SampleInfo_Seq.Sequence;  
-       Data_Seq_Len                        : Long_Integer;  
-       Data_Seq_Max_Len                    : Long_Integer;  
-       Data_Seq_Has_Ownership              : Long_Integer;  
-       Data_Seq_Contiguous_Buffer_For_Copy : System.Address;  
-       Data_Size                           : Integer;  
-       Max_Samples                         : Long_Integer;  
-       Previous_Handle                     : DDS.InstanceHandle_T_Access;  
-       Sample_States                       : DDS.SampleStateMask;  
-       View_States                         : DDS.ViewStateMask;  
-       Instance_States                     : DDS.InstanceStateMask;  
-       Take                                : DDS.Boolean) return DDS.ReturnCode_T;  
-   
-    function Read_Or_Take_Next_Instance_W_Condition_UntypedI  
-      (Self                                : not null access constant Ref;  
-       Is_Loan                             : access DDS.Boolean;  
-       Received_Data                       : System.Address;  
-       Data_Count                          : access Natural;  
-       Info_Seq                            : SampleInfo_Seq.Sequence;  
-       Data_Seq_Len                        : Long_Integer;  
-       Data_Seq_Max_Len                    : Long_Integer;  
-       Data_Seq_Has_Ownership              : Long_Integer;  
-       Data_Seq_Contiguous_Buffer_For_Copy : System.Address;  
-       Data_Size                           : Integer;  
-       Max_Samples                         : Long_Integer;  
-       Previous_Handle                     : DDS.InstanceHandle_T_Access;  
-       Condition                           : not null access DDS.ReadCondition.Ref'Class;  
-       Take                                : DDS.Boolean) return DDS.ReturnCode_T;  
-   
-    function Read_Or_Take_Next_Sample_UntypedI  
-      (Self                                : not null access constant Ref;  
-       Received_Data                       : System.Address;  
-       Sample_Info                         : DDS.SampleInfo;  
-       Take                                : DDS.Boolean) return DDS.ReturnCode_T;  
-   
-    function Get_Metp (Self : not null access Ref) return not null DDS.MetpTypeSupport.Ref_Access is abstract;  
-   
- private  
-   
-    type Ref is abstract new DDS.Domain_Entity_Impl.Ref and DDS.DataReader.Ref with null record;  
-   
-    procedure Free_Impl is new Ada.Unchecked_Deallocation (Ref'Class, Ref_Access);  
-    procedure Free (This : in out Ref_Access) renames Free_Impl;  
-   
-   
- end DDS.DataReader_Impl;