pragma Ada_05;
with DDS.DataReader;
with DDS.Domain_Entity_Impl;
with DDS.Subscriber;
with DDS.Topic;
with DDS.TopicDescription;
with DDS.DataReaderListener;
with DDS.QueryCondition;
with DDS.ReadCondition;
with System;
with RTIDDS.Low_Level.reda.worker_impl_h;
with RTIDDS.Low_Level.dds_c.infrastructure_h; use RTIDDS.Low_Level.dds_c.infrastructure_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);
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 : System.Address;
Topic : not null access DDS.Topic.Ref'Class)
return Ref_Access;
function Get_FacadeI (C_DataReader : System.Address)
return Ref_Access;
procedure Read_Or_Take_UntypedI
(Self : not null access 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 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);
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);
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);
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);
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;
procedure Finalize_Callback
(Arg1 : System.Address;
Arg2 : System.Address;
Arg3 : access RTIDDS.Low_Level.reda.worker_impl_h.REDAWorker);
pragma Convention (C, Finalize_Callback);
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;