diff options
author | csharptest <roger@csharptest.net> | 2011-10-01 14:45:47 -0500 |
---|---|---|
committer | rogerk <devnull@localhost> | 2011-10-01 14:45:47 -0500 |
commit | 4ad552692f737dc27e0ea7829eb8f771b852013c (patch) | |
tree | b0935fcfa31760d07d185854ed46ff46f1657001 /src | |
parent | adfdc008919cf373c98ef099e7796345c191ca18 (diff) | |
download | protobuf-4ad552692f737dc27e0ea7829eb8f771b852013c.tar.gz protobuf-4ad552692f737dc27e0ea7829eb8f771b852013c.tar.bz2 protobuf-4ad552692f737dc27e0ea7829eb8f771b852013c.zip |
Moved all extension methods to a single class/file
Diffstat (limited to 'src')
5 files changed, 65 insertions, 76 deletions
diff --git a/src/ProtocolBuffers.Serialization/Extensions.cs b/src/ProtocolBuffers.Serialization/Extensions.cs index 2050c911..ebcaa9fd 100644 --- a/src/ProtocolBuffers.Serialization/Extensions.cs +++ b/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
}
}
diff --git a/src/ProtocolBuffers.Serialization/Http/MessageFormatFactory.cs b/src/ProtocolBuffers.Serialization/Http/MessageFormatFactory.cs index 52fff83f..68de9411 100644 --- a/src/ProtocolBuffers.Serialization/Http/MessageFormatFactory.cs +++ b/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();
diff --git a/src/ProtocolBuffers.Serialization/Http/ServiceExtensions.cs b/src/ProtocolBuffers.Serialization/Http/ServiceExtensions.cs deleted file mode 100644 index 6177d9db..00000000 --- a/src/ProtocolBuffers.Serialization/Http/ServiceExtensions.cs +++ /dev/null @@ -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);
- }
- }
-}
diff --git a/src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj b/src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj index 972fb149..afd66a9f 100644 --- a/src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj +++ b/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" />
diff --git a/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj b/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj index 6f6dd45e..8087bcf7 100644 --- a/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj +++ b/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" />
|