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

Unified Diff: mojo/public/bindings/js/test/sample_service.js

Issue 69843003: Implement Mojo message codec in JavaScript (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address Aaron's comments Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/public/bindings/js/test/run_js_tests.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/bindings/js/test/sample_service.js
diff --git a/mojo/public/bindings/js/test/sample_service.js b/mojo/public/bindings/js/test/sample_service.js
new file mode 100644
index 0000000000000000000000000000000000000000..1885f7a93249639bab98e826e412a5f612b439e1
--- /dev/null
+++ b/mojo/public/bindings/js/test/sample_service.js
@@ -0,0 +1,99 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// "Generated" code for sample_service.mojom
+define([
+ "mojo/public/bindings/js/codec",
+ ], function(codec) {
+
+ // Bar ----------------------------------------------------------------------
+
+ function Bar() {
+ this.alpha = 0;
+ this.beta = 0;
+ this.gamma = 0;
+ }
+
+ Bar.encodedSize = codec.kStructHeaderSize + 8;
+
+ Bar.decode = function(decoder) {
+ var val = new Bar();
+ var numberOfBytes = decoder.read32();
+ var numberOfFields = decoder.read32();
+ // TODO(abarth): We need to support optional fields.
+ val.alpha = decoder.read8();
+ val.beta = decoder.read8();
+ val.gamma = decoder.read8();
+ decoder.skip(5);
+ return val;
+ };
+
+ Bar.encode = function(encoder, val) {
+ encoder.write32(Bar.encodedSize);
+ encoder.write32(3);
+ encoder.write8(val.alpha);
+ encoder.write8(val.beta);
+ encoder.write8(val.gamma);
+ encoder.skip(5);
+ };
+
+ // Foo ----------------------------------------------------------------------
+
+ function Foo() {
+ this.x = 0;
+ this.y = 0;
+ this.a = 0;
+ this.b = 0;
+ this.c = 0;
+ this.bar = null;
+ this.data = [];
+ this.extra_bars = [];
+ this.name = "";
+ this.files = [];
+ }
+
+ Foo.encodedSize = codec.kStructHeaderSize + 64;
+
+ Foo.decode = function(decoder) {
+ var val = new Foo();
+ var numberOfBytes = decoder.read32();
+ var numberofFields = decoder.read32();
+ // TODO(abarth): We need to support optional fields.
+ val.x = decoder.read32();
+ val.y = decoder.read32();
+ var packed = decoder.read8();
+ val.a = (packed >> 0) & 1;
+ val.b = (packed >> 1) & 1;
+ val.c = (packed >> 2) & 1;
+ decoder.skip(7);
+ val.bar = decoder.decodeStructPointer(Bar);
+ val.data = decoder.decodeArrayPointer(codec.Uint8);
+ val.extra_bars = decoder.decodeArrayPointer(new codec.PointerTo(Bar));
+ val.name = decoder.decodeStringPointer();
+ val.files = decoder.decodeArrayPointer(codec.Handle);
+ return val;
+ }
+
+ Foo.encode = function(encoder, val) {
+ encoder.write32(Foo.encodedSize);
+ encoder.write32(10);
+ encoder.write32(val.x);
+ encoder.write32(val.y);
+ var packed = (val.a & 1) << 0 |
+ (val.b & 1) << 1 |
+ (val.c & 1) << 2;
+ encoder.write8(packed);
+ encoder.skip(7);
+ encoder.encodeStructPointer(Bar, val.bar);
+ encoder.encodeArrayPointer(codec.Uint8, val.data);
+ encoder.encodeArrayPointer(new codec.PointerTo(Bar), val.extra_bars);
+ encoder.encodeStringPointer(val.name);
+ encoder.encodeArrayPointer(codec.Handle, val.files);
+ };
+
+ var exports = {};
+ exports.Bar = Bar;
+ exports.Foo = Foo;
+ return exports;
+});
« no previous file with comments | « mojo/public/bindings/js/test/run_js_tests.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698