aboutsummaryrefslogtreecommitdiff
path: root/operationscore/SmootCoreObject.py
blob: 10df2992fbf0a6f01d5c4d4873cb019f8e8a9744 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import Util
import pdb
import threading
import thread
import util.Config as configGetter
class SmootCoreObject(threading.Thread):
    def __init__(self, argDict, skipValidation = False):
        self.argDict = argDict
        self.validateArgs(self.className()+'.params') 
        self.lock = thread.allocate_lock()
        self.init() #call init of inheriting class
    #    self.__setitem__ = self.argDict.__setitem__
    #    self.__getitem__ = self.argDict.__getitem__
    def init(self):
        pass
    def acquireLock(self):
        self.lock = thread.allocate_lock() #TODO: fix.
        self.lock.acquire()
    def releaseLock(self):
        self.lock.release()
    def className(self):
        return str(self.__class__).split('.')[-1] #TODO: this doesn't work.
    def __setitem__(self,k, item):
        self.argDict[k] = item
    def __getitem__(self, item):
        if item in self.argDict:
            return self.argDict[item]
        else:
            return None
    def __getiter__(self):
        return self.argDict.__getiter__()
    def validateArgs(self, argFileName):
        self.validateArgDict(configGetter.loadParamRequirementDict(argFileName))#util
        #caches for us, woo!
    def validateArgDict(self, validationDict):
        for item in validationDict:
            if not item in self.argDict:
                raise Exception(validationDict[item])