Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: mojo/public/js/new_bindings/codec.js

Issue 2820783002: Add associated interfaces & bindings. (Closed)
Patch Set: Change Router.prototype.accept. Add a TODO for endpoint client not attached. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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 })();
OLDNEW
« no previous file with comments | « mojo/public/js/lib/pipe_control_message_proxy.js ('k') | mojo/public/js/new_bindings/lib/control_message_handler.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698