Index: third_party/protobuf/csharp/src/Google.Protobuf/Reflection/EnumValueDescriptor.cs |
diff --git a/third_party/protobuf/src/google/protobuf/io/coded_stream_inl.h b/third_party/protobuf/csharp/src/Google.Protobuf/Reflection/EnumValueDescriptor.cs |
similarity index 51% |
copy from third_party/protobuf/src/google/protobuf/io/coded_stream_inl.h |
copy to third_party/protobuf/csharp/src/Google.Protobuf/Reflection/EnumValueDescriptor.cs |
index 144f44f0635304bd7acc72ae628eab2d0a1998d3..b212ce961854ae40666196cbcc78b0ff2fcb0173 100644 |
--- a/third_party/protobuf/src/google/protobuf/io/coded_stream_inl.h |
+++ b/third_party/protobuf/csharp/src/Google.Protobuf/Reflection/EnumValueDescriptor.cs |
@@ -1,6 +1,7 @@ |
+#region Copyright notice and license |
// Protocol Buffers - Google's data interchange format |
// Copyright 2008 Google Inc. All rights reserved. |
-// http://code.google.com/p/protobuf/ |
+// https://developers.google.com/protocol-buffers/ |
// |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
@@ -27,42 +28,43 @@ |
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
+#endregion |
-// Author: jasonh@google.com (Jason Hsueh) |
-// |
-// Implements methods of coded_stream.h that need to be inlined for performance |
-// reasons, but should not be defined in a public header. |
+namespace Google.Protobuf.Reflection |
+{ |
+ /// <summary> |
+ /// Descriptor for a single enum value within an enum in a .proto file. |
+ /// </summary> |
+ public sealed class EnumValueDescriptor : DescriptorBase |
+ { |
+ private readonly EnumDescriptor enumDescriptor; |
+ private readonly EnumValueDescriptorProto proto; |
-#ifndef GOOGLE_PROTOBUF_IO_CODED_STREAM_INL_H__ |
-#define GOOGLE_PROTOBUF_IO_CODED_STREAM_INL_H__ |
+ internal EnumValueDescriptor(EnumValueDescriptorProto proto, FileDescriptor file, |
+ EnumDescriptor parent, int index) |
+ : base(file, parent.FullName + "." + proto.Name, index) |
+ { |
+ this.proto = proto; |
+ enumDescriptor = parent; |
+ file.DescriptorPool.AddSymbol(this); |
+ file.DescriptorPool.AddEnumValueByNumber(this); |
+ } |
-#include <google/protobuf/io/coded_stream.h> |
-#include <string> |
-#include <google/protobuf/stubs/stl_util.h> |
+ internal EnumValueDescriptorProto Proto { get { return proto; } } |
-namespace google { |
-namespace protobuf { |
-namespace io { |
+ /// <summary> |
+ /// Returns the name of the enum value described by this object. |
+ /// </summary> |
+ public override string Name { get { return proto.Name; } } |
-inline bool CodedInputStream::InternalReadStringInline(string* buffer, |
- int size) { |
- if (size < 0) return false; // security: size is often user-supplied |
+ /// <summary> |
+ /// Returns the number associated with this enum value. |
+ /// </summary> |
+ public int Number { get { return Proto.Number; } } |
- if (BufferSize() >= size) { |
- STLStringResizeUninitialized(buffer, size); |
- // When buffer is empty, string_as_array(buffer) will return NULL but memcpy |
- // requires non-NULL pointers even when size is 0. Hench this check. |
- if (size > 0) { |
- memcpy(string_as_array(buffer), buffer_, size); |
- Advance(size); |
+ /// <summary> |
+ /// Returns the enum descriptor that this value is part of. |
+ /// </summary> |
+ public EnumDescriptor EnumDescriptor { get { return enumDescriptor; } } |
} |
- return true; |
- } |
- |
- return ReadStringFallback(buffer, size); |
-} |
- |
-} // namespace io |
-} // namespace protobuf |
-} // namespace google |
-#endif // GOOGLE_PROTOBUF_IO_CODED_STREAM_INL_H__ |
+} |