Преглед на файлове

Moved all extension methods to a single class/file

csharptest преди 14 години
родител
ревизия
4ad552692f

+ 65 - 0
src/ProtocolBuffers.Serialization/Extensions.cs

@@ -3,6 +3,7 @@ using System.Text;
 using System.IO;
 using System.Xml;
 using Google.ProtocolBuffers.Serialization;
+using Google.ProtocolBuffers.Serialization.Http;
 
 namespace Google.ProtocolBuffers
 {
@@ -43,6 +44,28 @@ namespace Google.ProtocolBuffers
             return w.ToString();
         }
 
+        /// <summary>
+        /// Writes the message instance to the stream using the content type provided
+        /// </summary>
+        /// <param name="message">An instance of a message</param>
+        /// <param name="options">Options specific to writing this message and/or content type</param>
+        /// <param name="contentType">The mime type of the content to be written</param>
+        /// <param name="output">The stream to write the message to</param>
+        public static void WriteTo(this IMessageLite message, MessageFormatOptions options, string contentType, Stream output)
+        {
+            ICodedOutputStream codedOutput = MessageFormatFactory.CreateOutputStream(options, contentType, output);
+
+            // Output the appropriate message preamble
+            codedOutput.WriteMessageStart();
+
+            // Write the message content to the output
+            message.WriteTo(codedOutput);
+
+            // Write the closing message fragment
+            codedOutput.WriteMessageEnd();
+            codedOutput.Flush();
+        }
+
         #endregion
         #region IBuilderLite Extensions
         /// <summary>
@@ -95,6 +118,48 @@ namespace Google.ProtocolBuffers
                 .Merge(rootElementName, builder, extensionRegistry);
         }
 
+        /// <summary>
+        /// Merges the message from the input stream based on the contentType provided
+        /// </summary>
+        /// <typeparam name="TBuilder">A type derived from IBuilderLite</typeparam>
+        /// <param name="builder">An instance of a message builder</param>
+        /// <param name="options">Options specific to reading this message and/or content type</param>
+        /// <param name="contentType">The mime type of the input stream content</param>
+        /// <param name="input">The stream to read the message from</param>
+        /// <returns>The same builder instance that was supplied in the builder parameter</returns>
+        public static TBuilder MergeFrom<TBuilder>(this TBuilder builder, MessageFormatOptions options, string contentType, Stream input) where TBuilder : IBuilderLite
+        {
+            ICodedInputStream codedInput = MessageFormatFactory.CreateInputStream(options, contentType, input);
+            codedInput.ReadMessageStart();
+            builder.WeakMergeFrom(codedInput, options.ExtensionRegistry);
+            codedInput.ReadMessageEnd();
+            return builder;
+        }
+
+        #endregion
+        #region IRpcServerStub Extensions
+
+        /// <summary>
+        /// Used to implement a service endpoint on an HTTP server.  This works with services generated with the
+        /// service_generator_type option set to IRPCDISPATCH.
+        /// </summary>
+        /// <param name="stub">The service execution stub</param>
+        /// <param name="methodName">The name of the method being invoked</param>
+        /// <param name="options">optional arguments for the format reader/writer</param>
+        /// <param name="contentType">The mime type for the input stream</param>
+        /// <param name="input">The input stream</param>
+        /// <param name="responseType">The mime type for the output stream</param>
+        /// <param name="output">The output stream</param>
+        public static void HttpCallMethod(this IRpcServerStub stub, string methodName, MessageFormatOptions options,
+            string contentType, Stream input, string responseType, Stream output)
+        {
+            ICodedInputStream codedInput = MessageFormatFactory.CreateInputStream(options, contentType, input);
+            codedInput.ReadMessageStart();
+            IMessageLite response = stub.CallMethod(methodName, codedInput, options.ExtensionRegistry);
+            codedInput.ReadMessageEnd();
+            response.WriteTo(options, responseType, output);
+        }
+
         #endregion
     }
 }

+ 0 - 40
src/ProtocolBuffers.Serialization/Http/MessageFormatFactory.cs

@@ -30,24 +30,6 @@ namespace Google.ProtocolBuffers.Serialization.Http
 
             return codedInput;
         }
-
-        /// <summary>
-        /// Merges the message from the input stream based on the contentType provided
-        /// </summary>
-        /// <typeparam name="TBuilder">A type derived from IBuilderLite</typeparam>
-        /// <param name="builder">An instance of a message builder</param>
-        /// <param name="options">Options specific to reading this message and/or content type</param>
-        /// <param name="contentType">The mime type of the input stream content</param>
-        /// <param name="input">The stream to read the message from</param>
-        /// <returns>The same builder instance that was supplied in the builder parameter</returns>
-        public static TBuilder MergeFrom<TBuilder>(this TBuilder builder, MessageFormatOptions options, string contentType, Stream input) where TBuilder : IBuilderLite
-        {
-            ICodedInputStream codedInput = CreateInputStream(options, contentType, input);
-            codedInput.ReadMessageStart();
-            builder.WeakMergeFrom(codedInput, options.ExtensionRegistry);
-            codedInput.ReadMessageEnd();
-            return builder;
-        }
         
         /// <summary>
         /// Writes the message instance to the stream using the content type provided
@@ -93,28 +75,6 @@ namespace Google.ProtocolBuffers.Serialization.Http
             return codedOutput;
         }
 
-        /// <summary>
-        /// Writes the message instance to the stream using the content type provided
-        /// </summary>
-        /// <param name="message">An instance of a message</param>
-        /// <param name="options">Options specific to writing this message and/or content type</param>
-        /// <param name="contentType">The mime type of the content to be written</param>
-        /// <param name="output">The stream to write the message to</param>
-        public static void WriteTo(this IMessageLite message, MessageFormatOptions options, string contentType, Stream output)
-        {
-            ICodedOutputStream codedOutput = CreateOutputStream(options, contentType, output);
-
-            // Output the appropriate message preamble
-            codedOutput.WriteMessageStart();
-
-            // Write the message content to the output
-            message.WriteTo(codedOutput);
-
-            // Write the closing message fragment
-            codedOutput.WriteMessageEnd();
-            codedOutput.Flush();
-        }
-
         private static ICodedInputStream ContentTypeToInputStream(string contentType, MessageFormatOptions options, Stream input)
         {
             contentType = (contentType ?? String.Empty).Split(';')[0].Trim();

+ 0 - 34
src/ProtocolBuffers.Serialization/Http/ServiceExtensions.cs

@@ -1,34 +0,0 @@
-using System.Collections.Generic;
-using System.Text;
-using Google.ProtocolBuffers;
-using System.IO;
-
-namespace Google.ProtocolBuffers.Serialization.Http
-{
-    /// <summary>
-    /// Extensions for the IRpcServerStub
-    /// </summary>
-    public static class ServiceExtensions
-    {
-        /// <summary>
-        /// Used to implement a service endpoint on an HTTP server.  This works with services generated with the
-        /// service_generator_type option set to IRPCDISPATCH.
-        /// </summary>
-        /// <param name="stub">The service execution stub</param>
-        /// <param name="methodName">The name of the method being invoked</param>
-        /// <param name="options">optional arguments for the format reader/writer</param>
-        /// <param name="contentType">The mime type for the input stream</param>
-        /// <param name="input">The input stream</param>
-        /// <param name="responseType">The mime type for the output stream</param>
-        /// <param name="output">The output stream</param>
-        public static void HttpCallMethod(this IRpcServerStub stub, string methodName, MessageFormatOptions options, 
-            string contentType, Stream input, string responseType, Stream output)
-        {
-            ICodedInputStream codedInput = MessageFormatFactory.CreateInputStream(options, contentType, input);
-            codedInput.ReadMessageStart();
-            IMessageLite response = stub.CallMethod(methodName, codedInput, options.ExtensionRegistry);
-            codedInput.ReadMessageEnd();
-            response.WriteTo(options, responseType, output);
-        }
-    }
-}

+ 0 - 1
src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj

@@ -101,7 +101,6 @@
     <Compile Include="Http\FormUrlEncodedReader.cs" />
     <Compile Include="Http\MessageFormatFactory.cs" />
     <Compile Include="Http\MessageFormatOptions.cs" />
-    <Compile Include="Http\ServiceExtensions.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="AbstractReader.cs" />
     <Compile Include="AbstractTextReader.cs" />

+ 0 - 1
src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj

@@ -101,7 +101,6 @@
     <Compile Include="Http\FormUrlEncodedReader.cs" />
     <Compile Include="Http\MessageFormatFactory.cs" />
     <Compile Include="Http\MessageFormatOptions.cs" />
-    <Compile Include="Http\ServiceExtensions.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="AbstractReader.cs" />
     <Compile Include="AbstractTextReader.cs" />