CVS difference for ais/ai-00297.txt

Differences between 1.21 and version 1.22
Log of other versions for file ais/ai-00297.txt

--- ais/ai-00297.txt	2005/04/13 05:37:09	1.21
+++ ais/ai-00297.txt	2005/06/16 23:47:25	1.22
@@ -1,4 +1,4 @@
-!standard D.7 (10)                                     05-03-23  AI95-00297/12
+!standard D.7 (10)                                     05-05-05  AI95-00297/13
 !standard D.13.1(01)
 !standard D.15(01)
 !class amendment 02-06-01
@@ -53,7 +53,7 @@
 The following language-defined package exists:
 package Ada.Real_Time.Timing_Events is
-  type Timing_Event is limited private;
+  type Timing_Event is tagged limited private;
   type Timing_Event_Handler
        is access protected procedure (Event : in out Timing_Event);
   procedure Set_Handler (Event   : in out Timing_Event;
@@ -82,6 +82,14 @@
 by the implementation when the timing event occurs. Such a protected procedure
 is called a *handler*.
+AARM Note: Type Timing_Event is tagged. This makes it possible to share a
+handler between several events. In simple cases, 'Access can be used to
+compare the parameter with a specific timing event object (this works because
+a tagged type is a by-reference type). In more complex cases, a type extension
+of type Timing_Event can be declared; a double type conversion can be used to
+access the extension data.
+End AARM Note.
 Dynamic Semantics
 The procedures Set_Handler associate the handler Handler with the event Event;
@@ -353,7 +361,7 @@
 The following language-defined package exists:
 @xcode<@b<package> Ada.Real_Time.Timing_Events @b<is>
-  @b<type> Timing_Event @b<is limited private>;
+  @b<type> Timing_Event @b<is tagged limited private>;
   @b<type> Timing_Event_Handler
        @b<is access protected procedure> (Event : @b<in out> Timing_Event);
   @b<procedure> Set_Handler (Event   : @b<in out> Timing_Event;

Questions? Ask the ACAA Technical Agent