Example #1
0
 private bool SetState(AgentCleanState currentState, AgentCleanState newState)
 {
     return(Interlocked.CompareExchange(
                ref this.cleanState,
                (int)newState,
                (int)currentState) == (int)currentState);
 }
Example #2
0
        private void ChangeState(AgentCleanState newState)
        {
            switch (newState)
            {
            case AgentCleanState.Inactive:
                if (this.SetState(AgentCleanState.Stopping, AgentCleanState.Inactive))
                {
                    this.cleanStopWatch.Reset();
                }
                break;

            case AgentCleanState.Running:
                if (this.SetState(AgentCleanState.Inactive, AgentCleanState.Running))
                {
                    this.Clear();
                }
                break;

            case AgentCleanState.Stopping:
                this.SetState(AgentCleanState.Running, AgentCleanState.Stopping);
                this.ChangeState(AgentCleanState.Inactive);
                break;

            case AgentCleanState.Error:
                this.SetState((AgentCleanState)this.cleanState, AgentCleanState.Stopping);
                this.ChangeState(AgentCleanState.Inactive);
                break;
            }
        }