Package Ganga :: Package GPIDev :: Package Adapters :: Module ApplicationRuntimeHandlers
[hide private]
[frames] | no frames]

Source Code for Module Ganga.GPIDev.Adapters.ApplicationRuntimeHandlers

 1  ################################################################################ 
 2  # Ganga Project. http://cern.ch/ganga 
 3  # 
 4  # $Id: ApplicationRuntimeHandlers.py,v 1.1 2008-07-17 16:40:52 moscicki Exp $ 
 5  ################################################################################ 
 6   
 7  """ Application adapter table is a mechanism to match application and backend handlers. 
 8  """ 
 9    
10 -class _ApplicationRuntimeHandlers:
11 - def __init__(self):
12 self.handlers = {}
13
14 - def add(self,application,backend,handler):
15 self.handlers.setdefault(backend,{})[application] = handler
16
17 - def get(self,application,backend):
18 return self.handlers[backend][application]
19
20 - def getAllBackends(self,application=None):
21 if application is None: 22 return self.handlers.keys() 23 else: 24 return [b for b in self.handlers.keys() if application in self.handlers[b]]
25
26 - def getAllApplications(self,backend=None):
27 if backend is None: 28 apps = {} 29 30 for a in self.handlers.values(): 31 apps.update(a) 32 33 return apps.keys() 34 else: 35 return self.handlers[backend].keys()
36 37 allHandlers = _ApplicationRuntimeHandlers() 38 39 if __name__ == '__main__': 40 a = _ApplicationRuntimeHandlers() 41 a.add('a','X',1) 42 a.add('a','Y',1) 43 a.add('b','X',1) 44 a.add('c','Z',1) 45
46 - def compare(alist,blist):
47 print alist,blist 48 alist.sort() 49 blist.sort() 50 assert(alist == blist)
51 52 53 compare(a.getAllBackends(),['X','Y','Z']) 54 compare(a.getAllApplications(), ['a','b','c']) 55 56 compare(a.getAllBackends('a'),['X','Y']) 57 compare(a.getAllBackends('b'),['X']) 58 compare(a.getAllBackends('c'),['Z']) 59 60 compare(a.getAllApplications('X'),['a','b']) 61 compare(a.getAllApplications('Y'),['a']) 62 compare(a.getAllApplications('Z'),['c']) 63