aboutsummaryrefslogtreecommitdiffstats
path: root/src/google/protobuf/unittest_extension_repeated_nano.proto
diff options
context:
space:
mode:
authorMax Cai <maxtroy@google.com>2013-11-20 18:59:01 +0000
committerMax Cai <maxtroy@google.com>2014-01-10 11:50:32 +0000
commit382ddccb550e1c822ef26a0e65988998f7446624 (patch)
tree5159c510e6a895f4ce56310b8f23b7bb4aafc2f0 /src/google/protobuf/unittest_extension_repeated_nano.proto
parente7741c064ee4cdc5fa41e6444ed45131672fed97 (diff)
downloadexternal_protobuf-382ddccb550e1c822ef26a0e65988998f7446624.zip
external_protobuf-382ddccb550e1c822ef26a0e65988998f7446624.tar.gz
external_protobuf-382ddccb550e1c822ef26a0e65988998f7446624.tar.bz2
Extension overhaul.
- Get rid of TypeLiteral<T>. It was introduced to read the component type of a List<T> at runtime. But we use arrays everywhere else, and we can always read the component type of an array type at runtime. - Properly read/write "minor" types (e.g. sint32, sfixed32). The old implementation could only read/write data as the "typical" types (one per Java type), e.g. java.lang.Integer -> int32, java.lang.Long -> int64. So if e.g. an extension specifies sfixed32 as the type, it would be read/written in the totally incompatible int32 format. - Properly serialize repeated packed fields. The old implementation doesn't do packed serialization. As an added bonus, and to be more aligned with the rest of protobuf nano / main, repeated packable extensions can deserialize both packed and non-packed data. - Split Extension class into a hierarchy so under typical usage a large chunk of code dealing with primitive type extensions can be removed by ProGuard. Bug: https://code.google.com/p/android/issues/detail?id=62586 Change-Id: I0d692f35cc2a8ad3a5a1cb3ce001282b2356b041
Diffstat (limited to 'src/google/protobuf/unittest_extension_repeated_nano.proto')
-rw-r--r--src/google/protobuf/unittest_extension_repeated_nano.proto34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/google/protobuf/unittest_extension_repeated_nano.proto b/src/google/protobuf/unittest_extension_repeated_nano.proto
new file mode 100644
index 0000000..546c2df
--- /dev/null
+++ b/src/google/protobuf/unittest_extension_repeated_nano.proto
@@ -0,0 +1,34 @@
+syntax = "proto2";
+
+option java_multiple_files = true;
+option java_package = "com.google.protobuf.nano";
+
+import "google/protobuf/unittest_extension_nano.proto";
+
+// Must be compiled separately due to extension number reuse.
+// The reuse is deliberate, for testing wire compatibility.
+
+message RepeatedExtensions {
+ extend ExtendableMessage {
+ repeated int32 repeated_int32 = 10;
+ repeated uint32 repeated_uint32 = 11;
+ repeated sint32 repeated_sint32 = 12;
+ repeated int64 repeated_int64 = 13;
+ repeated uint64 repeated_uint64 = 14;
+ repeated sint64 repeated_sint64 = 15;
+ repeated fixed32 repeated_fixed32 = 16;
+ repeated sfixed32 repeated_sfixed32 = 17;
+ repeated fixed64 repeated_fixed64 = 18;
+ repeated sfixed64 repeated_sfixed64 = 19;
+ repeated bool repeated_bool = 20;
+ repeated float repeated_float = 21;
+ repeated double repeated_double = 22;
+ repeated AnEnum repeated_enum = 23;
+ repeated string repeated_string = 24;
+ repeated bytes repeated_bytes = 25;
+ repeated AnotherMessage repeated_message = 26;
+ repeated group RepeatedGroup = 27 {
+ optional int32 a = 1;
+ }
+ }
+}