Home | Trees | Index | Help |
|
---|
Package Modeling :: Package interfaces :: Module ObserverCenter |
|
ObserverCenter
Corresponding design patterns: observer+mediator Instant notification
First invocation on a particular object does notify the observers and is recorded so that subsequent notifications are discarded. The memory of already-notified objects can be globally reset by calling 'notifyObserversObjectWillChange' with a 'None' parameter, or on a per-object base using 'ensureSubsequentChangeWillBeNotifiedForObject'.
Observed object should call 'ObserverCenter.notifyObserversObjectWillChange(self)' to indicate to its observers that it is about to change.
The ObserverCenter and the interface 'ObservingInterface' are independant from the framework and can be used alone.
Both observers and observed objects are referenced by weak references [...more to say here...] CVS information
$Id: ObserverCenter.py,v 1.4 2004/07/20 06:21:41 sbigaret Exp $
Function Summary | |
---|---|
Resets the 'alreadyNotified' flag Parameter 'anObserver' should conform to the 'IObserving' interface | |
Parameter 'anObserver' should conform to the 'IObserving' interface | |
Call this method if you want to make sure the next invocation of 'notifyObserversObjectWillChange' will actually notify observers. | |
Searches all observers for object 'anObject' and send them the 'objectWillChange' message. | |
Returns all observers registered for 'anObject' | |
Removes the supplied 'anObserver' from the list of 'anObject' 's observers. | |
Removes the supplied omniscient observer. |
Function Details |
---|
addObserver(anObserver, anObject)Resets the 'alreadyNotified' flag Parameter 'anObserver' should conform to the 'IObserving' interface |
addOmniscientObserver(anObserver)Parameter 'anObserver' should conform to the 'IObserving' interface |
ensureSubsequentChangeWillBeNotifiedForObject(anObject)Call this method if you want to make sure the next invocation of 'notifyObserversObjectWillChange' will actually notify observers. Note that you can achieve the same goal globally by calling 'notifyObserversObjectWillChange' with parameter 'None'. |
notifyObserversObjectWillChange(anObject)Searches all observers for object 'anObject' and send them the 'objectWillChange' message. Please note that this notification is sent once and will not be sent upon subsequent request. To reset, send anObject=None. Omniscient observers are notified before observers registered for 'anObject'. Note that any exception that might happen when sending the 'objectWillChange' message is ignored, hence all observers will receive the message. |
observersForObject(anObject)Returns all observers registered for 'anObject' |
removeObserver(anObserver, anObject)Removes the supplied 'anObserver' from the list of 'anObject' 's observers. Parameter 'anObserver' should conform to the 'IObserving' interface. Silently returns if 'anObserver' cannot be found. |
removeOmniscientObserver(anObserver)Removes the supplied omniscient observer. Parameter 'anObserver' should conform to the 'IObserving' interface. Raises 'ValueError' if 'anObserver' is not a registered omniscient observer. |
Home | Trees | Index | Help |
|
---|
Generated by Epydoc 2.1 on Sat Mar 4 13:36:23 2006 | http://epydoc.sf.net |