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. with DDS.Entity; 
  12. with DDS.StatusCondition; 
  13. with DDS.StatusCondition_Impl; 
  14. with RTIDDS.Obj_Impl; 
  15. with RTIDDS.Low_Level.ndds_dds_c_dds_c_infrastructure_h; 
  16. with DDS.DomainParticipantFactory; 
  17. package DDS.Entity_Impl is 
  18.    use RTIDDS.Low_Level.ndds_dds_c_dds_c_infrastructure_h; 
  19.    type Ref is limited new RTIDDS.Obj_Impl.Ref and DDS.Entity.Ref with 
  20.       record 
  21.          StatusCondition : aliased DDS.StatusCondition_Impl.Ref; 
  22.          Factory         : DDS.DomainParticipantFactory.Ref_Access; 
  23.       end record; 
  24.    type Ref_Access is access all Ref'Class; 
  25.    type Ref_Access_constant is access constant Ref; 
  26.  
  27.    procedure Enable (Self : not null access Ref); 
  28.  
  29.    function Get_StatusCondition (Self : not null access Ref) return 
  30.       DDS.StatusCondition.Ref_Access; 
  31.  
  32.    function Get_Status_Changes (Self : not null access Ref) return 
  33.      DDS.StatusMask; 
  34.  
  35.    function Get_Instance_Handle (Self : not null access Ref) return 
  36.      DDS.InstanceHandle_T; 
  37.  
  38.    function Get_Entity_Kind (Self : not null access Ref) return 
  39.      DDS.EntityKind_T; 
  40.  
  41.    function Get_User_Data (Self : not null access Ref) return 
  42.      System.Address; 
  43.  
  44.    procedure Set_User_Data (Self : not null access Ref; To : System.Address); 
  45.  
  46.    type DDS_Entity_Access is access all DDS_Entity with Storage_Size => 0; 
  47.    procedure Entity_Initialize_I (Self : access Ref; 
  48.                                   CEntity : DDS_Entity_Access); 
  49.  
  50.    function Wait (Self    : not null access Ref; 
  51.                   Mask    : in DDS.StatusMask; 
  52.                   Timeout : in Duration_T := DURATION_INFINITE) return Boolean; 
  53.    function Wait (Self    : not null access Ref; 
  54.                   Mask    : in DDS.StatusMask; 
  55.                   Timeout : in Duration := Duration'Last) return Boolean; 
  56.    --  Allows an application thread to wait for a status change . 
  57.    --  Returns True if the condition triggerd and False if it was the timeout. 
  58.  
  59.    procedure Wait (Self    : not null access Ref; 
  60.                    Mask    : in DDS.StatusMask; 
  61.                    Timeout : in Duration_T := DURATION_INFINITE); 
  62.    procedure Wait (Self    : not null access Ref; 
  63.                    Mask    : in DDS.StatusMask; 
  64.                    Timeout : in Duration := Duration'Last); 
  65.    --  Allows an application thread to wait for a status change. 
  66.    --  Raises DDS.TIMEOUT on timeout. 
  67.    function GetInterface (Self : not null access Ref) return DDS_Entity_Access; 
  68.    procedure SetInterface (Self : not null access Ref; To : DDS_Entity_Access); 
  69.    function Get_Factory (Self : not null access Ref) return not null access Dds.DomainParticipantFactory.Ref is (Self.Factory); 
  70. end DDS.Entity_Impl;