You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by ro...@apache.org on 2011/09/02 23:45:45 UTC

svn commit: r1164723 - /thrift/trunk/lib/csharp/src/Transport/THttpHandler.cs

Author: roger
Date: Fri Sep  2 21:45:44 2011
New Revision: 1164723

URL: http://svn.apache.org/viewvc?rev=1164723&view=rev
Log:
THRIFT-322 IHttpHandler for Thrift
Patch: Nils Huegelmann

Modified:
    thrift/trunk/lib/csharp/src/Transport/THttpHandler.cs

Modified: thrift/trunk/lib/csharp/src/Transport/THttpHandler.cs
URL: http://svn.apache.org/viewvc/thrift/trunk/lib/csharp/src/Transport/THttpHandler.cs?rev=1164723&r1=1164722&r2=1164723&view=diff
==============================================================================
--- thrift/trunk/lib/csharp/src/Transport/THttpHandler.cs (original)
+++ thrift/trunk/lib/csharp/src/Transport/THttpHandler.cs Fri Sep  2 21:45:44 2011
@@ -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;