-
Notifications
You must be signed in to change notification settings - Fork 1
/
protected_ops.adb
49 lines (35 loc) · 1.03 KB
/
protected_ops.adb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
with Ada.Real_Time.Timing_Events;
with Ada.Text_IO;
package body Protected_Ops is
package ART renames Ada.Real_Time;
package ARTTE renames Ada.Real_Time.Timing_Events;
Timed_Procedure : Procedure_A;
protected P is
procedure Timer_Procedure (TE: in out ARTTE.Timing_Event);
procedure Call_Procedure (H: Procedure_A);
end P;
protected body P is
procedure Timer_Procedure (TE: in out ARTTE.Timing_Event) is
begin
Timed_Procedure.all;
end Timer_Procedure;
procedure Call_Procedure (H: Procedure_A) is
begin
H.all;
end Call_Procedure;
end P;
TE: ARTTE.Timing_Event;
procedure Program_Timer_Procedure (H: Procedure_A; T: Ada.Real_Time.Time) is
use type ART.Time;
begin
Timed_Procedure := H;
ARTTE.Set_Handler
(TE,
T,
P.Timer_Procedure'Access);
end Program_Timer_Procedure;
procedure Protected_Call (H: Procedure_A) is
begin
P.Call_Procedure (H);
end Protected_Call;
end Protected_Ops;