Package sysmon :: Module callback
[hide private]
[frames] | no frames]

Source Code for Module sysmon.callback

 1  ######################################################################### 
 2  # YASMon - Yet Another System Monitor                                   # 
 3  # Copyright (C) 2010  Scott Lawrence                                    # 
 4  #                                                                       # 
 5  # This program is free software: you can redistribute it and/or modify  # 
 6  # it under the terms of the GNU General Public License as published by  # 
 7  # the Free Software Foundation, either version 3 of the License, or     # 
 8  # (at your option) any later version.                                   # 
 9  #                                                                       # 
10  # This program is distributed in the hope that it will be useful,       # 
11  # but WITHOUT ANY WARRANTY; without even the implied warranty of        # 
12  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         # 
13  # GNU General Public License for more details.                          # 
14  #                                                                       # 
15  # You should have received a copy of the GNU General Public License     # 
16  # along with this program.  If not, see <http://www.gnu.org/licenses/>. # 
17  ######################################################################### 
18   
19  """Provides a flexible and extensible callback class for the system 
20  monitor. 
21   
22  """ 
23   
24 -class SysmonCallback:
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
35 - def __init__(self):
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