Listen() public abstract method

public abstract Listen ( ) : TaskCompletionSource>>.Task
return TaskCompletionSource>>.Task
Ejemplo n.º 1
0
        /// <summary>
        /// TBD
        /// </summary>
        /// <returns>TBD</returns>
        public override Task <(Address, TaskCompletionSource <IAssociationEventListener>)> Listen()
        {
            var upstreamListenerPromise = new TaskCompletionSource <IAssociationEventListener>();

            return(WrappedTransport.Listen().ContinueWith(async listenerTask =>
            {
                var listenAddress = listenerTask.Result.Item1;
                var listenerPromise = listenerTask.Result.Item2;
                listenerPromise.TrySetResult(await InterceptListen(listenAddress, upstreamListenerPromise.Task).ConfigureAwait(false));
                return (SchemeAugmenter.AugmentScheme(listenAddress), upstreamListenerPromise);
            }, TaskContinuationOptions.ExecuteSynchronously).Unwrap());
        }