2001-06-06 20:40:57 +01:00
|
|
|
|
|
|
|
:- object(event_registry,
|
|
|
|
implements(event_registryp)).
|
|
|
|
|
|
|
|
:- info([
|
|
|
|
version is 1.0,
|
2003-02-05 00:15:28 +00:00
|
|
|
author is 'Paulo Moura',
|
2001-06-06 20:40:57 +01:00
|
|
|
date is 2000/7/24,
|
|
|
|
comment is 'Before and after events registry predicates.']).
|
|
|
|
|
|
|
|
monitors(Monitors) :-
|
|
|
|
findall(
|
|
|
|
Monitor,
|
|
|
|
(current_event(before, _, _, _, Monitor),
|
|
|
|
current_event(after, _, _, _, Monitor)),
|
|
|
|
List),
|
|
|
|
{sort(List, Monitors)}.
|
|
|
|
|
|
|
|
monitored(Objects) :-
|
|
|
|
findall(
|
|
|
|
Object,
|
|
|
|
(current_event(before, Object, _, _, _),
|
|
|
|
current_event(after, Object, _, _, _)),
|
|
|
|
List),
|
|
|
|
{sort(List, Objects)}.
|
|
|
|
|
|
|
|
monitor(Object, Message, Sender, Monitor) :-
|
|
|
|
current_event(before, Object, Message, Sender, Monitor),
|
|
|
|
current_event(after, Object, Message, Sender, Monitor).
|
|
|
|
|
|
|
|
set_monitor(Object, Message, Sender, Monitor) :-
|
|
|
|
define_events(before, Object, Message, Sender, Monitor),
|
|
|
|
define_events(after, Object, Message, Sender, Monitor).
|
|
|
|
|
|
|
|
del_monitors(Object, Message, Sender, Monitor) :-
|
|
|
|
abolish_events(before, Object, Message, Sender, Monitor),
|
|
|
|
abolish_events(after, Object, Message, Sender, Monitor).
|
|
|
|
|
|
|
|
del_monitors :-
|
|
|
|
abolish_events(before, _, _, _, _),
|
|
|
|
abolish_events(after, _, _, _, _).
|
|
|
|
|
|
|
|
:- end_object.
|