Index: third_party/protobuf/csharp/src/Google.Protobuf/Reflection/MapFieldAccessor.cs |
diff --git a/third_party/protobuf/python/google/protobuf/internal/more_extensions_dynamic.proto b/third_party/protobuf/csharp/src/Google.Protobuf/Reflection/MapFieldAccessor.cs |
similarity index 63% |
copy from third_party/protobuf/python/google/protobuf/internal/more_extensions_dynamic.proto |
copy to third_party/protobuf/csharp/src/Google.Protobuf/Reflection/MapFieldAccessor.cs |
index df98ac4bd1929fda636c9e2fce1a9184ebf5d472..9ed7f8c4df4c1ca7b374378c0cf8040e95f22619 100644 |
--- a/third_party/protobuf/python/google/protobuf/internal/more_extensions_dynamic.proto |
+++ b/third_party/protobuf/csharp/src/Google.Protobuf/Reflection/MapFieldAccessor.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/ |
+// Copyright 2015 Google Inc. All rights reserved. |
+// 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,23 +28,32 @@ |
// 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) |
-// |
-// This file is used to test a corner case in the CPP implementation where the |
-// generated C++ type is available for the extendee, but the extension is |
-// defined in a file whose C++ type is not in the binary. |
- |
+using System; |
+using System.Collections; |
+using System.Reflection; |
-import "google/protobuf/internal/more_extensions.proto"; |
+namespace Google.Protobuf.Reflection |
+{ |
+ /// <summary> |
+ /// Accessor for map fields. |
+ /// </summary> |
+ internal sealed class MapFieldAccessor : FieldAccessorBase |
+ { |
+ internal MapFieldAccessor(PropertyInfo property, FieldDescriptor descriptor) : base(property, descriptor) |
+ { |
+ } |
-package google.protobuf.internal; |
- |
-message DynamicMessageType { |
- optional int32 a = 1; |
-} |
+ public override void Clear(IMessage message) |
+ { |
+ IDictionary list = (IDictionary) GetValue(message); |
+ list.Clear(); |
+ } |
-extend ExtendedMessage { |
- optional int32 dynamic_int32_extension = 100; |
- optional DynamicMessageType dynamic_message_extension = 101; |
+ public override void SetValue(IMessage message, object value) |
+ { |
+ throw new InvalidOperationException("SetValue is not implemented for map fields"); |
+ } |
+ } |
} |