EventQueue.remove_listener()   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 2
dl 0
loc 4
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