| Trees | Indices | Help |
|
|---|
|
|
Python objects can register callbacks with the bus and be called when elisa.core.components.massage.Messages are sent by other objects.
Here is a simple example:
bus = Bus()
def my_cb(message, sender):
print 'Got message %r from %r' % (message, sender)
bus.register(my_cb)
bus.send_message(Message())
Messages dispatching empties the message queue and call the registered callbacks. Messages filtering is also supported, just pass a Message type class to bus.register(), like this:
bus.register(my_cb, Message)
You can filter on multiple Message types by supplying a list to bus.register():
bus.register(my_cb, (FooMessage, DataMessage))
| Instance Methods | |||
|
|||
twisted.internet.defer.Deferred
|
|
||
| elisa.core.utils.defer.Deferred |
|
||
|
|||
| elisa.core.utils.defer.Deferred |
|
||
|
|||
|
|||
|
Inherited from Inherited from |
|||
| Class Variables | |
|
Inherited from |
| Instance Variables | |
| dict, keys are callable objects and values are Message types lists |
callbacks registered callbacks |
| Properties | |
|
Inherited from |
| Method Details |
Initialize the Message queue and the callbacks dictionary.
|
Dequeue and dispatch each queued message. This method is called when the bus starts, to dispatch all the messages that were sent before startup. This method can also be used to force dispatch on a bus you don't want to start, for instance for functional test purpose.
|
Start message dispatching: once started, messages sent over the bus are guaranteed to be dispatched.
|
Send a message over the bus. The message is automatically dispatched if the Bus is running. Otherwise the message is locally queued until the Bus starts.
|
Register a new callback with the bus. The given callback will be called when a message of one of the given types is dispatched on the bus.
|
Unregister a callback from the bus.
|
| Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Tue Dec 1 10:54:29 2009 | http://epydoc.sourceforge.net |