| Index: mojo/public/js/bindings/codec.js
|
| diff --git a/mojo/public/js/bindings/codec.js b/mojo/public/js/bindings/codec.js
|
| index dca6009071d01a724845d27d8f2dfa9b3f969bc5..45feef2bb1b0ad7fc86f382a9da0be58a21a4974 100644
|
| --- a/mojo/public/js/bindings/codec.js
|
| +++ b/mojo/public/js/bindings/codec.js
|
| @@ -17,6 +17,10 @@ define("mojo/public/js/bindings/codec", [
|
| return size + (kAlignment - (size % kAlignment)) % kAlignment;
|
| }
|
|
|
| + function isAligned(offset) {
|
| + return offset >= 0 && (offset % kAlignment) == 0;
|
| + }
|
| +
|
| // Constants ----------------------------------------------------------------
|
|
|
| var kArrayHeaderSize = 8;
|
| @@ -355,6 +359,10 @@ define("mojo/public/js/bindings/codec", [
|
| var kMessageExpectsResponse = 1 << 0;
|
| var kMessageIsResponse = 1 << 1;
|
|
|
| + // Message header is a struct, begins with a struct header.
|
| + var kNumBytesOffset = 0;
|
| + var kNumFieldsOffset = 4;
|
| +
|
| // Skip over num_bytes, num_fields, and message_name.
|
| var kFlagsOffset = 4 + 4 + 4;
|
|
|
| @@ -366,15 +374,32 @@ define("mojo/public/js/bindings/codec", [
|
| this.handles = handles;
|
| }
|
|
|
| - Message.prototype.setRequestID = function(requestID) {
|
| - // TODO(darin): Verify that space was reserved for this field!
|
| - this.buffer.setUint64(kRequestIDOffset, requestID);
|
| + Message.prototype.getHeaderNumBytes = function() {
|
| + return this.buffer.getUint32(kNumBytesOffset);
|
| + };
|
| +
|
| + Message.prototype.getHeaderNumFields = function() {
|
| + return this.buffer.getUint32(kNumFieldsOffset);
|
| };
|
|
|
| Message.prototype.getFlags = function() {
|
| return this.buffer.getUint32(kFlagsOffset);
|
| };
|
|
|
| + Message.prototype.isResponse = function() {
|
| + return (this.getFlags() & kMessageIsResponse) != 0;
|
| + };
|
| +
|
| + Message.prototype.expectsResponse = function() {
|
| + return (this.getFlags() & kMessageExpectsResponse) != 0;
|
| + };
|
| +
|
| + Message.prototype.setRequestID = function(requestID) {
|
| + // TODO(darin): Verify that space was reserved for this field!
|
| + this.buffer.setUint64(kRequestIDOffset, requestID);
|
| + };
|
| +
|
| +
|
| // MessageBuilder -----------------------------------------------------------
|
|
|
| function MessageBuilder(messageName, payloadSize) {
|
| @@ -666,6 +691,7 @@ define("mojo/public/js/bindings/codec", [
|
|
|
| var exports = {};
|
| exports.align = align;
|
| + exports.isAligned = isAligned;
|
| exports.Message = Message;
|
| exports.MessageBuilder = MessageBuilder;
|
| exports.MessageWithRequestIDBuilder = MessageWithRequestIDBuilder;
|
| @@ -673,6 +699,7 @@ define("mojo/public/js/bindings/codec", [
|
| exports.kArrayHeaderSize = kArrayHeaderSize;
|
| exports.kStructHeaderSize = kStructHeaderSize;
|
| exports.kMessageHeaderSize = kMessageHeaderSize;
|
| + exports.kMessageWithRequestIDHeaderSize = kMessageWithRequestIDHeaderSize;
|
| exports.kMessageExpectsResponse = kMessageExpectsResponse;
|
| exports.kMessageIsResponse = kMessageIsResponse;
|
| exports.Int8 = Int8;
|
|
|