aboutsummaryrefslogtreecommitdiff
path: root/src/ProtocolBuffers
diff options
context:
space:
mode:
authorJon Skeet <skeet@pobox.com>2009-11-03 17:36:32 +0000
committerJon Skeet <skeet@pobox.com>2009-11-03 17:36:32 +0000
commitb075ff5c17b04efcd8ab8adee866456b0abf2195 (patch)
tree9186debb649fbbc1f0ffe2cd56f305749039048b /src/ProtocolBuffers
parentb49d3c7834c9448e137d88c510f30963661ff7d9 (diff)
downloadprotobuf-b075ff5c17b04efcd8ab8adee866456b0abf2195.tar.gz
protobuf-b075ff5c17b04efcd8ab8adee866456b0abf2195.tar.bz2
protobuf-b075ff5c17b04efcd8ab8adee866456b0abf2195.zip
Added a flag to allow code contracts to be emitted
Diffstat (limited to 'src/ProtocolBuffers')
-rw-r--r--src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs66
-rw-r--r--src/ProtocolBuffers/Descriptors/FileDescriptor.cs9
-rw-r--r--src/ProtocolBuffers/Descriptors/MessageDescriptor.cs1
3 files changed, 55 insertions, 21 deletions
diff --git a/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs b/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
index 01858706..9ab99dfe 100644
--- a/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
+++ b/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
@@ -37,21 +37,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
byte[] descriptorData = global::System.Convert.FromBase64String(
"CiRnb29nbGUvcHJvdG9idWYvY3NoYXJwX29wdGlvbnMucHJvdG8SD2dvb2ds" +
"ZS5wcm90b2J1ZhogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8i" +
- "iAEKEUNTaGFycEZpbGVPcHRpb25zEhEKCW5hbWVzcGFjZRgBIAEoCRIaChJ1" +
- "bWJyZWxsYV9jbGFzc25hbWUYAiABKAkSFgoOcHVibGljX2NsYXNzZXMYAyAB" +
- "KAgSFgoObXVsdGlwbGVfZmlsZXMYBCABKAgSFAoMbmVzdF9jbGFzc2VzGAUg" +
- "ASgIIisKEkNTaGFycEZpZWxkT3B0aW9ucxIVCg1wcm9wZXJ0eV9uYW1lGAEg" +
- "ASgJOl4KE2NzaGFycF9maWxlX29wdGlvbnMSHC5nb29nbGUucHJvdG9idWYu" +
- "RmlsZU9wdGlvbnMY6AcgASgLMiIuZ29vZ2xlLnByb3RvYnVmLkNTaGFycEZp" +
- "bGVPcHRpb25zOmEKFGNzaGFycF9maWVsZF9vcHRpb25zEh0uZ29vZ2xlLnBy" +
- "b3RvYnVmLkZpZWxkT3B0aW9ucxjoByABKAsyIy5nb29nbGUucHJvdG9idWYu" +
- "Q1NoYXJwRmllbGRPcHRpb25z");
+ "pgEKEUNTaGFycEZpbGVPcHRpb25zEhEKCW5hbWVzcGFjZRgBIAEoCRIaChJ1" +
+ "bWJyZWxsYV9jbGFzc25hbWUYAiABKAkSHAoOcHVibGljX2NsYXNzZXMYAyAB" +
+ "KAg6BHRydWUSFgoObXVsdGlwbGVfZmlsZXMYBCABKAgSFAoMbmVzdF9jbGFz" +
+ "c2VzGAUgASgIEhYKDmNvZGVfY29udHJhY3RzGAYgASgIIisKEkNTaGFycEZp" +
+ "ZWxkT3B0aW9ucxIVCg1wcm9wZXJ0eV9uYW1lGAEgASgJOl4KE2NzaGFycF9m" +
+ "aWxlX29wdGlvbnMSHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMY6Acg" +
+ "ASgLMiIuZ29vZ2xlLnByb3RvYnVmLkNTaGFycEZpbGVPcHRpb25zOmEKFGNz" +
+ "aGFycF9maWVsZF9vcHRpb25zEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0" +
+ "aW9ucxjoByABKAsyIy5nb29nbGUucHJvdG9idWYuQ1NoYXJwRmllbGRPcHRp" +
+ "b25z");
pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
descriptor = root;
internal__static_google_protobuf_CSharpFileOptions__Descriptor = Descriptor.MessageTypes[0];
internal__static_google_protobuf_CSharpFileOptions__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.CSharpFileOptions, global::Google.ProtocolBuffers.DescriptorProtos.CSharpFileOptions.Builder>(internal__static_google_protobuf_CSharpFileOptions__Descriptor,
- new string[] { "Namespace", "UmbrellaClassname", "PublicClasses", "MultipleFiles", "NestClasses", });
+ new string[] { "Namespace", "UmbrellaClassname", "PublicClasses", "MultipleFiles", "NestClasses", "CodeContracts", });
internal__static_google_protobuf_CSharpFieldOptions__Descriptor = Descriptor.MessageTypes[1];
internal__static_google_protobuf_CSharpFieldOptions__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.CSharpFieldOptions, global::Google.ProtocolBuffers.DescriptorProtos.CSharpFieldOptions.Builder>(internal__static_google_protobuf_CSharpFieldOptions__Descriptor,
@@ -113,7 +114,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public const int PublicClassesFieldNumber = 3;
private bool hasPublicClasses;
- private bool publicClasses_ = false;
+ private bool publicClasses_ = true;
public bool HasPublicClasses {
get { return hasPublicClasses; }
}
@@ -141,6 +142,16 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return nestClasses_; }
}
+ public const int CodeContractsFieldNumber = 6;
+ private bool hasCodeContracts;
+ private bool codeContracts_ = false;
+ public bool HasCodeContracts {
+ get { return hasCodeContracts; }
+ }
+ public bool CodeContracts {
+ get { return codeContracts_; }
+ }
+
public override bool IsInitialized {
get {
return true;
@@ -163,6 +174,9 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
if (HasNestClasses) {
output.WriteBool(5, NestClasses);
}
+ if (HasCodeContracts) {
+ output.WriteBool(6, CodeContracts);
+ }
UnknownFields.WriteTo(output);
}
@@ -188,6 +202,9 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
if (HasNestClasses) {
size += pb::CodedOutputStream.ComputeBoolSize(5, NestClasses);
}
+ if (HasCodeContracts) {
+ size += pb::CodedOutputStream.ComputeBoolSize(6, CodeContracts);
+ }
size += UnknownFields.SerializedSize;
memoizedSerializedSize = size;
return size;
@@ -295,6 +312,9 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
if (other.HasNestClasses) {
NestClasses = other.NestClasses;
}
+ if (other.HasCodeContracts) {
+ CodeContracts = other.CodeContracts;
+ }
this.MergeUnknownFields(other.UnknownFields);
return this;
}
@@ -347,6 +367,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
NestClasses = input.ReadBool();
break;
}
+ case 48: {
+ CodeContracts = input.ReadBool();
+ break;
+ }
}
}
}
@@ -404,7 +428,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public Builder ClearPublicClasses() {
result.hasPublicClasses = false;
- result.publicClasses_ = false;
+ result.publicClasses_ = true;
return this;
}
@@ -443,6 +467,24 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
result.nestClasses_ = false;
return this;
}
+
+ public bool HasCodeContracts {
+ get { return result.HasCodeContracts; }
+ }
+ public bool CodeContracts {
+ get { return result.CodeContracts; }
+ set { SetCodeContracts(value); }
+ }
+ public Builder SetCodeContracts(bool value) {
+ result.hasCodeContracts = true;
+ result.codeContracts_ = value;
+ return this;
+ }
+ public Builder ClearCodeContracts() {
+ result.hasCodeContracts = false;
+ result.codeContracts_ = false;
+ return this;
+ }
}
static CSharpFileOptions() {
object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor, null);
diff --git a/src/ProtocolBuffers/Descriptors/FileDescriptor.cs b/src/ProtocolBuffers/Descriptors/FileDescriptor.cs
index a6dd7f85..4d7b54e0 100644
--- a/src/ProtocolBuffers/Descriptors/FileDescriptor.cs
+++ b/src/ProtocolBuffers/Descriptors/FileDescriptor.cs
@@ -94,15 +94,6 @@ namespace Google.ProtocolBuffers.Descriptors {
if (!builder.HasNamespace) {
builder.Namespace = Package;
}
- if (!builder.HasMultipleFiles) {
- builder.MultipleFiles = false;
- }
- if (!builder.HasNestClasses) {
- builder.NestClasses = false;
- }
- if (!builder.HasPublicClasses) {
- builder.PublicClasses = true;
- }
if (!builder.HasUmbrellaClassname) {
int lastSlash = Name.LastIndexOf('/');
string baseName = Name.Substring(lastSlash + 1);
diff --git a/src/ProtocolBuffers/Descriptors/MessageDescriptor.cs b/src/ProtocolBuffers/Descriptors/MessageDescriptor.cs
index cdd75a0c..79356170 100644
--- a/src/ProtocolBuffers/Descriptors/MessageDescriptor.cs
+++ b/src/ProtocolBuffers/Descriptors/MessageDescriptor.cs
@@ -57,6 +57,7 @@ namespace Google.ProtocolBuffers.Descriptors {
enumTypes = DescriptorUtil.ConvertAndMakeReadOnly(proto.EnumTypeList,
(type, index) => new EnumDescriptor(type, file, this, index));
+ // TODO(jonskeet): Sort fields first?
fields = DescriptorUtil.ConvertAndMakeReadOnly(proto.FieldList,
(field, index) => new FieldDescriptor(field, file, this, index, false));