def __init__(self, ir, name=None, parent=None): ''' ''' self.__ir = ir DynamicImplementation.__init__(self, ir) if name != None: self.__name = str(name) else: self.__name = ir self.parent = parent self.recorder = Recorder(self.__name) self.recorder.begin()
class BaseSimulator(DynamicImplementation): ''' ''' def __init__(self, ir, name=None, parent=None): ''' ''' self.__ir = ir DynamicImplementation.__init__(self, ir) if name != None: self.__name = str(name) else: self.__name = ir self.parent = parent self.recorder = Recorder(self.__name) self.recorder.begin() #------------------------------------------------------------------------------ def _get_name(self): return self.__name #------------------------------------------------------------------------------ def cleanUp(self): self.recorder.end() #------------------------------------------------------------------------------ def invoke(self, args, moreargs): ''' This method has all calls to CORBA operations forwarded to it. Definitly needs to be overriden in subclasses. Parameters: - args is a tuple of arguments...args[0] is the calling methods name and everything that follows were parameters to the calling method. - moreargs is a dictionary of yet more arguments Returns: Anything Raises: Anything ''' if _DEBUG == 1: print self.__name, " - DynamicImplementation.invoke(", args, moreargs, ")" #simulate doing something with callbacks... tryCallbackParams(args[1:], self) meth_name = args[0] if len(args)>1: #create the list of args args = list(args[1:]) #append the component reference args.append(self) new_args = args else: new_args = [self] self.recorder.record(meth_name, new_args[:-1]) local_namespace = getCompLocalNS(self._get_name()) local_namespace['SELF'] = self return _execute(self._get_name(), meth_name, new_args, local_namespace)