1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 """Provides a flexible and extensible callback class for the system
20 monitor.
21
22 """
23
25 """A flexible and extensible callback class for sysmon.
26
27 Callback functions are registered with a unique identifying
28 string, usually of the form part1.part2.specific.
29
30 Callback functions are called with a single argument, usually a
31 dictionary. Callback functions are called in the order they were
32 registered.
33 """
34
36 """Creates an empty callback.
37 """
38 self.hooks=dict([])
39
40 - def hook(self,name,func):
41 """Hooks the given function onto a string.
42
43 Whenever the string is called, the given function will be
44 called with a single argument (passed from the original
45 caller).
46 """
47 if name in self.hooks:
48 self.hooks[name].append(func)
49 else:
50 self.hooks[name]=[func]
51
52 - def call(self,name,part):
53 """Calls all hooks matching the string with the given data
54 (usually the caller).
55
56 The hooks are called in the order they were created.
57 """
58 if name in self.hooks:
59 for func in self.hooks[name]:
60 func(part)
61