예제 #1
0
    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()
예제 #2
0
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)