private static void DoObserveWorkDone(ILanguageProtocolProxy proxy, IWorkDoneProgressParams @params, IWorkDoneProgressObserver observer) { var token = @params.WorkDoneToken ??= new ProgressToken(Guid.NewGuid().ToString()); var observable = proxy.GetRequiredService <IClientWorkDoneManager>().Monitor(token); observable.Subscribe( v => { switch (v) { case WorkDoneProgressBegin begin: observer.OnBegin(begin); break; case WorkDoneProgressReport report: observer.OnReport(report); break; case WorkDoneProgressEnd end: observer.OnEnd(end); break; } }, observer.OnError, observer.OnCompleted ); }
public static IRequestProgressObservable <TItem, TResponse> RequestProgress <TResponse, TItem>( this ILanguageProtocolProxy requestRouter, IPartialItemRequest <TResponse, TItem> @params, Func <TItem, TResponse> factory, CancellationToken cancellationToken = default ) { var resultToken = new ProgressToken(Guid.NewGuid().ToString()); @params.PartialResultToken = resultToken; return(requestRouter.ProgressManager.MonitorUntil(@params, factory, cancellationToken)); }
private static void DoObserveWorkDone(ILanguageProtocolProxy proxy, IWorkDoneProgressParams @params, IObserver <WorkDoneProgress> observer) { var token = @params.WorkDoneToken ??= new ProgressToken(Guid.NewGuid().ToString()); proxy.GetRequiredService <IClientWorkDoneManager>().Monitor(token).Subscribe(observer); }
private static void DoObserveWorkDone(ILanguageProtocolProxy proxy, IWorkDoneProgressParams @params, IObserver <WorkDoneProgress> observer) { var token = SetWorkDoneToken(@params); proxy.GetRequiredService <IClientWorkDoneManager>().Monitor(token).Subscribe(observer); }