private void InvokeNextWorker(IAsyncModuleResult result, IEnumerator <IWorkerModule> modules,
                                      Action <IAsyncModuleResult> callback)
        {
            if (result.Result == ModuleResult.Stop)
            {
                callback(result);
                return;
            }

            if (modules.MoveNext())
            {
                try
                {
                    modules.Current.HandleRequestAsync(result.Context, x => InvokeNextWorker(x, modules, callback));
                }
                catch (Exception err)
                {
                    result.Exception = err;
                    result.Result    = ModuleResult.Stop;
                    callback(result);
                }
            }
            else
            {
                callback(result);
            }
        }
예제 #2
0
        private void SendResponse(IAsyncModuleResult obj)
        {
            //Logger.WriteDebug(this, "Pipeline => SendResponse");

            var context = (HttpContext)obj.Context;

            SendChannel(context.Channel, context);
        }
예제 #3
0
        private async void SendResponse(IAsyncModuleResult obj)
        {
            _logger.Trace("Pipeline => WebSocketListener.SendResponse");

            HttpContext context = (HttpContext)obj.Context;

            await SendResponseAsync(context.Socket, context.Response);
        }
예제 #4
0
        private void SendResponse(IAsyncModuleResult obj)
        {
            var context = (HttpContext)obj.Context;

            context.Channel.Send(obj.Context.Response);
        }
예제 #5
0
        private void InvokeNextWorker(IAsyncModuleResult result, IEnumerator modules, AsyncModuleHandler callback)
        {
            if (result.Result == ModuleResult.Stop)
            {
                callback(result);
                return;
            }

            if (modules.MoveNext())
            {
                try
                {
                    ((IWorkerModule)modules.Current).HandleRequestAsync(result.Context, x => InvokeNextWorker(x, modules, callback));
                }
                catch (Exception err)
                {
                    result.Exception = err;
                    result.Result = ModuleResult.Stop;
                    callback(result);
                }
            }
            else
            {
                callback(result);
            }
        }
예제 #6
0
 private void SendResponse(IAsyncModuleResult obj)
 {
     var context = (HttpContext) obj.Context;
     context.Channel.Send(obj.Context.Response);
 }
예제 #7
0
        private async void SendResponseAsync(IAsyncModuleResult obj)
        {
            HttpContext context = (HttpContext)obj.Context;

            await SendResponseAsync(context.Socket, context.Response);
        }
예제 #8
0
        private void SendResponse(IAsyncModuleResult obj)
        {
            //Logger.WriteDebug(this, "Pipeline => SendResponse");

            var context = (HttpContext)obj.Context;
            SendChannel(context.Channel, context);
        }
 /// <summary>
 /// Callback from the module manager
 /// </summary>
 protected virtual void SendResponse(IAsyncModuleResult result)
 {
     Send(result.Context.Response);
 }
예제 #10
0
        private async void SendResponseAsync(IAsyncModuleResult obj)
        {

            HttpContext context = (HttpContext)obj.Context;
            await SendResponseAsync(context.Socket, context.Response);

        }
예제 #11
0
 /// <summary>
 /// Callback from the module manager
 /// </summary>
 protected virtual void SendResponse(IAsyncModuleResult result)
 {
     Send(result.Context.Response);
 }
        private async void SendResponse(IAsyncModuleResult obj)
        {
            _logger.Trace("Pipeline => WebSocketListener.SendResponse");

            HttpContext context = (HttpContext)obj.Context;
            await SendResponseAsync(context.Socket, context.Response);

        }