示例#1
0
 private void ResetRemoteScannerRoleInfo()
 {
     _remoteScannerRole = ScannerRole.Undefined;
     _remoteScannerBecameMaster.GetAccess(this);
     _remoteScannerBecameMasterOrSlave.GetAccess(this);
     _remoteScannerBecameMaster.Reset();
     _remoteScannerBecameMasterOrSlave.Reset();
 }
示例#2
0
 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);
 }
示例#3
0
        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;
            }
        }