diff options
author | Jon Skeet <skeet@pobox.com> | 2009-05-28 21:11:15 +0100 |
---|---|---|
committer | Jon Skeet <skeet@pobox.com> | 2009-05-28 21:11:15 +0100 |
commit | 7ee85c4e9f1a94ff4f0a1adbdeb4716a0c519ea7 (patch) | |
tree | e321dc4673a601492c274bb62dbba51263d167b7 /src/ProtoGen | |
parent | d33bff04b3efb651ff0ec53a5fa35e406b41db6f (diff) | |
download | protobuf-7ee85c4e9f1a94ff4f0a1adbdeb4716a0c519ea7.tar.gz protobuf-7ee85c4e9f1a94ff4f0a1adbdeb4716a0c519ea7.tar.bz2 protobuf-7ee85c4e9f1a94ff4f0a1adbdeb4716a0c519ea7.zip |
Added field constant generation
Diffstat (limited to 'src/ProtoGen')
-rw-r--r-- | src/ProtoGen/ExtensionGenerator.cs | 1 | ||||
-rw-r--r-- | src/ProtoGen/MessageGenerator.cs | 3 | ||||
-rw-r--r-- | src/ProtoGen/SourceGeneratorBase.cs | 4 |
3 files changed, 7 insertions, 1 deletions
diff --git a/src/ProtoGen/ExtensionGenerator.cs b/src/ProtoGen/ExtensionGenerator.cs index 2f6876c3..c3412fe9 100644 --- a/src/ProtoGen/ExtensionGenerator.cs +++ b/src/ProtoGen/ExtensionGenerator.cs @@ -24,6 +24,7 @@ namespace Google.ProtocolBuffers.ProtoGen { break; } + writer.WriteLine ("public const int {0} = {1};", GetFieldConstantName(Descriptor), Descriptor.FieldNumber); if (Descriptor.IsRepeated) { writer.WriteLine("{0} static readonly", ClassAccessLevel); writer.WriteLine(" pb::GeneratedExtensionBase<scg::IList<{0}>> {1} =", type, name); diff --git a/src/ProtoGen/MessageGenerator.cs b/src/ProtoGen/MessageGenerator.cs index dbeece76..9857764d 100644 --- a/src/ProtoGen/MessageGenerator.cs +++ b/src/ProtoGen/MessageGenerator.cs @@ -107,6 +107,7 @@ namespace Google.ProtocolBuffers.ProtoGen { foreach(FieldDescriptor fieldDescriptor in Descriptor.Fields) { // Rats: we lose the debug comment here :( + writer.WriteLine("public const int {0} = {1};", GetFieldConstantName(fieldDescriptor), fieldDescriptor.FieldNumber); SourceGenerators.CreateFieldGenerator(fieldDescriptor).GenerateMembers(writer); writer.WriteLine(); } @@ -186,7 +187,7 @@ namespace Google.ProtocolBuffers.ProtoGen { writer.WriteLine(); } - private void GenerateSerializeOneField(TextGenerator writer, FieldDescriptor fieldDescriptor) { + private static void GenerateSerializeOneField(TextGenerator writer, FieldDescriptor fieldDescriptor) { SourceGenerators.CreateFieldGenerator(fieldDescriptor).GenerateSerializationCode(writer); } diff --git a/src/ProtoGen/SourceGeneratorBase.cs b/src/ProtoGen/SourceGeneratorBase.cs index 6abe1dde..dea9def2 100644 --- a/src/ProtoGen/SourceGeneratorBase.cs +++ b/src/ProtoGen/SourceGeneratorBase.cs @@ -30,6 +30,10 @@ namespace Google.ProtocolBuffers.ProtoGen { } } + internal static string GetFieldConstantName(FieldDescriptor field) { + return NameHelpers.UnderscoresToPascalCase(GetFieldName(field)) + "FieldNumber"; + } + private static string ToCSharpName(string name, FileDescriptor file) { string result = file.CSharpOptions.Namespace; if (file.CSharpOptions.NestClasses) { |