Finished adding find tag by name
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
index 36aaf2e..fe46892 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
@@ -102,6 +102,8 @@
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMessageSet : pb::ExtendableMessage<TestMessageSet, TestMessageSet.Builder> {
private static readonly TestMessageSet defaultInstance = new Builder().BuildPartial();
+ private static readonly string[] _testMessageSetFieldNames = new string[] { };
+ private static readonly uint[] _testMessageSetFieldTags = new uint[] { };
public static TestMessageSet DefaultInstance {
get { return defaultInstance; }
}
@@ -131,6 +133,7 @@
public override void WriteTo(pb::ICodedOutputStream output) {
int size = SerializedSize;
+ string[] field_names = _testMessageSetFieldNames;
pb::ExtendableMessage<TestMessageSet, TestMessageSet.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
extensionWriter.WriteUntil(536870912, output);
UnknownFields.WriteAsMessageSetTo(output);
@@ -253,6 +256,18 @@
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMessageSetFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMessageSetFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
switch (tag) {
case 0: {
throw pb::InvalidProtocolBufferException.InvalidTag();
@@ -290,6 +305,8 @@
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMessageSetContainer : pb::GeneratedMessage<TestMessageSetContainer, TestMessageSetContainer.Builder> {
private static readonly TestMessageSetContainer defaultInstance = new Builder().BuildPartial();
+ private static readonly string[] _testMessageSetContainerFieldNames = new string[] { "message_set" };
+ private static readonly uint[] _testMessageSetContainerFieldTags = new uint[] { 10 };
public static TestMessageSetContainer DefaultInstance {
get { return defaultInstance; }
}
@@ -328,8 +345,9 @@
public override void WriteTo(pb::ICodedOutputStream output) {
int size = SerializedSize;
+ string[] field_names = _testMessageSetContainerFieldNames;
if (hasMessageSet) {
- output.WriteMessage(1, "message_set", MessageSet);
+ output.WriteMessage(1, field_names[0], MessageSet);
}
UnknownFields.WriteTo(output);
}
@@ -455,6 +473,18 @@
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMessageSetContainerFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMessageSetContainerFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
switch (tag) {
case 0: {
throw pb::InvalidProtocolBufferException.InvalidTag();
@@ -537,6 +567,8 @@
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMessageSetExtension1 : pb::GeneratedMessage<TestMessageSetExtension1, TestMessageSetExtension1.Builder> {
private static readonly TestMessageSetExtension1 defaultInstance = new Builder().BuildPartial();
+ private static readonly string[] _testMessageSetExtension1FieldNames = new string[] { "i" };
+ private static readonly uint[] _testMessageSetExtension1FieldTags = new uint[] { 120 };
public static TestMessageSetExtension1 DefaultInstance {
get { return defaultInstance; }
}
@@ -577,8 +609,9 @@
public override void WriteTo(pb::ICodedOutputStream output) {
int size = SerializedSize;
+ string[] field_names = _testMessageSetExtension1FieldNames;
if (hasI) {
- output.WriteInt32(15, "i", I);
+ output.WriteInt32(15, field_names[0], I);
}
UnknownFields.WriteTo(output);
}
@@ -704,6 +737,18 @@
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMessageSetExtension1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMessageSetExtension1FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
switch (tag) {
case 0: {
throw pb::InvalidProtocolBufferException.InvalidTag();
@@ -722,7 +767,7 @@
break;
}
case 120: {
- result.hasI |= input.ReadInt32(ref result.i_);
+ result.hasI = input.ReadInt32(ref result.i_);
break;
}
}
@@ -763,6 +808,8 @@
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMessageSetExtension2 : pb::GeneratedMessage<TestMessageSetExtension2, TestMessageSetExtension2.Builder> {
private static readonly TestMessageSetExtension2 defaultInstance = new Builder().BuildPartial();
+ private static readonly string[] _testMessageSetExtension2FieldNames = new string[] { "str" };
+ private static readonly uint[] _testMessageSetExtension2FieldTags = new uint[] { 202 };
public static TestMessageSetExtension2 DefaultInstance {
get { return defaultInstance; }
}
@@ -803,8 +850,9 @@
public override void WriteTo(pb::ICodedOutputStream output) {
int size = SerializedSize;
+ string[] field_names = _testMessageSetExtension2FieldNames;
if (hasStr) {
- output.WriteString(25, "str", Str);
+ output.WriteString(25, field_names[0], Str);
}
UnknownFields.WriteTo(output);
}
@@ -930,6 +978,18 @@
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMessageSetExtension2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMessageSetExtension2FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
switch (tag) {
case 0: {
throw pb::InvalidProtocolBufferException.InvalidTag();
@@ -948,7 +1008,7 @@
break;
}
case 202: {
- result.hasStr |= input.ReadString(ref result.str_);
+ result.hasStr = input.ReadString(ref result.str_);
break;
}
}
@@ -990,6 +1050,8 @@
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class RawMessageSet : pb::GeneratedMessage<RawMessageSet, RawMessageSet.Builder> {
private static readonly RawMessageSet defaultInstance = new Builder().BuildPartial();
+ private static readonly string[] _rawMessageSetFieldNames = new string[] { "item" };
+ private static readonly uint[] _rawMessageSetFieldTags = new uint[] { 11 };
public static RawMessageSet DefaultInstance {
get { return defaultInstance; }
}
@@ -1020,6 +1082,8 @@
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class Item : pb::GeneratedMessage<Item, Item.Builder> {
private static readonly Item defaultInstance = new Builder().BuildPartial();
+ private static readonly string[] _itemFieldNames = new string[] { "message", "type_id" };
+ private static readonly uint[] _itemFieldTags = new uint[] { 26, 16 };
public static Item DefaultInstance {
get { return defaultInstance; }
}
@@ -1070,11 +1134,12 @@
public override void WriteTo(pb::ICodedOutputStream output) {
int size = SerializedSize;
+ string[] field_names = _itemFieldNames;
if (hasTypeId) {
- output.WriteInt32(2, "type_id", TypeId);
+ output.WriteInt32(2, field_names[1], TypeId);
}
if (hasMessage) {
- output.WriteBytes(3, "message", Message);
+ output.WriteBytes(3, field_names[0], Message);
}
UnknownFields.WriteTo(output);
}
@@ -1206,6 +1271,18 @@
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_itemFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _itemFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
switch (tag) {
case 0: {
throw pb::InvalidProtocolBufferException.InvalidTag();
@@ -1224,11 +1301,11 @@
break;
}
case 16: {
- result.hasTypeId |= input.ReadInt32(ref result.typeId_);
+ result.hasTypeId = input.ReadInt32(ref result.typeId_);
break;
}
case 26: {
- result.hasMessage |= input.ReadBytes(ref result.message_);
+ result.hasMessage = input.ReadBytes(ref result.message_);
break;
}
}
@@ -1306,8 +1383,9 @@
public override void WriteTo(pb::ICodedOutputStream output) {
int size = SerializedSize;
+ string[] field_names = _rawMessageSetFieldNames;
if (item_.Count > 0) {
- output.WriteArray(pbd::FieldType.Group, 1, "item", item_);
+ output.WriteArray(pbd::FieldType.Group, 1, field_names[0], item_);
}
UnknownFields.WriteTo(output);
}
@@ -1434,6 +1512,18 @@
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_rawMessageSetFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _rawMessageSetFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
switch (tag) {
case 0: {
throw pb::InvalidProtocolBufferException.InvalidTag();