-- (c) Copyright, Real-Time Innovations, $Date:: 2012-02-16 #$
-- All rights reserved.
--
-- No duplications, whole or partial, manual or electronic, may be made
-- without express written permission. Any such copies, or
-- revisions thereof, must display this notice unaltered.
-- This code contains trade secrets of Real-Time Innovations, Inc.
pragma Ada_05;
with DDS.Condition;
with DDS.GuardCondition_Impl;
-- <dref>GuardCondition</dref>
package DDS.GuardCondition is
-- Detailed Description
-- A specific DDSCondition whose trigger_value is completely under the control of the application.
-- The DDS.GuardCondition provides a way for an application to manually wake up a DDS.WaitSet.
-- This is accomplished by attaching the DDS.GuardCondition to the DDS.SWaitSet and then
-- setting the trigger_value by means of the DDS.GuardCondition.set_trigger_value operation.
--
-- See also:
-- DDS.WaitSet
type Ref is limited new Ada.Finalization.Limited_Controlled and DDS.Condition.Ref with private;
-- <dref>GuardCondition_new</dref>
type Ref_Access is access all Ref'Class;
procedure Initialize
(Self : in out Ref);
procedure Adjust
(Self : in out Ref);
procedure Finalize
(Self : in out Ref);
procedure Set_Trigger_Value
(Self : access Ref;
Value : DDS.Boolean);
-- <dref>GuardCondition_set_trigger_value</dref>
-- <internal>
-- Set the guard condition trigger value.
-- </internal>
function Get_Trigger_Value
(Self : access Ref) return DDS.Boolean;
-- <internal>
-- Returns the trigger value.
-- </internal>
function Get_Impl_ConditionI
(Self : access Ref) return DDS.GuardCondition_Impl.Ref_Access;
procedure Free (This : in out Ref_Access);
-- <dref>GuardCondition_delete</dref>
function "=" (L : GuardCondition.Ref_Access;
R : Condition.Ref_Access) return Boolean;
function "=" (L : Condition.Ref_Access;
R : GuardCondition.Ref_Access) return Boolean;
private
type Ref is limited new Ada.Finalization.Limited_Controlled and DDS.Condition.Ref with record
m_impl : DDS.GuardCondition_Impl.Ref_Access;
end 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.GuardCondition;