CVS difference for ais/ai-00307.txt

Differences between 1.15 and version 1.16
Log of other versions for file ais/ai-00307.txt

--- ais/ai-00307.txt	2005/04/15 04:31:16	1.15
+++ ais/ai-00307.txt	2005/06/16 23:47:27	1.16
@@ -1,4 +1,4 @@
-!standard D.14 (00)                                  05-03-16  AI95-00307/11
+!standard D.14 (00)                                  05-05-05  AI95-00307/12
 !standard D.14.1 (00)
 !class amendment 02-08-28
 !status Amendment 200Y 04-06-24
@@ -9,7 +9,7 @@
 !status received 02-08-28
 !priority High
 !difficulty Hard
-!subject Execution-Time Clocks
+!subject Execution-time clocks
 
 
 !summary
@@ -108,7 +108,8 @@
    procedure Split
       (T : in CPU_Time; SC : out Seconds_Count; TS : out Time_Span);
 
-   function Time_Of (SC : Seconds_Count; TS : Time_Span) return CPU_Time;
+   function Time_Of (SC : Seconds_Count;
+                     TS : Time_Span := Time_Span_Zero) return CPU_Time;
 
 private
    ... --  not specified by the language
@@ -226,7 +227,7 @@
 package Ada.Execution_Time.Timers is
 
    type Timer (T : access Ada.Task_Identification.Task_Id) is
-      limited private;
+      tagged limited private;
 
    type Timer_Handler is access protected procedure (TM : in out Timer);
 
@@ -263,6 +264,14 @@
 implementation when the timer expires. Such a protected procedure is called a
 *handler*.
 
+AARM Note: Type Timer 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 timer object (this works because
+a tagged type is a by-reference type). In more complex cases, a type extension
+of type Timer can be declared; a double type conversion can be used to
+access the extension data.
+End AARM Note.
+
 Dynamic Semantics
 
 When a Timer object is created, or upon the first call of a Set_Handler
@@ -277,7 +286,7 @@
 Time_Span parameter. In this mode, when the execution time of the task
 identified by TM.T has increased by In_Time, the timer TM is said to have
 expired. The second procedure Set_Handler loads the timer TM with the absolute
-value specified by At_Time. In this mode, when the the execution time of the
+value specified by At_Time. In this mode, when the execution time of the
 task identified by TM.T reaches At_Time, the timer TM is said to have *expired*;
 if the value of At_Time has already been reached when Set_Handler is called,
 the timer TM is said to be expired.
@@ -591,7 +600,8 @@
    @b<procedure> Split
      (T : @b<in> CPU_Time; SC : @b<out> Seconds_Count; TS : @b<out> Time_Span);
 
-   @b<function> Time_Of (SC : Seconds_Count; TS : Time_Span) @b<return> CPU_Time;
+   @b<function> Time_Of (SC : Seconds_Count;
+                     TS : Time_Span := Time_Span_Zero) @b<return> CPU_Time;
 
 @b<private>
    ... --  not specified by the language
@@ -760,7 +770,7 @@
 Time_Span parameter. In this mode, when the execution time of the task
 identified by TM.T has increased by In_Time, the timer TM is said to have
 expired. The second procedure Set_Handler loads the timer TM with the absolute
-value specified by At_Time. In this mode, when the the execution time of the
+value specified by At_Time. In this mode, when the execution time of the
 task identified by TM.T reaches At_Time, the timer TM is said to have
 @i<expired>; if the value of At_Time has already been reached when Set_Handler
 is called, the timer TM is said to be expired.

Questions? Ask the ACAA Technical Agent