Esempio n. 1
0
 /// <inheritdoc/>
 protected override TResult Implementation <TResult>(Func <Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken)
 {
     /* This method is intentionally a pass-through.
      * Delegating to ProactiveFooEngine.Implementation<TResult>(...) allows the code to use that single synchronous implementation
      * for both TokenBucket and TokenBucket<TResult>
      */
     return(TokenBucketEngine.Implementation(
                action,
                context,
                cancellationToken,
                _tokens,
                _timeWindow,
                _returnTokens
                ));
 }
Esempio n. 2
0
        /// <inheritdoc/>
        protected override TResult Implementation(Func <Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken)
        {
            /* This method is intentionally a pass-through.
             * Delegating to ProactiveFooEngine.Implementation<TResult>(...) allows the code to use that single synchronous implementation
             * for both TokenBucket.Execute<TResult>() and TokenBucket<TResult>.Execute(...)
             */
            return(TokenBucketEngine.Implementation(
                       action,
                       context,
                       cancellationToken,
                       50,
                       TimeSpan.Zero,
                       50

                       /* The implementation should receive at least the above parameters,
                        * but more parameters can also be passed: eg anything the policy was configured with. */
                       ));
        }