private void ResetRemoteScannerRoleInfo() { _remoteScannerRole = ScannerRole.Undefined; _remoteScannerBecameMaster.GetAccess(this); _remoteScannerBecameMasterOrSlave.GetAccess(this); _remoteScannerBecameMaster.Reset(); _remoteScannerBecameMasterOrSlave.Reset(); }
protected override void Initialize(WorkflowExecutionContext context) { base.Initialize(context); _remoteScannerRoleDefined = new EventWaitHandleEx(false, true, this); _remoteScannerBecameMaster = new EventWaitHandleEx(false, true, this); _remoteScannerBecameMasterOrSlave = new EventWaitHandleEx(false, true, this); _remoteScannerRole = ScannerRole.Undefined; _syncManager.RemoteScanner.ScannerRoleChanged += RemoteScanner_ScannerRoleChanged; RemoteScanner_ScannerRoleChanged(this, EventArgs.Empty); }
private void RemoteScanner_ScannerRoleChanged(object sender, EventArgs e) { _remoteScannerRole = _syncManager.RemoteScanner.ScannerRole; _logger.LogVerbose(Message.WorkflowRemoteScannerTakeRole, _remoteScannerRole); _remoteScannerRoleDefined.GetAccess(this); _remoteScannerBecameMaster.GetAccess(this); _remoteScannerBecameMasterOrSlave.GetAccess(this); switch (_remoteScannerRole) { case ScannerRole.Undefined: _remoteScannerRoleDefined.Reset(); _remoteScannerBecameMaster.Reset(); _remoteScannerBecameMasterOrSlave.Reset(); break; case ScannerRole.Slave: _remoteScannerRoleDefined.Set(); _remoteScannerBecameMaster.Reset(); _remoteScannerBecameMasterOrSlave.Set(); break; case ScannerRole.Master: _remoteScannerRoleDefined.Set(); _remoteScannerBecameMaster.Set(); _remoteScannerBecameMasterOrSlave.Set(); break; case ScannerRole.RemoteScannerMasterToo: _remoteScannerRoleDefined.Set(); _remoteScannerBecameMaster.Reset(); _remoteScannerBecameMasterOrSlave.Reset(); break; case ScannerRole.Failed: _remoteScannerRoleDefined.Set(); _remoteScannerBecameMaster.Reset(); _remoteScannerBecameMasterOrSlave.Reset(); break; } }