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 DDS.Topic; 
  13. with DDS.TopicDescription_Impl; 
  14. with DDS.ContentFilteredTopic; 
  15. with DDS.DomainParticipant; 
  16. with RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h; 
  17. with RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h; 
  18. with RTIDDS.Low_Level.ndds_dds_c_dds_c_infrastructure_h; 
  19. package DDS.ContentFilteredTopic_Impl is 
  20.    use RTIDDS.Low_Level.ndds_dds_c_dds_c_topic_h; 
  21.    use RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h; 
  22.    use RTIDDS.Low_Level.ndds_dds_c_dds_c_infrastructure_h; 
  23.  
  24.    type Ref is limited new DDS.TopicDescription_Impl.Ref and DDS.ContentFilteredTopic.Ref with private; 
  25.    type Ref_Access is access all Ref'Class; 
  26.  
  27.    --  implement ContentFilteredTopic interface 
  28.  
  29.    function Get_Filter_Expression 
  30.      (Self : not null access Ref) 
  31.      return DDS.String; 
  32.  
  33.    procedure Get_Expression_Parameters 
  34.      (Self       : not null access Ref; 
  35.       Parameters : access DDS.String_Seq.Sequence); 
  36.  
  37.    procedure Set_Expression_Parameters 
  38.      (Self       : not null access Ref; 
  39.       Parameters : access constant DDS.String_Seq.Sequence); 
  40.  
  41.    function Get_Related_Topic 
  42.      (Self : not null access Ref) 
  43.      return DDS.Topic.Ref_Access; 
  44.  
  45.    procedure Free (This : in out Ref_Access); 
  46.  
  47.    function CreateI 
  48.      (C_Participant     : access DDS_DomainParticipant; 
  49.       Name              : in DDS.String; 
  50.       Related_Topic     : in DDS.Topic.Ref_Access; 
  51.       Filter_Expression : in DDS.String; 
  52.       Filter_Parameters : access DDS.String_Seq.Sequence) 
  53.      return DDS.ContentFilteredTopic.Ref_Access; 
  54.  
  55.    procedure Append_To_Expression_Parameter 
  56.      (Self : not null access Ref; 
  57.       Index : Natural; 
  58.       Value : DDS.String); 
  59.  
  60.    procedure Remove_From_Expression_Parameter 
  61.      (Self : not null access Ref; 
  62.       Index : Natural; 
  63.       Value : DDS.String); 
  64.  
  65.  
  66.    function Get_Native_Wrapper (Self : not null access Ref) 
  67.       return access DDS_ContentFilteredTopic; 
  68.  
  69.    function Get_FacadeI (CF_TopicW : access DDS_ContentFilteredTopic) 
  70.                          return Ref_Access; 
  71.  
  72.    procedure Finalize_Callback 
  73.      (arg1 : System.Address; 
  74.       arg2 : System.Address; 
  75.       arg3 : access RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h.REDAWorker); 
  76.    pragma Convention (C, Finalize_Callback); 
  77. private 
  78.    type Ref is limited new DDS.TopicDescription_Impl.Ref and DDS.ContentFilteredTopic.Ref with null record; 
  79.  
  80.    procedure Free_Impl is new Ada.Unchecked_Deallocation (Ref'Class, Ref_Access); 
  81.    procedure Free_Mem (This : in out Ref_Access) renames Free_Impl; 
  82.  
  83. end DDS.ContentFilteredTopic_Impl;