Files
nanopb/tests/unittestproto.proto
Michael Poole c66c6b43c4 Support dynamic allocation for string, bytes and message fields.
This is turned on by passing -p to nanopb_generator.py or setting the
(nanopb).pointer option for a .proto field.

git-svn-id: https://svn.kapsi.fi/jpa/nanopb-dev@1081 e3a754e5-d11d-0410-8d38-ebb782a927b9
2012-01-05 22:01:30 +02:00

50 lines
1.4 KiB
Protocol Buffer

import 'nanopb.proto';
message IntegerArray {
repeated int32 data = 1 [(nanopb).max_count = 10];
}
message FloatArray {
repeated float data = 1 [(nanopb).max_count = 10];
}
message CallbackArray {
// We cheat a bit and use this message for testing other types, too.
// Nanopb does not care about the actual defined data type for callback
// fields.
repeated int32 data = 1;
}
message IntegerContainer {
required IntegerArray submsg = 1;
}
message CallbackContainer {
required CallbackArray submsg = 1;
}
message CallbackContainerContainer {
required CallbackContainer submsg = 1;
}
message PointerContainer {
required string text = 1 [(nanopb).pointer = true];
required bytes blob = 2 [(nanopb).pointer = true];
optional PointerContainer submsg = 3 [(nanopb).pointer = true];
// This should be rejected:
// required int32 data = 4 [(nanopb).pointer = true];
repeated string rtext = 5 [(nanopb).pointer = true, (nanopb).max_count = 10];
repeated bytes rblob = 6 [(nanopb).pointer = true, (nanopb).max_count = 10];
repeated IntegerArray rsubmsg = 7 [(nanopb).pointer = true, (nanopb).max_count = 10];
optional string otext = 8 [(nanopb).pointer = true];
optional bytes oblob = 9 [(nanopb).pointer = true];
}
message RecursiveRef_A {
optional RecursiveRef_B submsg = 1 [(nanopb).pointer = true];
}
message RecursiveRef_B {
required RecursiveRef_A submsg = 1;
}