diff options
author | Jon Skeet <skeet@pobox.com> | 2009-05-29 06:34:52 +0100 |
---|---|---|
committer | Jon Skeet <skeet@pobox.com> | 2009-05-29 06:34:52 +0100 |
commit | 2e6dc12fa8e8cf58a8ab27838b11f929b5cf909b (patch) | |
tree | d91d424a60adc04ac4c63d6dad592aa141b0bb7b /src/ProtoGen | |
parent | 43da7ae328b699d9c6e64ea909e348fac3506f73 (diff) | |
download | protobuf-2e6dc12fa8e8cf58a8ab27838b11f929b5cf909b.tar.gz protobuf-2e6dc12fa8e8cf58a8ab27838b11f929b5cf909b.tar.bz2 protobuf-2e6dc12fa8e8cf58a8ab27838b11f929b5cf909b.zip |
Write/Read delimited messages
Diffstat (limited to 'src/ProtoGen')
-rw-r--r-- | src/ProtoGen/MessageGenerator.cs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ProtoGen/MessageGenerator.cs b/src/ProtoGen/MessageGenerator.cs index 9857764d..4b983003 100644 --- a/src/ProtoGen/MessageGenerator.cs +++ b/src/ProtoGen/MessageGenerator.cs @@ -218,6 +218,12 @@ namespace Google.ProtocolBuffers.ProtoGen { writer.WriteLine("public static {0} ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {{", ClassName); writer.WriteLine(" return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();"); writer.WriteLine("}"); + writer.WriteLine("public static {0} ParseDelimitedFrom(global::System.IO.Stream input) {{", ClassName); + writer.WriteLine(" return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();"); + writer.WriteLine("}"); + writer.WriteLine("public static {0} ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {{", ClassName); + writer.WriteLine(" return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();"); + writer.WriteLine("}"); writer.WriteLine("public static {0} ParseFrom(pb::CodedInputStream input) {{", ClassName); writer.WriteLine(" return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();"); writer.WriteLine("}"); @@ -325,6 +331,9 @@ namespace Google.ProtocolBuffers.ProtoGen { writer.WriteLine("public override {0} BuildPartial() {{", ClassName); writer.Indent(); + writer.WriteLine("if (result == null) {"); + writer.WriteLine(" throw new global::System.InvalidOperationException(\"build() has already been called on this Builder\");"); + writer.WriteLine("}"); foreach (FieldDescriptor field in Descriptor.Fields) { SourceGenerators.CreateFieldGenerator(field).GenerateBuildingCode(writer); } |