Completed
Push — master ( 6cf062...43f138 )
by Matthew
01:00
created

ed2d.EventQueue.__init__()   A

Complexity

Conditions 1

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 1
dl 0
loc 2
rs 10
1
2
# TODO - Add support for event filters so we dont have to rebroadcast everything
3
# to listeners that wont use most of it.
4
5
class EventQueue(object):
6
    def __init__(self):
7
        self.listeners = []
8
9
    def add_listener(self, listener):
10
        '''
11
        Add an event processing listener.
12
        An event listener is just a function that accepts 2 arguments.
13
        '''
14
        self.listeners.append(listener)
15
16
    def remove_listener(self, listener):
17
        ''' Remove specified event listener '''
18
        if listener not in self.listeners:
19
            self.listener.remove()
20
21
    def broadcast_event(self, event, args):
22
        ''' Send out an event to all event listeners '''
23
        for listener in self.listeners:
24
            listener(event, args)
25
26
Events = EventQueue()
27