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