|
| __init__ (self, name, subEvents=None, doneEvent=None) |
|
| __repr__ (self) |
|
| addEvent (self, eventName) |
|
| destroy (self) |
|
| getDoneEvent (self) |
|
| getName (self) |
|
| isCompleted (self) |
|
| newEvent (self, name) |
|
| accept (self, event, method, extraArgs=[]) |
|
| acceptOnce (self, event, method, extraArgs=[]) |
|
| addTask (self, *args, **kwargs) |
|
| detectLeaks (self) |
|
| doMethodLater (self, *args, **kwargs) |
|
| getAllAccepting (self) |
|
| ignore (self, event) |
|
| ignoreAll (self) |
|
| isAccepting (self, event) |
|
| isIgnoring (self, event) |
|
| removeAllTasks (self) |
|
| removeTask (self, taskOrName) |
|
This class allows you to group together multiple events and treat
them as a single event. The EventGroup will not send out its event until
all of its sub-events have occured.
__init__ |
( |
| self, |
|
|
| name, |
|
|
| subEvents = None, |
|
|
| doneEvent = None ) |
Provide a meaningful name to aid debugging.
doneEvent is optional. If not provided, a unique done event will be
generated and is available as EventGroup.getDoneEvent().
Examples:
# waits for gotRed and gotBlue, then sends out 'gotColors'
EventGroup('getRedAndBlue', ('gotRed', 'gotBlue'), doneEvent='gotColors')
# waits for two interests to close, then calls self._handleBothInterestsClosed()
# uses EventGroup.getDoneEvent() and EventGroup.newEvent() to generate unique,
# disposable event names
eGroup = EventGroup('closeInterests')
self.acceptOnce(eGroup.getDoneEvent(), self._handleBothInterestsClosed)
base.cr.closeInterest(interest1, event=eGroup.newEvent('closeInterest1'))
base.cr.closeInterest(interest2, event=eGroup.newEvent('closeInterest2'))
Reimplemented from DirectObject.