public TimeoutInfo ResolveTimeoutInfo(object token) { TimeOutToken timeOutToken = (TimeOutToken)token; if (!_timeOutTokens.Contains(timeOutToken)) { throw new Exception("Token not found in TimeOutService"); } return(new TimeoutInfo(timeOutToken.Duration, timeOutToken.Duration - timeOutToken.RemainingTime)); }
public void Rearange(TimeSpan duration, object token) { TimeOutToken timeOutToken = (TimeOutToken)token; if (!_timeOutTokens.Contains(timeOutToken)) { throw new Exception("Token not found in TimeOutService"); } timeOutToken.RemainingTime = duration; timeOutToken.Duration = duration; }
public Promise TimeOut(TimeSpan duration, out object token) { Deferred deferred = new Deferred(); TimeOutToken timeOutToken = new TimeOutToken { Deferred = deferred, RemainingTime = duration, Duration = duration }; token = timeOutToken; _timeOutTokens.Add(timeOutToken); return(deferred.Promise()); }