Esempio n. 1
0
        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));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        private static void DoObserveWorkDone(ILanguageProtocolProxy proxy, IWorkDoneProgressParams @params, IObserver <WorkDoneProgress> observer)
        {
            var token = SetWorkDoneToken(@params);

            proxy.GetRequiredService <IClientWorkDoneManager>().Monitor(token).Subscribe(observer);
        }