Exemplo n.º 1
0
        private static void HandleRequest(HttpListenerContext context)
        {
            WADORequestProcessorStatistics statistics = new WADORequestProcessorStatistics("Image Streaming");

            statistics.TotalProcessTime.Start();

            if (Platform.IsLogLevelEnabled(LogLevel.Debug))
            {
                //Don't hold up this thread for logging.
                Task.Factory.StartNew(() => LogRequest(context));
            }

            try
            {
                using (WADORequestTypeHandlerManager handlerManager = new WADORequestTypeHandlerManager())
                {
                    string requestType = context.Request.QueryString["requestType"];
                    IWADORequestTypeHandler typeHandler = handlerManager.GetHandler(requestType);

                    WADORequestTypeHandlerContext ctx = new WADORequestTypeHandlerContext
                    {
                        HttpContext = context,
                        ServerAE    = UriHelper.GetServerAE(context)
                    };

                    using (WADOResponse response = typeHandler.Process(ctx))
                    {
                        if (response != null)
                        {
                            statistics.TransmissionSpeed.Start();
                            SendWADOResponse(response, context);
                            statistics.TransmissionSpeed.End();
                            if (response.Output != null)
                            {
                                statistics.TransmissionSpeed.SetData(response.Output.Length);
                            }
                        }
                    }
                }
            }
            catch (MimeTypeProcessorError error)
            {
                SendError(error.HttpError, context);
            }

            statistics.TotalProcessTime.End();

            //Seems like something you'd only want to log if there was a problem.
            if (Platform.IsLogLevelEnabled(LogLevel.Debug))
            {
                //Don't hold up this thread for logging.
                Task.Factory.StartNew(() => StatisticsLogger.Log(LogLevel.Debug, statistics));
            }
        }
Exemplo n.º 2
0
        private static void HandleRequest(HttpListenerContext context)
        {
            WADORequestProcessorStatistics statistics = new WADORequestProcessorStatistics("Image Streaming");

            statistics.TotalProcessTime.Start();
            LogRequest(context);

            try
            {
                using (WADORequestTypeHandlerManager handlerManager = new WADORequestTypeHandlerManager())
                {
                    string requestType = context.Request.QueryString["requestType"];
                    IWADORequestTypeHandler typeHandler = handlerManager.GetHandler(requestType);

                    WADORequestTypeHandlerContext ctx = new WADORequestTypeHandlerContext
                    {
                        HttpContext = context,
                        ServerAE    = UriHelper.GetServerAE(context)
                    };

                    using (WADOResponse response = typeHandler.Process(ctx))
                    {
                        if (response != null)
                        {
                            statistics.TransmissionSpeed.Start();
                            SendWADOResponse(response, context);
                            statistics.TransmissionSpeed.End();
                            if (response.Output != null)
                            {
                                statistics.TransmissionSpeed.SetData(response.Output.Length);
                            }
                        }
                    }
                }
            }
            catch (MimeTypeProcessorError error)
            {
                SendError(error.HttpError, context);
            }

            statistics.TotalProcessTime.End();
            StatisticsLogger.Log(LogLevel.Debug, statistics);
        }
        private static void HandleRequest(HttpListenerContext context)
        {
            WADORequestProcessorStatistics statistics = new WADORequestProcessorStatistics("Image Streaming");
            statistics.TotalProcessTime.Start();
            LogRequest(context);

            try
            {
                using (WADORequestTypeHandlerManager handlerManager = new WADORequestTypeHandlerManager())
                {
                    string requestType = context.Request.QueryString["requestType"];
                    IWADORequestTypeHandler typeHandler = handlerManager.GetHandler(requestType);

                    WADORequestTypeHandlerContext ctx = new WADORequestTypeHandlerContext
                    {
                        HttpContext = context,
                        ServerAE = UriHelper.GetServerAE(context)
                    };

                    using (WADOResponse response = typeHandler.Process(ctx))
                    {
                        if (response != null)
                        {
                            statistics.TransmissionSpeed.Start();
                            SendWADOResponse(response, context);
                            statistics.TransmissionSpeed.End();
                            if (response.Output != null)
                            {
                                statistics.TransmissionSpeed.SetData(response.Output.Length);
                            }
                        }
                    }

                }
            }
            catch(MimeTypeProcessorError error)
            {
                SendError(error.HttpError, context);
            }

            statistics.TotalProcessTime.End();
            StatisticsLogger.Log(LogLevel.Debug, statistics);
            
        }
        private static void HandleRequest(HttpListenerContext context)
        {
            WADORequestProcessorStatistics statistics;
        	
			if (Platform.IsLogLevelEnabled(LogLevel.Debug))
			{
                statistics = new WADORequestProcessorStatistics("Image Streaming");
                statistics.TotalProcessTime.Start();
				//Don't hold up this thread for logging.
				Task.Factory.StartNew(() => LogRequest(context));
			}
            else
            {
                statistics = null;
            }
            
			try
            {
                using (WADORequestTypeHandlerManager handlerManager = new WADORequestTypeHandlerManager())
                {
                    string requestType = context.Request.QueryString["requestType"];
                    IWADORequestTypeHandler typeHandler = handlerManager.GetHandler(requestType);

                    WADORequestTypeHandlerContext ctx = new WADORequestTypeHandlerContext
                    {
                        HttpContext = context,
                        ServerAE = UriHelper.GetServerAE(context)
                    };

                    using (WADOResponse response = typeHandler.Process(ctx))
                    {
                        if (response != null)
                        {
                            if (statistics != null)
                            statistics.TransmissionSpeed.Start();
                            
                            SendWADOResponse(response, context);
                            
                            if (statistics != null)
                            statistics.TransmissionSpeed.End();

                            if (statistics != null && response.Output != null)
                                statistics.TransmissionSpeed.SetData(response.Output.Length);
                            }
                        }

                }
            }
            catch(MimeTypeProcessorError error)
            {
                SendError(error.HttpError, context);
            }

            if (statistics != null)
            statistics.TotalProcessTime.End();

			//Seems like something you'd only want to log if there was a problem.
			if (Platform.IsLogLevelEnabled(LogLevel.Debug))
			{
				//Don't hold up this thread for logging.
				Task.Factory.StartNew(() => StatisticsLogger.Log(LogLevel.Debug, statistics));
			}
        }