Files
nanopb/tests/unittestproto.proto
Michael Poole ba93b65e9f Set the defaults properly for newly allocated submessages.
Also, pb_dec_submessage() should have used calloc() instead of malloc()
in the first place.

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

54 lines
1.5 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 DefaultContainer {
optional int32 data = 1 [default = 10];
}
message PointerContainer {
required string text = 1 [(nanopb).pointer = true];
required bytes blob = 2 [(nanopb).pointer = true];
required DefaultContainer 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;
}