EventQueue   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 20
rs 10
c 1
b 0
f 0
wmc 6

4 Methods

Rating   Name   Duplication   Size   Complexity  
A add_listener() 0 6 1
A remove_listener() 0 4 2
A broadcast_event() 0 4 2
A __init__() 0 2 1
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