public Pipe(RequestKey Key, PipingOptions Options) { const string Options_WaitingTimeout = nameof(Options) + "." + nameof(Options.WaitingTimeout); this.Key = Key; this.Options = Options; if (Options.WaitingTimeout < TimeSpan.Zero) { throw new ArgumentException(string.Format(NameIsValue1RequiredNameIsValue2Over, Options_WaitingTimeout, Options.WaitingTimeout, nameof(TimeSpan.Zero))); } if (Options.WaitingTimeout is TimeSpan WaitTimeout) { WaitTokenSource = new CancellationTokenSource(WaitTimeout); var Token = WaitTokenSource.Token; CancelAction = WaitTokenSource.Token.Register(() => { ReadyTaskSource.TrySetCanceled(Token); ResponseTaskSource.TrySetCanceled(Token); }); ReadyTaskSource.Task.ContinueWith(t => CancelAction?.Dispose()); } RegisterEvents(); }
internal SenderPipe(Pipe Current, PipingOptions Options, ILogger <SenderPipe> Logger) => (this.Current, this.Options, this.Logger) = (Current, Options, Logger);
public CommandController(ILogger <CommandController> Logger, IOptions <PipingOptions> Options) { this.Logger = Logger; this.Options = Options.Value; }
public PipingController(IPipingStore Store, ILogger <PipingController> Logger, IOptions <PipingOptions> Options) { this.Store = Store; Option = Options.Value; this.Logger = Logger; }