/// <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>( #if !NOEXTENSIONS this #endif 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); }
public void TestReadProtoMimeTypes() { foreach (string type in ProtobufTypes) { Assert.IsTrue( MessageFormatFactory.CreateInputStream(new MessageFormatOptions(), type, Stream.Null) is CodedInputStream); } Assert.IsTrue( MessageFormatFactory.CreateInputStream(new MessageFormatOptions() { DefaultContentType = "application/vnd.google.protobuf" }, null, Stream.Null) is CodedInputStream); }
public void TestReadXmlMimeTypes() { foreach (string type in XmlTypes) { Assert.IsTrue( MessageFormatFactory.CreateInputStream(new MessageFormatOptions(), type, Stream.Null) is XmlFormatReader); } Assert.IsTrue( MessageFormatFactory.CreateInputStream(new MessageFormatOptions() { DefaultContentType = "application/xml" }, null, Stream.Null) is XmlFormatReader); }
/// <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( #if !NOEXTENSIONS this #endif 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(); WriteTo(response, options, responseType, output); }