123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- MODULE EventsMemoryLog; (** AUTHOR "staubesv"; PURPOSE "Log system events in memory"; *)
- (**
- * History:
- *
- * 14.03.2007 First release (staubesv)
- *)
- IMPORT
- Modules, Events, EventsUtils;
- CONST
- (* Logsize = MaxNofWrapper * EventsPerWrapper events *)
- MaxNofWrapper = 16;
- EventsPerWrapper = 256;
- TYPE
- EventLogger = OBJECT(Events.Sink)
- VAR
- events : EventsUtils.EventContainer;
- PROCEDURE Handle*(event : Events.Event);
- BEGIN
- IF ~events.IsFull() THEN
- events.Handle(event);
- END;
- END Handle;
- PROCEDURE &Init*;
- BEGIN
- name := "EventLog";
- NEW(events, MaxNofWrapper, EventsPerWrapper);
- END Init;
- END EventLogger;
- VAR
- eventLog- : EventLogger;
- PROCEDURE GetEvents*() : EventsUtils.EventContainer;
- BEGIN
- RETURN eventLog.events;
- END GetEvents;
- PROCEDURE Clear*;
- BEGIN
- eventLog.events.Clear;
- END Clear;
- PROCEDURE Cleanup;
- BEGIN
- Events.Unregister(eventLog);
- END Cleanup;
- BEGIN
- Modules.InstallTermHandler(Cleanup);
- NEW(eventLog);
- Events.Register(eventLog);
- END EventsMemoryLog.
|