Ejemplo n.º 1
0
        /// <summary>
        /// distribute pipeline
        /// </summary>
        /// <param name="pipeline">upstream pipeline</param>
        /// <param name="distributer">The distributor responsible for distributing to different downstream pipelines</param>
        /// <returns>HTTP pipeline</returns>
        public static IHttpPipelineHandler Distribute(this IHttpPipeline pipeline, IHttpPipelineDistributer distributer)
        {
            if (distributer == null)
            {
                throw new ArgumentNullException(nameof(distributer));
            }

            return(pipeline.Join(distributer.AsHandler()));
        }
Ejemplo n.º 2
0
 public DistributerHandler(IHttpPipelineDistributer distributer)
 {
     _distributer = distributer;
 }
Ejemplo n.º 3
0
 /// <summary>
 /// returns the request distributer as a pipeline handler.
 /// </summary>
 /// <param name="distributer">HTTP request distributer</param>
 /// <returns>a pipeline handler</returns>
 public static IHttpPipelineHandler AsHandler(this IHttpPipelineDistributer distributer)
 {
     return(new DistributerHandler(distributer));
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 让管线分发器处理指定的请求
 /// </summary>
 /// <param name="distributer">管线分发器</param>
 /// <param name="request">要处理的请求</param>
 /// <returns>处理结果</returns>
 public static ValueTask <HttpResponseMessage> Handle(this IHttpPipelineDistributer distributer, HttpRequestMessage request)
 {
     return(new DistributerHandler(distributer).ProcessRequest(request));
 }