public override void Evaluate <T>( ICircuitEvaluator <T> evaluator, EvaluationState <T> evaluationState) { T value = evaluator.EvaluateXorGate( evaluationState.GetGateEvaluationValue(_leftInputGate), evaluationState.GetGateEvaluationValue(_rightInputGate) ); evaluationState.SetGateEvaluationValue(this, value); }
public T EvaluateXorGate(T leftValue, T rightValue) { return(_innerEvaluator.EvaluateXorGate(leftValue, rightValue)); }
public T EvaluateXorGate(T leftValue, T rightValue, GateContext gateContext, CircuitContext circuitContext) { return(_innerEvaluator.EvaluateXorGate(leftValue, rightValue, gateContext, circuitContext)); }
public Task <T> EvaluateXorGate(Task <T> leftValue, Task <T> rightValue, GateContext gateContext, CircuitContext circuitContext) { return(Task.WhenAll(leftValue, rightValue).ContinueWith( task => _innerEvaluator.EvaluateXorGate(task.Result[0], task.Result[1], gateContext, circuitContext) )); }