THRIFT-322 IHttpHandler for Thrift
authorRoger Meier <roger@apache.org>
Fri, 2 Sep 2011 21:45:44 +0000 (21:45 +0000)
committerRoger Meier <roger@apache.org>
Fri, 2 Sep 2011 21:45:44 +0000 (21:45 +0000)
Patch: Nils Huegelmann

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1164723 13f79535-47bb-0310-9956-ffa450edef68

lib/csharp/src/Transport/THttpHandler.cs

index 7fe750d..0a10d79 100644 (file)
@@ -9,6 +9,8 @@
 
 using System;
 using System.Web;
+using System.Net;
+using System.IO;
 
 using Thrift.Protocol;
 
@@ -21,6 +23,9 @@ namespace Thrift.Transport
         protected TProtocolFactory inputProtocolFactory;
         protected TProtocolFactory outputProtocolFactory;
 
+        protected const string contentType = "application/x-thrift";
+        protected System.Text.Encoding encoding = System.Text.Encoding.UTF8;
+
         public THttpHandler(TProcessor processor)
             : this(processor, new TBinaryProtocol.Factory())
         {
@@ -40,12 +45,23 @@ namespace Thrift.Transport
             this.outputProtocolFactory = outputProtocolFactory;
         }
 
+        public void ProcessRequest(HttpListenerContext context)
+        {
+            context.Response.ContentType = contentType;
+            context.Response.ContentEncoding = encoding;
+            ProcessRequest(context.Request.InputStream, context.Response.OutputStream);
+        }
+
         public void ProcessRequest(HttpContext context)
         {
-            context.Response.ContentType = "application/x-thrift";
-            context.Response.ContentEncoding = System.Text.Encoding.UTF8;
+            context.Response.ContentType = contentType;
+            context.Response.ContentEncoding = encoding;
+            ProcessRequest(context.Request.InputStream, context.Response.OutputStream);
+        }
 
-            TTransport transport = new TStreamTransport(context.Request.InputStream, context.Response.OutputStream);
+        public void ProcessRequest(Stream input, Stream output)
+        {
+            TTransport transport = new TStreamTransport(input,output);
 
             TProtocol inputProtocol = null;
             TProtocol outputProtocol = null;