| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 define("mojo/public/js/bindings/codec", [ | 5 define("mojo/public/js/bindings/codec", [ |
| 6 "mojo/public/js/bindings/unicode" | 6 "mojo/public/js/bindings/unicode" |
| 7 ], function(unicode) { | 7 ], function(unicode) { |
| 8 | 8 |
| 9 var kErrorUnsigned = "Passing negative value to unsigned"; | 9 var kErrorUnsigned = "Passing negative value to unsigned"; |
| 10 | 10 |
| (...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 var encodedSize = kArrayHeaderSize + unicode.utf8Length(val); | 445 var encodedSize = kArrayHeaderSize + unicode.utf8Length(val); |
| 446 var encoder = this.createAndEncodeEncoder(encodedSize); | 446 var encoder = this.createAndEncodeEncoder(encodedSize); |
| 447 encoder.encodeString(val); | 447 encoder.encodeString(val); |
| 448 }; | 448 }; |
| 449 | 449 |
| 450 // Message ------------------------------------------------------------------ | 450 // Message ------------------------------------------------------------------ |
| 451 | 451 |
| 452 var kMessageExpectsResponse = 1 << 0; | 452 var kMessageExpectsResponse = 1 << 0; |
| 453 var kMessageIsResponse = 1 << 1; | 453 var kMessageIsResponse = 1 << 1; |
| 454 | 454 |
| 455 // Message header is a struct, begins with a struct header. |
| 456 var kNumBytesOffset = 0; |
| 457 var kNumFieldsOffset = 4; |
| 458 |
| 455 // Skip over num_bytes, num_fields, and message_name. | 459 // Skip over num_bytes, num_fields, and message_name. |
| 456 var kFlagsOffset = 4 + 4 + 4; | 460 var kFlagsOffset = 4 + 4 + 4; |
| 457 | 461 |
| 458 // Skip over num_bytes, num_fields, message_name, and flags. | 462 // Skip over num_bytes, num_fields, message_name, and flags. |
| 459 var kRequestIDOffset = 4 + 4 + 4 + 4; | 463 var kRequestIDOffset = 4 + 4 + 4 + 4; |
| 460 | 464 |
| 461 function Message(buffer, handles) { | 465 function Message(buffer, handles) { |
| 462 this.buffer = buffer; | 466 this.buffer = buffer; |
| 463 this.handles = handles; | 467 this.handles = handles; |
| 464 } | 468 } |
| 465 | 469 |
| 466 Message.prototype.setRequestID = function(requestID) { | 470 Message.prototype.setRequestID = function(requestID) { |
| 467 // TODO(darin): Verify that space was reserved for this field! | 471 // TODO(darin): Verify that space was reserved for this field! |
| 468 setUint64(this.buffer.dataView, kRequestIDOffset, requestID); | 472 setUint64(this.buffer.dataView, kRequestIDOffset, requestID); |
| 469 }; | 473 }; |
| 470 | 474 |
| 471 Message.prototype.getFlags = function() { | 475 Message.prototype.getHeaderNumBytes = function() { |
| 476 return this.buffer.dataView.getUint32(kNumBytesOffset, kHostIsLittleEndian); |
| 477 }; |
| 478 |
| 479 Message.prototype.getHeaderNumFields = function() { |
| 480 return this.buffer.dataView.getUint32(kNumFieldsOffset, |
| 481 kHostIsLittleEndian); |
| 482 }; |
| 483 |
| 484 Message.prototype.getHeaderFlags = function() { |
| 472 return this.buffer.dataView.getUint32(kFlagsOffset, kHostIsLittleEndian); | 485 return this.buffer.dataView.getUint32(kFlagsOffset, kHostIsLittleEndian); |
| 473 }; | 486 }; |
| 474 | 487 |
| 488 Message.prototype.byteLength = function() { |
| 489 return this.buffer.dataView.byteLength; |
| 490 } |
| 491 |
| 475 // MessageBuilder ----------------------------------------------------------- | 492 // MessageBuilder ----------------------------------------------------------- |
| 476 | 493 |
| 477 function MessageBuilder(messageName, payloadSize) { | 494 function MessageBuilder(messageName, payloadSize) { |
| 478 // Currently, we don't compute the payload size correctly ahead of time. | 495 // Currently, we don't compute the payload size correctly ahead of time. |
| 479 // Instead, we resize the buffer at the end. | 496 // Instead, we resize the buffer at the end. |
| 480 var numberOfBytes = kMessageHeaderSize + payloadSize; | 497 var numberOfBytes = kMessageHeaderSize + payloadSize; |
| 481 this.buffer = new Buffer(numberOfBytes); | 498 this.buffer = new Buffer(numberOfBytes); |
| 482 this.handles = []; | 499 this.handles = []; |
| 483 var encoder = this.createEncoder(kMessageHeaderSize); | 500 var encoder = this.createEncoder(kMessageHeaderSize); |
| 484 encoder.writeUint32(kMessageHeaderSize); | 501 encoder.writeUint32(kMessageHeaderSize); |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 765 var exports = {}; | 782 var exports = {}; |
| 766 exports.align = align; | 783 exports.align = align; |
| 767 exports.Buffer = Buffer; | 784 exports.Buffer = Buffer; |
| 768 exports.Message = Message; | 785 exports.Message = Message; |
| 769 exports.MessageBuilder = MessageBuilder; | 786 exports.MessageBuilder = MessageBuilder; |
| 770 exports.MessageWithRequestIDBuilder = MessageWithRequestIDBuilder; | 787 exports.MessageWithRequestIDBuilder = MessageWithRequestIDBuilder; |
| 771 exports.MessageReader = MessageReader; | 788 exports.MessageReader = MessageReader; |
| 772 exports.kArrayHeaderSize = kArrayHeaderSize; | 789 exports.kArrayHeaderSize = kArrayHeaderSize; |
| 773 exports.kStructHeaderSize = kStructHeaderSize; | 790 exports.kStructHeaderSize = kStructHeaderSize; |
| 774 exports.kMessageHeaderSize = kMessageHeaderSize; | 791 exports.kMessageHeaderSize = kMessageHeaderSize; |
| 792 exports.kMessageWithRequestIDHeaderSize = kMessageWithRequestIDHeaderSize; |
| 775 exports.kMessageExpectsResponse = kMessageExpectsResponse; | 793 exports.kMessageExpectsResponse = kMessageExpectsResponse; |
| 776 exports.kMessageIsResponse = kMessageIsResponse; | 794 exports.kMessageIsResponse = kMessageIsResponse; |
| 777 exports.Int8 = Int8; | 795 exports.Int8 = Int8; |
| 778 exports.Uint8 = Uint8; | 796 exports.Uint8 = Uint8; |
| 779 exports.Int16 = Int16; | 797 exports.Int16 = Int16; |
| 780 exports.Uint16 = Uint16; | 798 exports.Uint16 = Uint16; |
| 781 exports.Int32 = Int32; | 799 exports.Int32 = Int32; |
| 782 exports.Uint32 = Uint32; | 800 exports.Uint32 = Uint32; |
| 783 exports.Int64 = Int64; | 801 exports.Int64 = Int64; |
| 784 exports.Uint64 = Uint64; | 802 exports.Uint64 = Uint64; |
| 785 exports.Float = Float; | 803 exports.Float = Float; |
| 786 exports.Double = Double; | 804 exports.Double = Double; |
| 787 exports.String = String; | 805 exports.String = String; |
| 788 exports.PointerTo = PointerTo; | 806 exports.PointerTo = PointerTo; |
| 789 exports.ArrayOf = ArrayOf; | 807 exports.ArrayOf = ArrayOf; |
| 790 exports.ArrayOfBoolArrayPointers = ArrayOfBoolArrayPointers; | 808 exports.ArrayOfBoolArrayPointers = ArrayOfBoolArrayPointers; |
| 791 exports.Handle = Handle; | 809 exports.Handle = Handle; |
| 792 return exports; | 810 return exports; |
| 793 }); | 811 }); |
| OLD | NEW |