Qore DataProvider Module Reference 3.3.0
Loading...
Searching...
No Matches
Observable.qc.dox.h
1// -*- mode: c++; indent-tabs-mode: nil -*-
3
26namespace DataProvider {
29
30public:
31protected:
33 hash<string, hash<ObserverEventInfo>> observer_map;
34
35public:
36
38
44 registerObserver(Observer observer, ...);
45
46
48
54 registerObserver(object observer, ...);
55
56
58
63 registerObserverArgs(Observer observer, *list<auto> event_ids);
64
65
67
72 registerObserverArgs(object observer, *list<auto> event_ids);
73
74
76
84
85
87
94 registerObserverWithFilter(object observer, AbstractEventFilter filter, ...);
95
96
98
104 registerObserverWithFilterArgs(Observer observer, AbstractEventFilter filter, *list<auto> event_ids);
105
106
108
114 registerObserverWithFilter(object observer, AbstractEventFilter filter, list<auto> event_ids);
115
116
118
123
124
126
132 bool deregisterObserver(object observer);
133
134
136
139 notifyObservers(string event_id, hash<auto> data_);
140
141
143
147 log(int level, string fmt, ...);
148
149
151
153 bool isActive();
154
155
157
160
161
163protected:
164 hash<ObserverEventInfo> registerObserverEventsArgs(hash<ObserverEventInfo> info, list<auto> events);
165public:
166
167};
168
171
172public:
174
176 abstract observersReady();
177
179
182
183};
184
187
188public:
190 abstract bool filter(string event_id, hash<auto> event);
191};
192};
193
194// private namespace; not exported
195namespace Priv {
196// Stores an observer with any subscribed events
197hashdecl ObserverEventInfo {
198 // Observer
199 Observer observer;
200
201 // event filter object
202 *AbstractEventFilter filter;
203
204 // Map of subscribed event IDs; if the map is empty, then all events are registered
205 hash<string, bool> event_map;
206}
207
208// wraps a foreign observer object as an Observer
209class ObserverWrapper : public Observer {
210
211public:
212protected:
213 object obj;
214
215public:
216
217 // creates the wrapper object
218 constructor(object obj);
219
220
221 // calls the wrapped object's update method
222 update(string event_id, hash<auto> data_);
223
224};
225}
This abstract class can be used to filter events that are raised on an Observer.
Definition Observable.qc.dox.h:186
abstract bool filter(string event_id, hash< auto > event)
If this returns True, then the event is raised.
This class represents an observable subject that waits for external confirmation before raising event...
Definition Observable.qc.dox.h:170
abstract observersReady()
Called when all observers have been added to the object.
stopEvents()
Called to stop generating events.
This class represents an observable subject that will notify all of its registered observers.
Definition Observable.qc.dox.h:28
registerObserverWithFilter(object observer, AbstractEventFilter filter,...)
The method registers the given observer.
hash< ObserverEventInfo > registerObserverEventsArgs(hash< ObserverEventInfo > info, list< auto > events)
Registers observer events.
registerObserverArgs(object observer, *list< auto > event_ids)
The method registers the given observer.
registerObserverWithFilter(object observer, AbstractEventFilter filter, list< auto > event_ids)
The method registers the given observer.
registerObserverWithFilterArgs(Observer observer, AbstractEventFilter filter, *list< auto > event_ids)
The method registers the given observer.
handoverObservers(Observable other)
Handover observers to another Observable object.
registerObserver(Observer observer,...)
The method registers the given observer.
registerObserverArgs(Observer observer, *list< auto > event_ids)
The method registers the given observer.
log(int level, string fmt,...)
Reimplement this method to implement logging.
registerObserver(object observer,...)
The method registers the given observer.
registerObserverWithFilter(Observer observer, AbstractEventFilter filter,...)
The method registers the given observer.
hash< string, hash< ObserverEventInfo > > observer_map
maps from object hash -> object
Definition Observable.qc.dox.h:33
bool deregisterObserver(Observer observer)
The method deregisters the given observer.
bool deregisterObserver(object observer)
The method deregisters the given observer.
bool isActive()
Is this object still generating events.
notifyObservers(string event_id, hash< auto > data_)
The method notifies all subscribed observers.
This abstract class represents an observer that will get notified by the subject it observes.
Definition Observer.qc.dox.h:26
Qore AbstractDataField class definition.
Definition AbstractDataField.qc.dox.h:27
Private definitions.
Definition AbstractDataProviderType.qc.dox.h:458