Part of twisted.words.xish.utility View Source View In Hierarchy
Known subclasses: twisted.words.xish.xmlstream.XmlStream
Event dispatching service.
The EventDispatcher
allows observers to be registered for
certain events that are dispatched. There are two types of events: XPath
events and Named events.
Every dispatch is triggered by calling dispatch
with a data object and, for named events, the name of the event.
When an XPath type event is dispatched, the associated object is
assumed to be a domish.Element
object, which is matched against all registered XPath queries. For every
match, the respective observer will be called with the data object.
A named event will simply call each registered observer for that
particular event name, with the data object. Unlike XPath type events,
the data object is not restricted to domish.Element
,
but can be anything.
When registering observers, the event that is to be observed is
specified using an xpath.XPathQuery
object or a string. In the latter case, the string can also contain the
string representation of an XPath expression. To distinguish these from
named events, each named event should start with a special prefix that is
stored in self.prefix
. It defaults to
//event/
.
Observers registered using addObserver
are persistent: after the observer has been triggered by a dispatch, it
remains registered for a possible next dispatch. If instead addOnetimeObserver
was used to observe an event, the observer is removed from the list of
observers after the first observed event.
Obsevers can also prioritized, by providing an optional
priority
parameter to the addObserver
and addOnetimeObserver
methods. Higher priority observers are then called before lower priority
observers.
removeObserver
.
Method | __init__ | Undocumented |
Method | _isEvent | Undocumented |
Method | addOnetimeObserver | Register a one-time observer for an event. |
Method | addObserver | Register an observer for an event. |
Method | _addObserver | Undocumented |
Method | removeObserver | Remove function as observer for an event. |
Method | dispatch | Dispatch an event. |
Register a one-time observer for an event.
LikeaddObserver
,
but is only triggered at most once. See there for a description of the
parameters.
Register an observer for an event.
Each observer will be registered with a certain priority. Higher priority observers get called before lower priority observers.Parameters | event | Name or XPath query for the event to be monitored.
(type: str or xpath.XPathQuery .
) |
observerfn | Function to be called when the specified event has been triggered.
This function takes one parameter: the data object that triggered the
event. When specified, the *args and **kwargs
parameters to addObserver are being used as additional parameters to the
registered observer function.
| |
priority | (Optional) priority of this observer in relation to other observer
that match the same event. Defaults to 0 .
(type: int
) |
Remove function as observer for an event.
The observer function is removed for all priority levels for the specified event.Parameters | event | Event for which the observer function was registered.
(type: str or xpath.XPathQuery
) |
observerfn | Observer function to be unregistered. |
Dispatch an event.
Whenevent
is None
, an XPath type event is
triggered, and object
is assumed to be an instance of
{domish.Element}. Otherwise, event
holds the name of the
named event being triggered. In the latter case, object
can
be anything.
Parameters | object | The object to be dispatched. |
event | Optional event name.
(type: str
) |