| Index: third_party/mojo/src/mojo/public/dart/src/message.dart
|
| diff --git a/third_party/mojo/src/mojo/public/dart/src/message.dart b/third_party/mojo/src/mojo/public/dart/src/message.dart
|
| index 918d2190ed046c1cf72e4cfcfb605a4ab7196269..9c7cf463112af41ceade6e7a837947d3756109a1 100644
|
| --- a/third_party/mojo/src/mojo/public/dart/src/message.dart
|
| +++ b/third_party/mojo/src/mojo/public/dart/src/message.dart
|
| @@ -6,16 +6,20 @@ part of bindings;
|
|
|
| class MessageHeader {
|
| static const int kSimpleMessageSize = 16;
|
| - static const int kSimpleMessageNumFields = 2;
|
| + // TODO(yzshen): In order to work with other bindings which still interprets
|
| + // the |version| field as |num_fields|, set it to version 2 for now.
|
| + static const int kSimpleMessageVersion = 2;
|
| static const int kMessageWithRequestIdSize = 24;
|
| - static const int kMessageWithRequestIdNumFields = 3;
|
| - static const int kMessageTypeOffset = DataHeader.kHeaderSize;
|
| + // TODO(yzshen): In order to work with other bindings which still interprets
|
| + // the |version| field as |num_fields|, set it to version 3 for now.
|
| + static const int kMessageWithRequestIdVersion = 3;
|
| + static const int kMessageTypeOffset = StructDataHeader.kHeaderSize;
|
| static const int kMessageFlagsOffset = kMessageTypeOffset + 4;
|
| static const int kMessageRequestIdOffset = kMessageFlagsOffset + 4;
|
| static const int kMessageExpectsResponse = 1 << 0;
|
| static const int kMessageIsResponse = 1 << 1;
|
|
|
| - DataHeader _header;
|
| + StructDataHeader _header;
|
| int type;
|
| int flags;
|
| int requestId;
|
| @@ -24,17 +28,17 @@ class MessageHeader {
|
| (flags & (kMessageExpectsResponse | kMessageIsResponse)) != 0;
|
|
|
| MessageHeader(this.type) :
|
| - _header = new DataHeader(kSimpleMessageSize, kSimpleMessageNumFields),
|
| + _header = new StructDataHeader(kSimpleMessageSize, kSimpleMessageVersion),
|
| flags = 0,
|
| requestId = 0;
|
|
|
| MessageHeader.withRequestId(this.type, this.flags, this.requestId) :
|
| - _header = new DataHeader(
|
| - kMessageWithRequestIdSize, kMessageWithRequestIdNumFields);
|
| + _header = new StructDataHeader(
|
| + kMessageWithRequestIdSize, kMessageWithRequestIdVersion);
|
|
|
| MessageHeader.fromMessage(Message message) {
|
| var decoder = new Decoder(message);
|
| - _header = decoder.decodeDataHeader();
|
| + _header = decoder.decodeStructDataHeader();
|
| if (_header.size < kSimpleMessageSize) {
|
| throw new MojoCodecError(
|
| 'Incorrect message size. Got: ${_header.size} '
|
| @@ -58,7 +62,7 @@ class MessageHeader {
|
| bool get hasRequestId => mustHaveRequestId(flags);
|
|
|
| void encode(Encoder encoder) {
|
| - encoder.encodeDataHeader(_header);
|
| + encoder.encodeStructDataHeader(_header);
|
| encoder.encodeUint32(type, kMessageTypeOffset);
|
| encoder.encodeUint32(flags, kMessageFlagsOffset);
|
| if (hasRequestId) {
|
| @@ -76,25 +80,25 @@ class MessageHeader {
|
| bool validateHeader(int expectedType, int expectedFlags) =>
|
| (type == expectedType) && validateHeaderFlags(expectedFlags);
|
|
|
| - static void _validateDataHeader(DataHeader dataHeader) {
|
| - if (dataHeader.numFields < kSimpleMessageNumFields) {
|
| - throw 'Incorrect number of fields, expecting at least '
|
| - '$kSimpleMessageNumFields, but got: ${dataHeader.numFields}.';
|
| + static void _validateDataHeader(StructDataHeader dataHeader) {
|
| + if (dataHeader.version < kSimpleMessageVersion) {
|
| + throw 'Incorrect version, expecting at least '
|
| + '$kSimpleMessageVersion, but got: ${dataHeader.version}.';
|
| }
|
| if (dataHeader.size < kSimpleMessageSize) {
|
| throw 'Incorrect message size, expecting at least $kSimpleMessageSize, '
|
| 'but got: ${dataHeader.size}';
|
| }
|
| - if ((dataHeader.numFields == kSimpleMessageSize) &&
|
| + if ((dataHeader.version == kSimpleMessageVersion) &&
|
| (dataHeader.size != kSimpleMessageSize)) {
|
| - throw 'Incorrect message size for a message with $kSimpleMessageNumFields'
|
| - ' fields, expecting $kSimpleMessageSize, '
|
| + throw 'Incorrect message size for a message of version '
|
| + '$kSimpleMessageVersion, expecting $kSimpleMessageSize, '
|
| 'but got ${dataHeader.size}';
|
| }
|
| - if ((dataHeader.numFields == kMessageWithRequestIdNumFields) &&
|
| + if ((dataHeader.version == kMessageWithRequestIdVersion) &&
|
| (dataHeader.size != kMessageWithRequestIdSize)) {
|
| - throw 'Incorrect message size for a message with '
|
| - '$kMessageWithRequestIdNumFields fields, expecting '
|
| + throw 'Incorrect message size for a message of version '
|
| + '$kMessageWithRequestIdVersion, expecting '
|
| '$kMessageWithRequestIdSize, but got ${dataHeader.size}';
|
| }
|
| }
|
|
|