Part of elisa.core.bus View In Hierarchy
Python objects can register callbacks with the bus and be called when
elisa.core.components.massage.Messages are sent by other
objects.
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 Variables | callbacks | registered callbacks (type: dict, keys are callable objects and values are Message types lists ) |
| Line # | Kind | Name | Docs |
|---|---|---|---|
| 60 | Method | __init__ | Initialize the Message queue and the callbacks dictionary. |
| 82 | Method | start | Start message dispatching: once started, messages sent over the bus |
| 93 | Method | stop | Stop message dispatching: messages sent over the bus will not be |
| 101 | Method | send_message | Send a message over the bus. The message is automatically |
| 123 | Method | register | Register a new callback with the bus. The given callback will be |
| 148 | Method | unregister | Unregister a callback from the bus. |
Start message dispatching: once started, messages sent over the bus are guaranteed to be dispatched.
Queued messages are dispatched inside a separate thread.Send a message over the bus. The message is automatically dispatched
(inside a thread) if the Bus is running. Otherwise
the message is locally queued until the Bus starts.
| Parameters | message | the message to send
(type: elisa.core.components.message.Message
) |
| sender | the sender object. None by default. Will be passed to receiver callbacks. (type: object ) |
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.
MT safe.| Parameters | callback | the callback to register (type: callable ) |
| message_types | Message types to filter on (type: type or list of types ) |