lace_0.1.0_347e4627/source/events/utility/lace-event-logger-text.ads

 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
with
     lace.Observer,
     lace.Subject,
     lace.Response;

private
with
     ada.Text_IO,
     ada.Containers.indefinite_hashed_Sets;


package lace.event.Logger.text
--
--  Provides a logger which logs to a text file.
--
is
   type Item is limited new Logger.item with private;
   type View is access all Item'Class;


   --------
   -- Forge
   --

   function  to_Logger (Name : in String) return Item;

   overriding
   procedure destruct  (Self : in out Item);


   -------------
   -- Operations
   --

   -- Logging of event consfiguration.
   --

   overriding
   procedure log_Connection    (Self : in out Item;   From         : in Observer.view;
                                                      To           : in Subject .view;
                                                      for_Kind     : in Event.Kind);
   overriding
   procedure log_Disconnection (Self : in out Item;   From         : in Observer.view;
                                                      To           : in Subject .view;
                                                      for_Kind     : in Event.Kind);
   overriding
   procedure log_new_Response  (Self : in out Item;   the_Response : in Response.view;
                                                      of_Observer  : in Observer.item'Class;
                                                      to_Kind      : in Event.Kind;
                                                      from_Subject : in subject_Name);
   overriding
   procedure log_rid_Response  (Self : in out Item;   the_Response : in Response.view;
                                                      of_Observer  : in Observer.item'Class;
                                                      to_Kind      : in Event.Kind;
                                                      from_Subject : in subject_Name);
   -- Logging of event transmission.
   --

   overriding
   procedure log_Emit     (Self : in out Item;   From         : in Subject .view;
                                                 To           : in Observer.view;
                                                 the_Event    : in Event.item'Class);
   overriding
   procedure log_Relay    (Self : in out Item;   From         : in Observer.view;
                                                 To           : in Observer.view;
                                                 the_Event    : in Event.item'Class);
   overriding
   procedure log_Response (Self : in out Item;   the_Response : in Response.view;
                                                 of_Observer  : in Observer.view;
                                                 to_Event     : in Event.item'Class;
                                                 from_Subject : in subject_Name);
   -- Logging of miscellaneous messages.
   --
   overriding
   procedure log (Self : in out Item;   Message : in String);

   -- Log filtering
   --
   overriding
   procedure ignore (Self : in out Item;   Kind : in Event.Kind);



private

   package event_kind_Sets is new ada.Containers.indefinite_hashed_Sets (Event.Kind,
                                                                         Event.Hash,
                                                                         "=");
   subtype event_kind_Set  is event_kind_Sets.Set;


   type Item is limited new Logger.item with
      record
         File    : ada.Text_IO.File_type;
         Ignored : event_kind_Set;
      end record;

end lace.event.Logger.text;