Messenger

Inheritance:

Methods of Messenger:

__eventRepr
def __eventRepr(self, event)

Compact version of event, acceptor pairs

__init__
def __init__(self)

One is keyed off the event name. It has the following structure: {event1 : {object1: [method, extraArgs, persistent], object2: [method, extraArgs, persistent]}, event2 : {object1: [method, extraArgs, persistent], object2: [method, extraArgs, persistent]}}
This dictionary allow for efficient callbacks when the messenger hears an event.
A second dictionary remembers which objects are accepting which events. This allows for efficient ignoreAll commands.
Or, for an example with more real data: {'mouseDown' : {avatar : [avatar.jump, [2.0], 1]}}

__methodRepr
def __methodRepr(self, method)

return string version of class.method or method.

__repr__
def __repr__(self)

Compact version of event, acceptor pairs

accept
def accept(self, event, object, method, extraArgs=[], persistent=1)

accept(self, string, DirectObject, Function, List, Boolean)
Make this object accept this event. When the event is sent (using Messenger.send or from C++), method will be executed, optionally passing in extraArgs.
If the persistent flag is set, it will continue to respond to this event, otherwise it will respond only once.

clear
def clear(self)

Start fresh with a clear dict

detailedRepr
def detailedRepr(self)

Print out the table in a detailed readable format

find
def find(self, needle)

return a matching event (needle) if found (in haystack). This is primarily a debugging tool.

findAll
def findAll(self, needle, limit=None)

return a dict of events (needle) if found (in haystack). limit may be None or an integer (e.g. 1). This is primarily a debugging tool.

getEvents
def getEvents(self)

Undocumented function.

ignore
def ignore(self, event, object)

ignore(self, string, DirectObject) Make this object no longer respond to this event. It is safe to call even if it was not already accepting

ignoreAll
def ignoreAll(self, object)

ignoreAll(self, DirectObject) Make this object no longer respond to any events it was accepting Useful for cleanup

isAccepting
def isAccepting(self, event, object)

isAccepting(self, string, DirectOject) Is this object accepting this event?

isEmpty
def isEmpty(self)

Undocumented function.

isIgnoring
def isIgnoring(self, event, object)

isIgnorning(self, string, DirectObject) Is this object ignoring this event?

replaceMethod
def replaceMethod(self, oldMethod, newFunction)

This is only used by Finder.py - the module that lets you redefine functions with Control-c-Control-v

send
def send(self, event, sentArgs=[])

event is usually a string. sentArgs is a list of any data that you want passed along to the handlers listening to this event.
Send this event, optionally passing in arguments

toggleVerbose
def toggleVerbose(self)

Undocumented function.

whoAccepts
def whoAccepts(self, event)

Return objects accepting the given event