def wrapped(*args, **kwargs):
     cmd = RMCommand(name, True)
     cmd.command = attr
     cmd.args = args
     cmd.kwargs = kwargs
     retval = RMCommandThread.instance.executeCommand(cmd)
     return retval
 def wrapped(*args, **kwargs):
     cmd = RMCommand(name, True)
     cmd.command = attr
     cmd.args = args
     cmd.kwargs = kwargs
     retval = RMCommandThread.instance.executeCommand(cmd)
     return retval
 def commit(self):
     if not USE_COMMAND_THREAD__ or RMCommandThread.instance.runsOnThisThread():
         self.__commit()
     else:
         cmd = RMCommand("rmDatabaseCommit", True)
         cmd.command = self.__commit
         return RMCommandThread.instance.executeCommand(cmd)
 def close(self):
     global USE_COMMAND_THREAD__
     if USE_COMMAND_THREAD__ and not RMCommandThread.instance.runsOnThisThread():
         cmd = RMCommand("rmDatabaseClose", True)
         cmd.command = self.__close
         return RMCommandThread.instance.executeCommand(cmd)
     return self.__close()
 def commit(self):
     if not USE_COMMAND_THREAD__ or RMCommandThread.instance.runsOnThisThread(
     ):
         self.__commit()
     else:
         cmd = RMCommand("rmDatabaseCommit", True)
         cmd.command = self.__commit
         return RMCommandThread.instance.executeCommand(cmd)
 def close(self):
     global USE_COMMAND_THREAD__
     if USE_COMMAND_THREAD__ and not RMCommandThread.instance.runsOnThisThread(
     ):
         cmd = RMCommand("rmDatabaseClose", True)
         cmd.command = self.__close
         return RMCommandThread.instance.executeCommand(cmd)
     return self.__close()
    def initialize(self, databasePath):
        self.mainDatabasePath = os.path.join(databasePath, 'rainmachine-main.sqlite')
        self.parserDatabasePath = os.path.join(databasePath, 'rainmachine-parser.sqlite')
        self.mixerDatabasePath = os.path.join(databasePath, 'rainmachine-mixer.sqlite')
        self.settingsDatabasePath = os.path.join(databasePath, 'rainmachine-settings.sqlite')
        self.doyDatabasePath = os.path.join(databasePath, 'rainmachine-doy.sqlite')
        self.simulatorDatabasePath = os.path.join(databasePath, 'rainmachine-simulator.sqlite')

        cmd = RMCommand("RMDatabaseManagerOpen", True)
        cmd.command = self.__openDatabases
        RMCommandThread.instance.executeCommand(cmd)
    def update():
        updateVersion, dbVersion = RMDatabaseUpdate.getVersions()

        if updateVersion < dbVersion:
            # Newer DB version on and old software
            return False

        if updateVersion == dbVersion:
            # Everything is up to date.
            return True

        cmd = RMCommand("db-update", True)
        cmd.command = RMDatabaseUpdate.__doUpdate
        cmd.args = (dbVersion, updateVersion)
        return RMCommandThread.instance.executeCommand(cmd)
 def uninitialize(self):
     cmd = RMCommand("RMDatabaseManagerClose", True)
     cmd.command = self.__openDatabases
     RMCommandThread.instance.executeCommand(cmd)