| 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 (function() { | 5 (function() { |
| 6 var internal = mojo.internal; | 6 var internal = mojo.internal; |
| 7 | 7 |
| 8 var kErrorUnsigned = "Passing negative value to unsigned"; | 8 var kErrorUnsigned = "Passing negative value to unsigned"; |
| 9 var kErrorArray = "Passing non Array for array type"; | 9 var kErrorArray = "Passing non Array for array type"; |
| 10 var kErrorString = "Passing non String for string type"; | 10 var kErrorString = "Passing non String for string type"; |
| (...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 Message.prototype.expectsResponse = function() { | 457 Message.prototype.expectsResponse = function() { |
| 458 return (this.getFlags() & kMessageExpectsResponse) != 0; | 458 return (this.getFlags() & kMessageExpectsResponse) != 0; |
| 459 }; | 459 }; |
| 460 | 460 |
| 461 Message.prototype.setRequestID = function(requestID) { | 461 Message.prototype.setRequestID = function(requestID) { |
| 462 // TODO(darin): Verify that space was reserved for this field! | 462 // TODO(darin): Verify that space was reserved for this field! |
| 463 this.buffer.setUint64(kMessageRequestIDOffset, requestID); | 463 this.buffer.setUint64(kMessageRequestIDOffset, requestID); |
| 464 }; | 464 }; |
| 465 | 465 |
| 466 | 466 |
| 467 // MessageBuilder ----------------------------------------------------------- | 467 // MessageV0Builder --------------------------------------------------------- |
| 468 | 468 |
| 469 function MessageBuilder(messageName, payloadSize) { | 469 function MessageV0Builder(messageName, payloadSize) { |
| 470 // Currently, we don't compute the payload size correctly ahead of time. | 470 // Currently, we don't compute the payload size correctly ahead of time. |
| 471 // Instead, we resize the buffer at the end. | 471 // Instead, we resize the buffer at the end. |
| 472 var numberOfBytes = kMessageHeaderSize + payloadSize; | 472 var numberOfBytes = kMessageHeaderSize + payloadSize; |
| 473 this.buffer = new internal.Buffer(numberOfBytes); | 473 this.buffer = new internal.Buffer(numberOfBytes); |
| 474 this.handles = []; | 474 this.handles = []; |
| 475 var encoder = this.createEncoder(kMessageHeaderSize); | 475 var encoder = this.createEncoder(kMessageHeaderSize); |
| 476 encoder.writeUint32(kMessageHeaderSize); | 476 encoder.writeUint32(kMessageHeaderSize); |
| 477 encoder.writeUint32(0); // version. | 477 encoder.writeUint32(0); // version. |
| 478 encoder.writeUint32(0); // interface ID. | 478 encoder.writeUint32(0); // interface ID. |
| 479 encoder.writeUint32(messageName); | 479 encoder.writeUint32(messageName); |
| 480 encoder.writeUint32(0); // flags. | 480 encoder.writeUint32(0); // flags. |
| 481 encoder.writeUint32(0); // padding. | 481 encoder.writeUint32(0); // padding. |
| 482 } | 482 } |
| 483 | 483 |
| 484 MessageBuilder.prototype.createEncoder = function(size) { | 484 MessageV0Builder.prototype.createEncoder = function(size) { |
| 485 var pointer = this.buffer.alloc(size); | 485 var pointer = this.buffer.alloc(size); |
| 486 return new Encoder(this.buffer, this.handles, pointer); | 486 return new Encoder(this.buffer, this.handles, pointer); |
| 487 }; | 487 }; |
| 488 | 488 |
| 489 MessageBuilder.prototype.encodeStruct = function(cls, val) { | 489 MessageV0Builder.prototype.encodeStruct = function(cls, val) { |
| 490 cls.encode(this.createEncoder(cls.encodedSize), val); | 490 cls.encode(this.createEncoder(cls.encodedSize), val); |
| 491 }; | 491 }; |
| 492 | 492 |
| 493 MessageBuilder.prototype.finish = function() { | 493 MessageV0Builder.prototype.finish = function() { |
| 494 // TODO(abarth): Rather than resizing the buffer at the end, we could | 494 // TODO(abarth): Rather than resizing the buffer at the end, we could |
| 495 // compute the size we need ahead of time, like we do in C++. | 495 // compute the size we need ahead of time, like we do in C++. |
| 496 this.buffer.trim(); | 496 this.buffer.trim(); |
| 497 var message = new Message(this.buffer, this.handles); | 497 var message = new Message(this.buffer, this.handles); |
| 498 this.buffer = null; | 498 this.buffer = null; |
| 499 this.handles = null; | 499 this.handles = null; |
| 500 this.encoder = null; | 500 this.encoder = null; |
| 501 return message; | 501 return message; |
| 502 }; | 502 }; |
| 503 | 503 |
| 504 // MessageWithRequestIDBuilder ----------------------------------------------- | 504 // MessageV1Builder ----------------------------------------------- |
| 505 | 505 |
| 506 function MessageWithRequestIDBuilder(messageName, payloadSize, flags, | 506 function MessageV1Builder(messageName, payloadSize, flags, |
| 507 requestID) { | 507 requestID) { |
| 508 // Currently, we don't compute the payload size correctly ahead of time. | 508 // Currently, we don't compute the payload size correctly ahead of time. |
| 509 // Instead, we resize the buffer at the end. | 509 // Instead, we resize the buffer at the end. |
| 510 var numberOfBytes = kMessageWithRequestIDHeaderSize + payloadSize; | 510 var numberOfBytes = kMessageWithRequestIDHeaderSize + payloadSize; |
| 511 this.buffer = new internal.Buffer(numberOfBytes); | 511 this.buffer = new internal.Buffer(numberOfBytes); |
| 512 this.handles = []; | 512 this.handles = []; |
| 513 var encoder = this.createEncoder(kMessageWithRequestIDHeaderSize); | 513 var encoder = this.createEncoder(kMessageWithRequestIDHeaderSize); |
| 514 encoder.writeUint32(kMessageWithRequestIDHeaderSize); | 514 encoder.writeUint32(kMessageWithRequestIDHeaderSize); |
| 515 encoder.writeUint32(1); // version. | 515 encoder.writeUint32(1); // version. |
| 516 encoder.writeUint32(0); // interface ID. | 516 encoder.writeUint32(0); // interface ID. |
| 517 encoder.writeUint32(messageName); | 517 encoder.writeUint32(messageName); |
| 518 encoder.writeUint32(flags); | 518 encoder.writeUint32(flags); |
| 519 encoder.writeUint32(0); // padding. | 519 encoder.writeUint32(0); // padding. |
| 520 encoder.writeUint64(requestID); | 520 encoder.writeUint64(requestID); |
| 521 } | 521 } |
| 522 | 522 |
| 523 MessageWithRequestIDBuilder.prototype = | 523 MessageV1Builder.prototype = |
| 524 Object.create(MessageBuilder.prototype); | 524 Object.create(MessageV0Builder.prototype); |
| 525 | 525 |
| 526 MessageWithRequestIDBuilder.prototype.constructor = | 526 MessageV1Builder.prototype.constructor = |
| 527 MessageWithRequestIDBuilder; | 527 MessageV1Builder; |
| 528 | 528 |
| 529 // MessageReader ------------------------------------------------------------ | 529 // MessageReader ------------------------------------------------------------ |
| 530 | 530 |
| 531 function MessageReader(message) { | 531 function MessageReader(message) { |
| 532 this.decoder = new Decoder(message.buffer, message.handles, 0); | 532 this.decoder = new Decoder(message.buffer, message.handles, 0); |
| 533 var messageHeaderSize = this.decoder.readUint32(); | 533 var messageHeaderSize = this.decoder.readUint32(); |
| 534 this.payloadSize = message.buffer.byteLength - messageHeaderSize; | 534 this.payloadSize = message.buffer.byteLength - messageHeaderSize; |
| 535 var version = this.decoder.readUint32(); | 535 var version = this.decoder.readUint32(); |
| 536 var interface_id = this.decoder.readUint32(); | 536 var interface_id = this.decoder.readUint32(); |
| 537 if (interface_id != 0) { | 537 if (interface_id != 0) { |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 870 | 870 |
| 871 function NullableMapOf(keyClass, valueClass) { | 871 function NullableMapOf(keyClass, valueClass) { |
| 872 MapOf.call(this, keyClass, valueClass); | 872 MapOf.call(this, keyClass, valueClass); |
| 873 } | 873 } |
| 874 | 874 |
| 875 NullableMapOf.prototype = Object.create(MapOf.prototype); | 875 NullableMapOf.prototype = Object.create(MapOf.prototype); |
| 876 | 876 |
| 877 internal.align = align; | 877 internal.align = align; |
| 878 internal.isAligned = isAligned; | 878 internal.isAligned = isAligned; |
| 879 internal.Message = Message; | 879 internal.Message = Message; |
| 880 internal.MessageBuilder = MessageBuilder; | 880 internal.MessageV0Builder = MessageV0Builder; |
| 881 internal.MessageWithRequestIDBuilder = MessageWithRequestIDBuilder; | 881 internal.MessageV1Builder = MessageV1Builder; |
| 882 internal.MessageReader = MessageReader; | 882 internal.MessageReader = MessageReader; |
| 883 internal.kArrayHeaderSize = kArrayHeaderSize; | 883 internal.kArrayHeaderSize = kArrayHeaderSize; |
| 884 internal.kMapStructPayloadSize = kMapStructPayloadSize; | 884 internal.kMapStructPayloadSize = kMapStructPayloadSize; |
| 885 internal.kStructHeaderSize = kStructHeaderSize; | 885 internal.kStructHeaderSize = kStructHeaderSize; |
| 886 internal.kEncodedInvalidHandleValue = kEncodedInvalidHandleValue; | 886 internal.kEncodedInvalidHandleValue = kEncodedInvalidHandleValue; |
| 887 internal.kMessageHeaderSize = kMessageHeaderSize; | 887 internal.kMessageHeaderSize = kMessageHeaderSize; |
| 888 internal.kMessageWithRequestIDHeaderSize = kMessageWithRequestIDHeaderSize; | 888 internal.kMessageWithRequestIDHeaderSize = kMessageWithRequestIDHeaderSize; |
| 889 internal.kMessageExpectsResponse = kMessageExpectsResponse; | 889 internal.kMessageExpectsResponse = kMessageExpectsResponse; |
| 890 internal.kMessageIsResponse = kMessageIsResponse; | 890 internal.kMessageIsResponse = kMessageIsResponse; |
| 891 internal.Int8 = Int8; | 891 internal.Int8 = Int8; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 908 internal.PackedBool = PackedBool; | 908 internal.PackedBool = PackedBool; |
| 909 internal.Handle = Handle; | 909 internal.Handle = Handle; |
| 910 internal.NullableHandle = NullableHandle; | 910 internal.NullableHandle = NullableHandle; |
| 911 internal.Interface = Interface; | 911 internal.Interface = Interface; |
| 912 internal.NullableInterface = NullableInterface; | 912 internal.NullableInterface = NullableInterface; |
| 913 internal.InterfaceRequest = InterfaceRequest; | 913 internal.InterfaceRequest = InterfaceRequest; |
| 914 internal.NullableInterfaceRequest = NullableInterfaceRequest; | 914 internal.NullableInterfaceRequest = NullableInterfaceRequest; |
| 915 internal.MapOf = MapOf; | 915 internal.MapOf = MapOf; |
| 916 internal.NullableMapOf = NullableMapOf; | 916 internal.NullableMapOf = NullableMapOf; |
| 917 })(); | 917 })(); |
| OLD | NEW |