Chromium Code Reviews| Index: mojo/public/js/codec.js |
| diff --git a/mojo/public/js/codec.js b/mojo/public/js/codec.js |
| index ce58a8cfd4aea874d6b752d9f8efe47f28268037..e53238b8e6b784183c6b2024d4bdee6dc56901e3 100644 |
| --- a/mojo/public/js/codec.js |
| +++ b/mojo/public/js/codec.js |
| @@ -5,13 +5,15 @@ |
| define("mojo/public/js/codec", [ |
| "mojo/public/js/buffer", |
| "mojo/public/js/interface_types", |
| + "mojo/public/js/lib/interface_endpoint_handle", |
| "mojo/public/js/unicode", |
| -], function(buffer, types, unicode) { |
| +], function(buffer, types, interfaceEndpointHandle, unicode) { |
| var kErrorUnsigned = "Passing negative value to unsigned"; |
| var kErrorArray = "Passing non Array for array type"; |
| var kErrorString = "Passing non String for string type"; |
| var kErrorMap = "Passing non Map for map type"; |
| + var InterfaceEndpointHandle = interfaceEndpointHandle.InterfaceEndpointHandle; |
| // Memory ------------------------------------------------------------------- |
| @@ -31,6 +33,7 @@ define("mojo/public/js/codec", [ |
| var kStructHeaderSize = 8; |
| var kMessageHeaderSize = 24; |
| var kMessageWithRequestIDHeaderSize = 32; |
|
yzshen1
2017/04/11 06:23:11
Please change kMessageHeaderSize and kMessageWithR
wangjimmy
2017/04/12 00:26:17
Done.
|
| + var kMessageV2HeaderSize = 48; |
| var kMapStructPayloadSize = 16; |
| var kStructHeaderNumBytesOffset = 0; |
| @@ -457,6 +460,19 @@ define("mojo/public/js/codec", [ |
| return this.buffer.getUint32(kMessageInterfaceIdOffset); |
| }; |
| + Message.prototype.getPayloadInterfaceIds = function() { |
| + if (this.getHeaderVersion() < 2) { |
| + throw new Error( |
| + "Version of message does not support payload interface ids."); |
| + } |
| + |
| + var messageV2PayloadInterfaceIdsPointer = kMessageV2HeaderSize - 8; |
|
yzshen1
2017/04/11 06:23:11
Please consider defining kMessagePayloadInterfaceI
wangjimmy
2017/04/12 00:26:17
Done.
|
| + var decoder = new Decoder(this.buffer, this.handles, |
| + messageV2PayloadInterfaceIdsPointer); |
| + var payloadInterfaceIds = decoder.decodeArrayPointer(Uint32); |
| + return payloadInterfaceIds; |
| + }; |
| + |
| Message.prototype.isResponse = function() { |
| return (this.getFlags() & kMessageIsResponse) != 0; |
| }; |
| @@ -838,6 +854,23 @@ define("mojo/public/js/codec", [ |
| NullableInterface.prototype = Object.create(Interface.prototype); |
| + function AssociatedInterfacePtrInfo() { |
| + } |
| + |
| + AssociatedInterfacePtrInfo.prototype.encodedSize = 8; |
| + |
| + function NullableAssociatedInterfacePtrInfo() { |
| + } |
| + |
| + NullableAssociatedInterfacePtrInfo.encodedSize = |
| + AssociatedInterfacePtrInfo.encodedSize; |
| + |
| + NullableAssociatedInterfacePtrInfo.decode = |
| + AssociatedInterfacePtrInfo.decode; |
|
yzshen1
2017/04/11 06:23:11
Where are the definition of the decode/encode func
wangjimmy
2017/04/12 00:26:17
Done. Removed the Nullable encode/decode for Assoc
|
| + |
| + NullableAssociatedInterfacePtrInfo.encode = |
| + AssociatedInterfacePtrInfo.encode; |
| + |
| function InterfaceRequest() { |
| } |
| @@ -860,6 +893,23 @@ define("mojo/public/js/codec", [ |
| NullableInterfaceRequest.encode = InterfaceRequest.encode; |
| + function AssociatedInterfaceRequest() { |
| + } |
| + |
| + AssociatedInterfaceRequest.encodedSize = 4; |
| + |
| + function NullableAssociatedInterfaceRequest() { |
| + } |
| + |
| + NullableAssociatedInterfaceRequest.encodedSize = |
| + AssociatedInterfaceRequest.encodedSize; |
| + |
| + NullableAssociatedInterfaceRequest.decode = |
| + AssociatedInterfaceRequest.decode; |
| + |
| + NullableAssociatedInterfaceRequest.encode = |
| + AssociatedInterfaceRequest.encode; |
| + |
| function MapOf(keyClass, valueClass) { |
| this.keyClass = keyClass; |
| this.valueClass = valueClass; |
| @@ -894,6 +944,7 @@ define("mojo/public/js/codec", [ |
| exports.kEncodedInvalidHandleValue = kEncodedInvalidHandleValue; |
| exports.kMessageHeaderSize = kMessageHeaderSize; |
| exports.kMessageWithRequestIDHeaderSize = kMessageWithRequestIDHeaderSize; |
| + exports.kMessageV2HeaderSize = kMessageV2HeaderSize; |
| exports.kMessageExpectsResponse = kMessageExpectsResponse; |
| exports.kMessageIsResponse = kMessageIsResponse; |
| exports.Int8 = Int8; |
| @@ -920,6 +971,12 @@ define("mojo/public/js/codec", [ |
| exports.NullableInterface = NullableInterface; |
| exports.InterfaceRequest = InterfaceRequest; |
| exports.NullableInterfaceRequest = NullableInterfaceRequest; |
| + exports.AssociatedInterfacePtrInfo = AssociatedInterfacePtrInfo; |
| + exports.NullableAssociatedInterfacePtrInfo = |
| + NullableAssociatedInterfacePtrInfo; |
| + exports.AssociatedInterfaceRequest = AssociatedInterfaceRequest; |
| + exports.NullableAssociatedInterfaceRequest = |
| + NullableAssociatedInterfaceRequest; |
| exports.MapOf = MapOf; |
| exports.NullableMapOf = NullableMapOf; |
| return exports; |