import Pyro.core from sndcs.LaborHedFactory import LaborHedFactory from sndcs_common.SndcsExceptions import * from sndcs_common.Logger import logger log = logger.getLogger("sndcsd") class LaborHedProxyFactory(Pyro.core.ObjBase): ### __init__ functions ### ### From LaborHedFactory ### def setLaborHedBySerialNum(self, serialNum): hed = LaborHedFactory().getLaborHedBySerialNum(serialNum) if not hed: raise SndcsLaborHedError("No LaborHed with serialNum = '%s'" % (serialNum)) proxy = LaborHedProxy() proxy.laborHed = hed self.getDaemon().connect(proxy) log.debug("Returning labor hed proxy object %s.", proxy) return proxy.getProxy() class LaborHedProxy(Pyro.core.ObjBase): ### Utilities ### ### From LaborHed ### def getNumberActiveLaborDtls(self): return self.laborHed.getNumberActiveLaborDtls() def getActiveLaborDetails(self): active_labordtls = [] for dtl in self.laborHed.getActiveLaborDetails(): active_labordtls.append(dtl.dataDict()) return active_labordtls ### Getters and Setters ### def posted(self): return self.laborHed.posted() def startStamp(self): return self.laborHed.startStamp() def endStamp(self): return self.laborHed.endStamp() def startTerminal(self): return self.laborHed.startTerminal() def endTerminal(self): return self.laborHed.endTerminal() ### Cleanup ### def disconnect(self): daemon = self.getDaemon() log.debug("Disconnecting labor hed proxy object %s.", self) daemon.disconnect(self)