CVS difference for ais/ai-00354.txt

Differences between 1.10 and version 1.11
Log of other versions for file ais/ai-00354.txt

--- ais/ai-00354.txt	2005/04/13 05:37:17	1.10
+++ ais/ai-00354.txt	2005/06/16 23:47:34	1.11
@@ -1,4 +1,4 @@
-!standard D.14.2 (01)                                 05-03-24  AI95-00354/08
+!standard D.14.2 (01)                                 05-05-05  AI95-00354/09
 !class amendment 03-09-27
 !status Amendment 200Y 04-06-25
 !status ARG Approved 7-0-1  04-06-13
@@ -42,7 +42,7 @@
 with System;
 package Ada.Execution_Time.Group_Budgets is
 
-  type Group_Budget is limited private;
+  type Group_Budget is tagged limited private;
 
   type Group_Budget_Handler is access
        protected procedure (GB : in out Group_Budget);
@@ -94,6 +94,14 @@
 is not null and *cleared* otherwise. The handler of all Group_Budget objects is
 initially cleared.
 
+AARM Note: Type Group_Budget 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 group budget object (this works because
+a tagged type is a by-reference type). In more complex cases, a type extension
+of type Group_Budget can be declared; a double type conversion can be used to
+access the extension data.
+End AARM Note.
+
 Dynamic Semantics
 
 The procedure Add_Task adds the task identified by T to the group GB; if that
@@ -339,7 +347,7 @@
 @xcode<@b<with> System;
 @b<package> Ada.Execution_Time.Group_Budgets @b<is>
 
-  @b<type> Group_Budget @b<is limited private>;
+  @b<type> Group_Budget @b<is tagged limited private>;
 
   @b<type> Group_Budget_Handler @b<is access>
        @b<protected procedure> (GB : @b<in out> Group_Budget);

Questions? Ask the ACAA Technical Agent