1. pragma Ada_2012; 
  2. --  (c) Copyright, Real-Time Innovations, $Date:: 2012-02-16 #$ 
  3. --  All rights reserved. 
  4. -- 
  5. --  No duplications, whole or partial, manual or electronic, may be made 
  6. --  without express written permission.  Any such copies, or 
  7. --  revisions thereof, must display this notice unaltered. 
  8. --  This code contains trade secrets of Real-Time Innovations, Inc. 
  9.  
  10.  
  11.  
  12. with Ada.Unchecked_Conversion; 
  13. with DDS.DataReader; 
  14. with DDS.Domain_Entity_Impl; 
  15. with DDS.Entity_Impl; 
  16. with DDS.Subscriber; 
  17. with DDS.Topic; 
  18. with DDS.TopicDescription; 
  19. with DDS.DataReaderListener; 
  20. with DDS.QueryCondition; 
  21. with DDS.ReadCondition; 
  22. with DDS.MetpTypeSupport; 
  23. with DDS.IndexCondition; 
  24. with System; 
  25. with RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h; 
  26. with RTIDDS.Low_Level.ndds_dds_c_dds_c_subscription_h; 
  27.  
  28. package DDS.DataReader_Impl is 
  29.  
  30.    type Ref is new DDS.Domain_Entity_Impl.Ref and DDS.DataReader.Ref with private; 
  31.    type Ref_Access is access all Ref'Class; 
  32.  
  33.    function Create_Readcondition 
  34.      (Self            : not null access Ref; 
  35.       Sample_States   : in DDS.SampleStateMask; 
  36.       View_States     : in DDS.ViewStateMask; 
  37.       Instance_States : in DDS.InstanceStateMask) 
  38.       return DDS.ReadCondition.Ref_Access; 
  39.  
  40.    function Create_Querycondition 
  41.      (Self             : not null access Ref; 
  42.       Sample_States    : in DDS.SampleStateMask; 
  43.       View_States      : in DDS.ViewStateMask; 
  44.       Instance_States  : in DDS.InstanceStateMask; 
  45.       Query_Expression : in DDS.String; 
  46.       Query_Parameters : in DDS.String_Seq.Sequence) 
  47.       return DDS.QueryCondition.Ref_Access; 
  48.  
  49.    function Create_IndexCondition 
  50.      (Self            : not null access Ref; 
  51.       Index_Name      : in DDS.String; 
  52.       Sample_State    : in DDS.SampleStateMask; 
  53.       view_state      : in DDS.ViewStateMask; 
  54.       instance_state  : in DDS.InstanceStateMask; 
  55.       Sample_Info     : in DDS.SampleInfo) 
  56.       return DDS.IndexCondition.Ref_Access; 
  57.  
  58.    procedure Delete_Readcondition 
  59.      (Self        : not null access Ref; 
  60.       A_Condition : access DDS.ReadCondition.Ref'Class); 
  61.  
  62.    procedure  Delete_Contained_Entities 
  63.      (Self : not null access Ref); 
  64.    --  Deletes all the entities that were created by means of the "create" operations on the DDS_DataReader. 
  65.    --  Deletes all contained DDS_ReadCondition and DDS_QueryCondition objects. 
  66.    --  Once DDS_DataReader_delete_contained_entities returns successfully, 
  67.    --  the application may delete the DDS_DataReader, knowing that it has no contained 
  68.    --- DDS_ReadCondition and DDS_QueryCondition objects. 
  69.    --      rasies exception on error 
  70.  
  71.    procedure Set_Qos 
  72.      (Self : not null access Ref; 
  73.       Qos  : in DDS.DataReaderQoS); 
  74.  
  75.    procedure Set_Qos_With_Profile 
  76.      (Self          : not null access Ref; 
  77.       Library_Name  : in String; 
  78.       Profile_Name  : in String); 
  79.    procedure Set_Qos_With_Profile 
  80.      (Self          : not null access Ref; 
  81.       Library_Name  : in Standard.String; 
  82.       Profile_Name  : in Standard.String); 
  83.  
  84.    procedure Get_Qos 
  85.      (Self : not null access Ref; 
  86.       Qos  : in out DDS.DataReaderQoS); 
  87.  
  88.    procedure Set_Listener 
  89.      (Self       : not null access Ref; 
  90.       A_Listener : in DDS.DataReaderListener.Ref_Access; 
  91.       Mask       : in DDS.StatusMask); 
  92.  
  93.    function Get_Listener 
  94.      (Self : not null access Ref) 
  95.       return DDS.DataReaderListener.Ref_Access; 
  96.  
  97.    procedure Call_ListnerT 
  98.      (Self       : not null access Ref; 
  99.       A_Listener : in DDS.DataReaderListener.Ref_Access; 
  100.       Mask       : in DDS.StatusMask); 
  101.  
  102.    function Get_Topicdescription 
  103.      (Self : not null access Ref) 
  104.       return DDS.TopicDescription.Ref_Access; 
  105.  
  106.    function Get_Subscriber 
  107.      (Self : not null access Ref) 
  108.       return access DDS.Subscriber.Ref'Class; 
  109.  
  110.    procedure Get_Sample_Rejected_Status 
  111.      (Self   : not null access Ref; 
  112.       Status : in out DDS.SampleRejectedStatus); 
  113.  
  114.    procedure Get_Liveliness_Changed_Status 
  115.      (Self   : not null access Ref; 
  116.       Status : in out DDS.LivelinessChangedStatus); 
  117.  
  118.    procedure Get_Requested_Deadline_Missed_Status 
  119.      (Self   : not null access Ref; 
  120.       Status : in out DDS.RequestedDeadlineMissedStatus); 
  121.  
  122.    procedure Get_Requested_Incompatible_Qos_Status 
  123.      (Self   : not null access Ref; 
  124.       Status : in out DDS.RequestedIncompatibleQosStatus); 
  125.  
  126.    procedure Get_Subscription_Matched_Status 
  127.      (Self   : not null access Ref; 
  128.       Status : in out DDS.SubscriptionMatchedStatus); 
  129.  
  130.    procedure Get_Sample_Lost_Status 
  131.      (Self   : not null access Ref; 
  132.       Status : in out DDS.SampleLostStatus); 
  133.  
  134.    procedure Get_Datareader_Cache_Status 
  135.      (Self   : not null access Ref; 
  136.       Status : in out DDS.DataReaderCacheStatus); 
  137.  
  138.    procedure Get_Datareader_Protocol_Status 
  139.      (Self   : not null access Ref; 
  140.       Status : in out DDS.DataReaderProtocolStatus); 
  141.  
  142.    procedure Get_Matched_Publication_Datareader_Protocol_Status 
  143.      (Self               : not null access Ref; 
  144.       Status             : in out DDS.DataReaderProtocolStatus; 
  145.       Publication_Handle : not null access DDS.InstanceHandle_T); 
  146.  
  147.    procedure Wait_For_Historical_Data 
  148.      (Self     : not null access Ref; 
  149.       Max_Wait : in DDS.Duration_T); 
  150.  
  151.    function Get_Matched_Publications 
  152.      (Self                : not null access Ref) 
  153.       return DDS.InstanceHandle_Seq.Sequence; 
  154.  
  155.    function Get_Matched_Publication_Data 
  156.      (Self               : not null access Ref; 
  157.       Publication_Handle : not null access DDS.InstanceHandle_T) 
  158.       return DDS.PublicationBuiltinTopicData; 
  159.  
  160.    procedure Free (This : in out Ref_Access); 
  161.  
  162.    type DDS_DataReader_Access is access all RTIDDS.Low_Level.ndds_dds_c_dds_c_subscription_h.DDS_DataReader with Storage_Size => 0; 
  163.  
  164.    function CreateI (Subscriber : not null DDS.Subscriber.Ref_Access; 
  165.                      Topic      : not null access DDS.TopicDescription.Ref'Class; 
  166.                      Qos        : in DDS.DataReaderQoS; 
  167.                      Listener   : in DDS.DataReaderListener.Ref_Access; 
  168.                      Mask       : in DDS.StatusMask) 
  169.                      return DDS.DataReader.Ref_Access; 
  170.  
  171.    function CreateI (Subscriber   : not null DDS.Subscriber.Ref_Access; 
  172.                      Topic        : not null access DDS.TopicDescription.Ref'Class; 
  173.                      Library_Name : in DDS.String; 
  174.                      Profile_Name : in DDS.String; 
  175.                      Listener     : in DDS.DataReaderListener.Ref_Access; 
  176.                      Mask         : in DDS.StatusMask) 
  177.                      return DDS.DataReader.Ref_Access; 
  178.  
  179.    function Create_WrapperI (Subscriber   : not null DDS.Subscriber.Ref_Access; 
  180.                              C_DataReader : DDS_DataReader_Access; 
  181.                              Topic        : not null access DDS.Topic.Ref'Class) 
  182.                              return Ref_Access; 
  183.  
  184.    function Get_FacadeI (C_DataReader : DDS_DataReader_Access) 
  185.                          return Ref_Access; 
  186.  
  187.  
  188.    procedure Read_Or_Take_UntypedI 
  189.      (Self                                : not null access constant Ref; 
  190.       Is_Loan                             : out DDS.Boolean; 
  191.       Received_Data                       : System.Address; 
  192.       Data_Count                          : out Natural; 
  193.       Info_Seq                            : SampleInfo_Seq.Sequence_Access; 
  194.       Data_Seq_Len                        : Long_Integer; 
  195.       Data_Seq_Max_Len                    : Long_Integer; 
  196.       Data_Seq_Has_Ownership              : Long_Integer; 
  197.       Data_Seq_Contiguous_Buffer_For_Copy : System.Address; 
  198.       Data_Size                           : Integer; 
  199.       Max_Samples                         : Long_Integer; 
  200.       Sample_States                       : SampleStateMask; 
  201.       View_States                         : ViewStateMask; 
  202.       Instance_States                     : InstanceStateMask; 
  203.       Take                                : DDS.Boolean); 
  204.    function Read_Or_Take_UntypedI 
  205.      (Self                                : not null access constant Ref; 
  206.       Is_Loan                             : access DDS.Boolean; 
  207.       Received_Data                       : System.Address; 
  208.       Data_Count                          : access Natural; 
  209.       Info_Seq                            : SampleInfo_Seq.Sequence_Access; 
  210.       Data_Seq_Len                        : Long_Integer; 
  211.       Data_Seq_Max_Len                    : Long_Integer; 
  212.       Data_Seq_Has_Ownership              : Long_Integer; 
  213.       Data_Seq_Contiguous_Buffer_For_Copy : System.Address; 
  214.       Data_Size                           : Integer; 
  215.       Max_Samples                         : Long_Integer; 
  216.       Sample_States                       : SampleStateMask; 
  217.       View_States                         : ViewStateMask; 
  218.       Instance_States                     : InstanceStateMask; 
  219.       Take                                : DDS.Boolean) return DDS.ReturnCode_t; 
  220.  
  221.  
  222.    procedure ReadI 
  223.      (Self            : not null access Ref; 
  224.       Received_Data   : System.Address; 
  225.       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  226.       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  227.       Sample_States   : in Standard.DDS.SampleStateMask := Standard.DDS.ANY_SAMPLE_STATE; 
  228.       View_States     : in Standard.DDS.ViewStateMask := Standard.DDS.ANY_VIEW_STATE; 
  229.       Instance_States : in Standard.DDS.InstanceStateMask := Standard.DDS.ANY_INSTANCE_STATE); 
  230.  
  231.    procedure TakeI 
  232.      (Self            : not null access Ref; 
  233.       Received_Data   : System.Address; 
  234.       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  235.       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  236.       Sample_States   : in Standard.DDS.SampleStateMask := Standard.DDS.ANY_SAMPLE_STATE; 
  237.       View_States     : in Standard.DDS.ViewStateMask := Standard.DDS.ANY_VIEW_STATE; 
  238.       Instance_States : in Standard.DDS.InstanceStateMask := Standard.DDS.ANY_INSTANCE_STATE); 
  239.  
  240.    procedure Read_W_Condition 
  241.      (Self          : not null access Ref; 
  242.       Received_Data : System.Address; 
  243.       Info_Seq      : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  244.       Max_Samples   : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  245.       Condition     : access Standard.DDS.ReadCondition.Ref'Class); 
  246.  
  247.    function Read_W_Condition 
  248.      (Self          : not null access Ref; 
  249.       Received_Data : System.Address; 
  250.       Info_Seq      : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  251.       Max_Samples   : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  252.       Condition     : access Standard.DDS.ReadCondition.Ref'Class) return DDS.ReturnCode_t; 
  253.  
  254.  
  255.    procedure Take_W_Condition 
  256.      (Self          : not null access Ref; 
  257.       Received_Data : System.Address; 
  258.       Info_Seq      : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  259.       Max_Samples   : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  260.       Condition     : access Standard.DDS.ReadCondition.Ref'Class); 
  261.  
  262.    function Take_W_Condition 
  263.      (Self          : not null access Ref; 
  264.       Received_Data : System.Address; 
  265.       Info_Seq      : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  266.       Max_Samples   : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  267.       Condition     : access Standard.DDS.ReadCondition.Ref'Class) return DDS.ReturnCode_t; 
  268.  
  269.  
  270.    procedure Read_Next_Sample 
  271.      (Self          : not null access Ref; 
  272.       Received_Data : System.Address; 
  273.       Sample_Info   : not null access Standard.DDS.SampleInfo); 
  274.  
  275.  
  276.    procedure Take_Next_Sample 
  277.      (Self          : not null access Ref; 
  278.       Received_Data : System.Address; 
  279.       Sample_Info   : not null access Standard.DDS.SampleInfo); 
  280.  
  281.  
  282.    procedure Read_Instance 
  283.      (Self            : not null access Ref; 
  284.       Received_Data   : System.Address; 
  285.       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  286.       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  287.       A_Handle        : access constant Standard.DDS.InstanceHandle_T; 
  288.       Sample_States   : in Standard.DDS.SampleStateMask := Standard.DDS.ANY_SAMPLE_STATE; 
  289.       View_States     : in Standard.DDS.ViewStateMask := Standard.DDS.ANY_VIEW_STATE; 
  290.       Instance_States : in Standard.DDS.InstanceStateMask := Standard.DDS.ANY_INSTANCE_STATE); 
  291.  
  292.  
  293.    procedure Take_Instance 
  294.      (Self            : not null access Ref; 
  295.       Received_Data   : System.Address; 
  296.       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  297.       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  298.       A_Handle        : access constant Standard.DDS.InstanceHandle_T; 
  299.       Sample_States   : in Standard.DDS.SampleStateMask := Standard.DDS.ANY_SAMPLE_STATE; 
  300.       View_States     : in Standard.DDS.ViewStateMask := Standard.DDS.ANY_VIEW_STATE; 
  301.       Instance_States : in Standard.DDS.InstanceStateMask := Standard.DDS.ANY_INSTANCE_STATE); 
  302.  
  303.  
  304.    procedure Read_Next_Instance 
  305.      (Self            : not null access Ref; 
  306.       Received_Data   : System.Address; 
  307.       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  308.       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  309.       Previous_Handle : access constant Standard.DDS.InstanceHandle_T; 
  310.       Sample_States   : in Standard.DDS.SampleStateMask := Standard.DDS.ANY_SAMPLE_STATE; 
  311.       View_States     : in Standard.DDS.ViewStateMask := Standard.DDS.ANY_VIEW_STATE; 
  312.       Instance_States : in Standard.DDS.InstanceStateMask := Standard.DDS.ANY_INSTANCE_STATE); 
  313.  
  314.  
  315.    procedure Take_Next_Instance 
  316.      (Self            : not null access Ref; 
  317.       Received_Data   : System.Address; 
  318.       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  319.       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  320.       Previous_Handle : access constant Standard.DDS.InstanceHandle_T; 
  321.       Sample_States   : in Standard.DDS.SampleStateMask := Standard.DDS.ANY_SAMPLE_STATE; 
  322.       View_States     : in Standard.DDS.ViewStateMask := Standard.DDS.ANY_VIEW_STATE; 
  323.       Instance_States : in Standard.DDS.InstanceStateMask := Standard.DDS.ANY_INSTANCE_STATE); 
  324.  
  325.  
  326.  
  327.    procedure Read_Next_Instance_W_Condition 
  328.      (Self            : not null access Ref; 
  329.       Received_Data   : System.Address; 
  330.       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  331.       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  332.       Previous_Handle : access constant Standard.DDS.InstanceHandle_T; 
  333.       Condition       : Standard.DDS.ReadCondition.Ref_Access); 
  334.    function Read_Next_Instance_W_Condition 
  335.      (Self            : not null access Ref; 
  336.       Received_Data   : System.Address; 
  337.       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  338.       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  339.       Previous_Handle : access constant Standard.DDS.InstanceHandle_T; 
  340.       Condition       : Standard.DDS.ReadCondition.Ref_Access) return DDS.ReturnCode_t; 
  341.  
  342.  
  343.  
  344.    procedure Take_Next_Instance_W_Condition 
  345.      (Self            : not null access Ref; 
  346.       Received_Data   : System.Address; 
  347.       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  348.       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  349.       Previous_Handle : access constant Standard.DDS.InstanceHandle_T; 
  350.       Condition       : Standard.DDS.ReadCondition.Ref_Access); 
  351.    function Take_Next_Instance_W_Condition 
  352.      (Self            : not null access Ref; 
  353.       Received_Data   : System.Address; 
  354.       Info_Seq        : not null access Standard.DDS.SampleInfo_Seq.Sequence; 
  355.       Max_Samples     : in Standard.DDS.Long := Standard.DDS.LENGTH_UNLIMITED; 
  356.       Previous_Handle : access constant Standard.DDS.InstanceHandle_T; 
  357.       Condition       : Standard.DDS.ReadCondition.Ref_Access) return DDS.ReturnCode_t; 
  358.  
  359.  
  360.  
  361.    procedure Return_Loan 
  362.      (Self          : not null access Ref; 
  363.       Received_Data : System.Address; 
  364.       Info_Seq      : not null access Standard.DDS.SampleInfo_Seq.Sequence); 
  365.  
  366.  
  367.  
  368.    function Lookup_Instance 
  369.      (Self       : not null access Ref; 
  370.       Key_Holder : System.Address) return Standard.DDS.InstanceHandle_T; 
  371.  
  372.    function Is_Data_ConsistentI 
  373.      (Self          : not null access Ref; 
  374.       Sample        : System.Address; 
  375.       Sample_Info   : not null DDS.SampleInfo_Access; 
  376.       MetpImpl      : DDS.MetpTypeSupport.Ref'Class) return Standard.Boolean; 
  377.  
  378.    procedure Finalize_Callback 
  379.      (Arg1 : System.Address; 
  380.       Arg2 : System.Address; 
  381.       Arg3 : access RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h.REDAWorker); 
  382.    pragma Convention (C, Finalize_Callback); 
  383.  
  384.    procedure  call_listener (Self  : not null access Ref; 
  385.                              mask  : StatusMask); 
  386.  
  387.    procedure  set_liveliness_changed_status 
  388.      (Self : not null access Ref; 
  389.       To  : LivelinessChangedStatus); 
  390.  
  391.    function GetInterface (Self : not null access constant Ref) return DDS_DataReader_Access; 
  392.    procedure SetInterface (Self : not null access Ref; To : DDS_DataReader_Access); 
  393.    function as_dds_entety_access is 
  394.      new Ada.Unchecked_Conversion (DDS_DataReader_Access, DDS.Entity_Impl.DDS_Entity_Access); 
  395.  
  396.  
  397.    procedure Get_Key_Value_UntypedI 
  398.      (Self          : not null access constant Ref; 
  399.       Key_Holder    : System.Address; 
  400.       Handle        : access constant DDS.InstanceHandle_T); 
  401.  
  402.    procedure Get_Key_Value 
  403.      (Self       : not null access constant Ref; 
  404.       Key_Holder : System.Address; 
  405.       Handle     : access constant Standard.DDS.InstanceHandle_T) renames Get_Key_Value_UntypedI; 
  406.  
  407.  
  408.    function Lookup_Instance_UntypedI (Self          : not null access constant Ref; 
  409.                                       Key_Holder    : System.Address) return DDS.InstanceHandle_T; 
  410.  
  411.  
  412. --  DDS_InstanceHandle_t TDataReader_lookup_instance(TDataReader* self, 
  413. --                                                   const TData* key_holder) { 
  414. --      return DDS_DataReader_lookup_instance_untypedI( 
  415. --          (DDS_DataReader *)self, key_holder); 
  416. --  } 
  417. -- 
  418. --  DDS.ReturnCode_t TDataReader_add_sample_to_remote_writer_queue(TDataReader* self, 
  419. --                                                              const TData* local_data, 
  420. --                                                              const struct DDS_GUID_t* queue_writer_guid) { 
  421. --      return DDS_DataReader_add_sample_to_remote_writer_queue_untypedI( 
  422. --          (DDS_DataReader *)self, local_data, queue_writer_guid); 
  423. --  } 
  424.  
  425.    function Return_Loan_UntypedI 
  426.      (Self          : not null access constant Ref; 
  427.       Received_Data : System.Address; 
  428.       Data_Count    : Natural; 
  429.       Info_Seq      : Standard.DDS.SampleInfo_Seq.Sequence) return DDS.ReturnCode_t; 
  430.  
  431.    procedure Return_Loan_UntypedI 
  432.      (Self          : not null access constant Ref; 
  433.       Received_Data : System.Address; 
  434.       Data_Count    : Natural; 
  435.       Info_Seq      : Standard.DDS.SampleInfo_Seq.Sequence); 
  436.  
  437.  
  438.    function Read_Or_Take_W_Condition_UntypedI 
  439.      (Self                                : not null access constant Ref; 
  440.       Is_Loan                             : access DDS.Boolean; 
  441.       Received_Data                       : System.Address; 
  442.       Data_Count                          : access Natural; 
  443.       Info_Seq                            : SampleInfo_Seq.Sequence; 
  444.       Data_Seq_Len                        : Long_Integer; 
  445.       Data_Seq_Max_Len                    : Long_Integer; 
  446.       Data_Seq_Has_Ownership              : Long_Integer; 
  447.       Data_Seq_Contiguous_Buffer_For_Copy : System.Address; 
  448.       Data_Size                           : Integer; 
  449.       Max_Samples                         : Long_Integer; 
  450.       Condition                           : not null access DDS.ReadCondition.Ref'Class; 
  451.       Take                                : DDS.Boolean) return DDS.ReturnCode_t; 
  452.  
  453.    function Read_Or_Take_Instance_UntypedI 
  454.      (Self                                : not null access constant Ref; 
  455.       Is_Loan                             : access DDS.Boolean; 
  456.       Received_Data                       : System.Address; 
  457.       Data_Count                          : access Natural; 
  458.       Info_Seq                            : SampleInfo_Seq.Sequence; 
  459.       Data_Seq_Len                        : Long_Integer; 
  460.       Data_Seq_Max_Len                    : Long_Integer; 
  461.       Data_Seq_Has_Ownership              : Long_Integer; 
  462.       Data_Seq_Contiguous_Buffer_For_Copy : System.Address; 
  463.       Data_Size                           : Integer; 
  464.       Max_Samples                         : Long_Integer; 
  465.       Handle                              : DDS.InstanceHandle_T_Access; 
  466.       Sample_States                       : DDS.SampleStateMask; 
  467.       View_States                         : DDS.ViewStateMask; 
  468.       Instance_States                     : DDS.InstanceStateMask; 
  469.       Take                                : DDS.Boolean) return DDS.ReturnCode_t; 
  470.  
  471.    function Read_Or_Take_Instance_W_Condition_UntypedI 
  472.      (Self                                : not null access constant Ref; 
  473.       Is_Loan                             : access DDS.Boolean; 
  474.       Received_Data                       : System.Address; 
  475.       Data_Count                          : access Natural; 
  476.       Info_Seq                            : SampleInfo_Seq.Sequence; 
  477.       Data_Seq_Len                        : Long_Integer; 
  478.       Data_Seq_Max_Len                    : Long_Integer; 
  479.       Data_Seq_Has_Ownership              : Long_Integer; 
  480.       Data_Seq_Contiguous_Buffer_For_Copy : System.Address; 
  481.       Data_Size                           : Integer; 
  482.       Max_Samples                         : Long_Integer; 
  483.       Handle                              : DDS.InstanceHandle_T_Access; 
  484.       Condition                           : not null access DDS.ReadCondition.Ref'Class; 
  485.       Take                                : DDS.Boolean) return DDS.ReturnCode_t; 
  486.  
  487.    function Read_Or_Take_Next_Instance_UntypedI 
  488.      (Self                                : not null access constant Ref; 
  489.       Is_Loan                             : access DDS.Boolean; 
  490.       Received_Data                       : System.Address; 
  491.       Data_Count                          : access Natural; 
  492.       Info_Seq                            : SampleInfo_Seq.Sequence; 
  493.       Data_Seq_Len                        : Long_Integer; 
  494.       Data_Seq_Max_Len                    : Long_Integer; 
  495.       Data_Seq_Has_Ownership              : Long_Integer; 
  496.       Data_Seq_Contiguous_Buffer_For_Copy : System.Address; 
  497.       Data_Size                           : Integer; 
  498.       Max_Samples                         : Long_Integer; 
  499.       Previous_Handle                     : DDS.InstanceHandle_T_Access; 
  500.       Sample_States                       : DDS.SampleStateMask; 
  501.       View_States                         : DDS.ViewStateMask; 
  502.       Instance_States                     : DDS.InstanceStateMask; 
  503.       Take                                : DDS.Boolean) return DDS.ReturnCode_t; 
  504.  
  505.    function Read_Or_Take_Next_Instance_W_Condition_UntypedI 
  506.      (Self                                : not null access constant Ref; 
  507.       Is_Loan                             : access DDS.Boolean; 
  508.       Received_Data                       : System.Address; 
  509.       Data_Count                          : access Natural; 
  510.       Info_Seq                            : SampleInfo_Seq.Sequence; 
  511.       Data_Seq_Len                        : Long_Integer; 
  512.       Data_Seq_Max_Len                    : Long_Integer; 
  513.       Data_Seq_Has_Ownership              : Long_Integer; 
  514.       Data_Seq_Contiguous_Buffer_For_Copy : System.Address; 
  515.       Data_Size                           : Integer; 
  516.       Max_Samples                         : Long_Integer; 
  517.       Previous_Handle                     : DDS.InstanceHandle_T_Access; 
  518.       Condition                           : not null access DDS.ReadCondition.Ref'Class; 
  519.       Take                                : DDS.Boolean) return DDS.ReturnCode_t; 
  520.  
  521.    function Read_Or_Take_Next_Sample_UntypedI 
  522.      (Self                                : not null access constant Ref; 
  523.       Received_Data                       : System.Address; 
  524.       Sample_Info                         : DDS.SampleInfo; 
  525.       Take                                : DDS.Boolean) return DDS.ReturnCode_t; 
  526.  
  527.  
  528. private 
  529.  
  530.    type Ref is new DDS.Domain_Entity_Impl.Ref and DDS.DataReader.Ref with null record; 
  531.  
  532.    procedure Free_Impl is new Ada.Unchecked_Deallocation (Ref'Class, Ref_Access); 
  533.    procedure Free (This : in out Ref_Access) renames Free_Impl; 
  534.  
  535.  
  536. end DDS.DataReader_Impl;