def start(self, folderTasks: Queue, left: Emitter, right: Emitter) -> None: self._debug("start()") self.architect = Architect(self.workerName) if left is None: self.leftArch = DriverArchitect("%s.Driver.0" % self.workerName) self.leftArch.init() self.leftArch.start() left = self.leftArch.getEmitter() else: self.leftArch = ReuseDriverArchitect(left) if right is None: self.rightArch = DriverArchitect("%s.Driver.1" % self.workerName) self.rightArch.init() self.rightArch.start() right = self.rightArch.getEmitter() else: self.rightArch = ReuseDriverArchitect(right) receiver, emitter = newEmitterReceiver(self.workerName) receiver.accept("stop", self._on_stop) self.receiver = receiver engine = SyncFolders(self.workerName, emitter, left, right, self.accountName) self.architect.start(topRunner, (self.workerName, engine.run, folderTasks))
def start(self, folderTasks: Queue, left: Emitter, right: Emitter): self._debug("start()") if left is None: self._leftArchitect = DriverArchitect( "%s.Driver.0"% self._workerName) self._leftArchitect.start() left = self._leftArchitect.getEmitter() if right is None: self._rightArchitect = DriverArchitect( "%s.Driver.1"% self._workerName) self._rightArchitect.start() right = self._rightArchitect.getEmitter() receiver, emitter = newEmitterReceiver(self._workerName) receiver.accept('stop', self._stop) self._receiver = receiver #TODO: the architect must not know what engine will be used. # 'SyncFolder' from rascal: review Account.engine. engine = SyncFolders(self._workerName, emitter, left, right, self._accountName) self._worker = runtime.concurrency.createWorker( self._workerName, topRunner, (self._workerName, engine.syncFolders, folderTasks), ) self._worker.start()
def start(self, workerName: str, accountTasks: Queue, engineName: str): """Setup and initiate one account worker. Not blocking.""" self._debug("start(%s, %s, %s)"% (workerName, repr(accountTasks), engineName)) # Setup and start both end-drivers. leftName, rightName = "%s.Driver.0"% workerName, "%s.Driver.1"% workerName self._leftArchitect = DriverArchitect(leftName) self._rightArchitect = DriverArchitect(rightName) self._leftArchitect.start() self._rightArchitect.start() # Setup events. receiver, emitter = newEmitterReceiver(workerName) receiver.accept('running', self._running) receiver.accept('stop', self._stop) receiver.accept('syncFolders', self._syncFolders) receiver.accept('wait', self._wait) self._receiver = receiver engine = SyncAccounts( workerName, emitter, self._leftArchitect.getEmitter(), self._rightArchitect.getEmitter(), ) # Time for the worker. self._worker = self.concurrency.createWorker(workerName, topRunner, (workerName, engine.syncAccounts, accountTasks), ) self._worker.start()
def start(self, folderTasks: Queue, left: Emitter, right: Emitter) -> None: self._debug("start()") self.architect = Architect(self.workerName) if left is None: self.leftArch = DriverArchitect("%s.Driver.0" % self.workerName) self.leftArch.init() self.leftArch.start() left = self.leftArch.getEmitter() else: self.leftArch = ReuseDriverArchitect(left) if right is None: self.rightArch = DriverArchitect("%s.Driver.1" % self.workerName) self.rightArch.init() self.rightArch.start() right = self.rightArch.getEmitter() else: self.rightArch = ReuseDriverArchitect(right) receiver, emitter = newEmitterReceiver(self.workerName) receiver.accept('stop', self._on_stop) self.receiver = receiver engine = SyncFolders(self.workerName, emitter, left, right, self.accountName) self.architect.start( topRunner, (self.workerName, engine.run, folderTasks), )
def init(self) -> None: receiver, self.emitter = newEmitterReceiver(self.workerName) driverRunner = DriverRunner(self.workerName, receiver) self.worker = runtime.concurrency.createWorker(self.workerName, topRunner, (self.workerName, driverRunner.run) )
def init(self) -> None: """Initialize the architect. Helps to compose components easily.""" self.engineArch = EngineArchitect(self.workerName) self.engineArch.init() self.receiver, emitter = newEmitterReceiver(self.workerName) # Setup events handling. # self.receiver.accept('running', self._on_running) self.receiver.accept('stop', self._on_stop) self.receiver.accept('syncFolders', self._on_syncFolders) self.receiver.accept('areFoldersDone', self._on_areFoldersDone) self.engine = SyncAccounts( self.workerName, emitter, self.engineArch.getLeftEmitter(), self.engineArch.getRightEmitter(), )
def init(self) -> None: """Initialize the architect. Helps to compose components easily.""" self.engineArch = EngineArchitect(self.workerName) self.engineArch.init() self.receiver, emitter = newEmitterReceiver(self.workerName) # Setup events handling. self.receiver.accept('areSyncFoldersDone', self._on_areSyncFoldersDone) self.receiver.accept('accountEngineDone', self._on_accountEngineDone) self.receiver.accept('syncFolders', self._on_syncFolders) self.engine = SyncAccounts( self.workerName, emitter, self.engineArch.getLeftEmitter(), self.engineArch.getRightEmitter(), )