pragma Ada_2012;
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 System;
with RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h;
with RTIDDS.Low_Level.ndds_dds_c_dds_c_infrastructure_h; use RTIDDS.Low_Level.ndds_dds_c_dds_c_infrastructure_h;
with RTIDDS.Low_Level.ndds_dds_c_dds_c_subscription_h;
package DDS.DataReader_Impl is
type Ref is 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;
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);
procedure Get_Key_Value
(Self : not null access Ref;
Key_Holder : System.Address;
Handle : access constant Standard.DDS.InstanceHandle_T);
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'Class) 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);
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 : 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;
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 : 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;
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;
private
type Ref is 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;