Package Ganga :: Package Core :: Package JobRepositoryXML :: Module Counter
[hide private]
[frames] | no frames]

Source Code for Module Ganga.Core.JobRepositoryXML.Counter

 1  import pickle,os.path 
 2   
3 -class Counter:
4 """ Simple persistent counter. """ 5
6 - def __init__(self,dir):
7 """Initialize the counter file in dir directory""" 8 self.dir = dir 9 self.cntfn = os.path.join(self.dir,'cnt') 10 #self.lockfn = os.path.join(self.dir,'lock') #FIXME: locking support 11 12 try: 13 self.cnt = pickle.load(file(self.cntfn)) 14 except IOError,x: 15 import errno 16 if x.errno == errno.ENOENT: 17 self.cnt = 0 18 else: 19 raise
20
21 - def make_new_ids(self,n):
22 """Generate n new job ids""" 23 ids = range(self.cnt,self.cnt+n) 24 self.cnt += n 25 pickle.dump(self.cnt,file(self.cntfn,'w')) 26 return ids
27
28 - def subtract(self):
29 self.cnt -= 1 30 pickle.dump(self.cnt,file(self.cntfn,'w'))
31