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

Side by Side Diff: mojo/dart/packages/mojo_services/lib/http_server/http_response.mojom.dart

Issue 1449203002: Check in generated Dart bindings and add presubmit script (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 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 unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 library http_response_mojom;
6
7 import 'dart:async';
8
9 import 'package:mojo/bindings.dart' as bindings;
10 import 'package:mojo/core.dart' as core;
11
12
13
14 class HttpResponse extends bindings.Struct {
15 static const List<bindings.StructDataHeader> kVersions = const [
16 const bindings.StructDataHeader(40, 0)
17 ];
18 int statusCode = 200;
19 core.MojoDataPipeConsumer body = null;
20 int contentLength = 0;
21 String contentType = "text/html; charset=utf-8";
22 Map<String, String> customHeaders = null;
23
24 HttpResponse() : super(kVersions.last.size);
25
26 static HttpResponse deserialize(bindings.Message message) {
27 var decoder = new bindings.Decoder(message);
28 var result = decode(decoder);
29 if (decoder.excessHandles != null) {
30 decoder.excessHandles.forEach((h) => h.close());
31 }
32 return result;
33 }
34
35 static HttpResponse decode(bindings.Decoder decoder0) {
36 if (decoder0 == null) {
37 return null;
38 }
39 HttpResponse result = new HttpResponse();
40
41 var mainDataHeader = decoder0.decodeStructDataHeader();
42 if (mainDataHeader.version <= kVersions.last.version) {
43 // Scan in reverse order to optimize for more recent versions.
44 for (int i = kVersions.length - 1; i >= 0; --i) {
45 if (mainDataHeader.version >= kVersions[i].version) {
46 if (mainDataHeader.size == kVersions[i].size) {
47 // Found a match.
48 break;
49 }
50 throw new bindings.MojoCodecError(
51 'Header size doesn\'t correspond to known version size.');
52 }
53 }
54 } else if (mainDataHeader.size < kVersions.last.size) {
55 throw new bindings.MojoCodecError(
56 'Message newer than the last known version cannot be shorter than '
57 'required by the last known version.');
58 }
59 if (mainDataHeader.version >= 0) {
60
61 result.statusCode = decoder0.decodeUint32(8);
62 }
63 if (mainDataHeader.version >= 0) {
64
65 result.body = decoder0.decodeConsumerHandle(12, true);
66 }
67 if (mainDataHeader.version >= 0) {
68
69 result.contentLength = decoder0.decodeInt64(16);
70 }
71 if (mainDataHeader.version >= 0) {
72
73 result.contentType = decoder0.decodeString(24, false);
74 }
75 if (mainDataHeader.version >= 0) {
76
77 var decoder1 = decoder0.decodePointer(32, true);
78 if (decoder1 == null) {
79 result.customHeaders = null;
80 } else {
81 decoder1.decodeDataHeaderForMap();
82 List<String> keys0;
83 List<String> values0;
84 {
85
86 var decoder2 = decoder1.decodePointer(bindings.ArrayDataHeader.kHeader Size, false);
87 {
88 var si2 = decoder2.decodeDataHeaderForPointerArray(bindings.kUnspeci fiedArrayLength);
89 keys0 = new List<String>(si2.numElements);
90 for (int i2 = 0; i2 < si2.numElements; ++i2) {
91
92 keys0[i2] = decoder2.decodeString(bindings.ArrayDataHeader.kHeader Size + bindings.kPointerSize * i2, false);
93 }
94 }
95 }
96 {
97
98 var decoder2 = decoder1.decodePointer(bindings.ArrayDataHeader.kHeader Size + bindings.kPointerSize, false);
99 {
100 var si2 = decoder2.decodeDataHeaderForPointerArray(keys0.length);
101 values0 = new List<String>(si2.numElements);
102 for (int i2 = 0; i2 < si2.numElements; ++i2) {
103
104 values0[i2] = decoder2.decodeString(bindings.ArrayDataHeader.kHead erSize + bindings.kPointerSize * i2, false);
105 }
106 }
107 }
108 result.customHeaders = new Map<String, String>.fromIterables(
109 keys0, values0);
110 }
111 }
112 return result;
113 }
114
115 void encode(bindings.Encoder encoder) {
116 var encoder0 = encoder.getStructEncoderAtOffset(kVersions.last);
117
118 encoder0.encodeUint32(statusCode, 8);
119
120 encoder0.encodeConsumerHandle(body, 12, true);
121
122 encoder0.encodeInt64(contentLength, 16);
123
124 encoder0.encodeString(contentType, 24, false);
125
126 if (customHeaders == null) {
127 encoder0.encodeNullPointer(32, true);
128 } else {
129 var encoder1 = encoder0.encoderForMap(32);
130 int size0 = customHeaders.length;
131 var keys0 = customHeaders.keys.toList();
132 var values0 = customHeaders.values.toList();
133
134 {
135 var encoder2 = encoder1.encodePointerArray(keys0.length, bindings.ArrayD ataHeader.kHeaderSize, bindings.kUnspecifiedArrayLength);
136 for (int i1 = 0; i1 < keys0.length; ++i1) {
137
138 encoder2.encodeString(keys0[i1], bindings.ArrayDataHeader.kHeaderSize + bindings.kPointerSize * i1, false);
139 }
140 }
141
142 {
143 var encoder2 = encoder1.encodePointerArray(values0.length, bindings.Arra yDataHeader.kHeaderSize + bindings.kPointerSize, bindings.kUnspecifiedArrayLengt h);
144 for (int i1 = 0; i1 < values0.length; ++i1) {
145
146 encoder2.encodeString(values0[i1], bindings.ArrayDataHeader.kHeaderSiz e + bindings.kPointerSize * i1, false);
147 }
148 }
149 }
150 }
151
152 String toString() {
153 return "HttpResponse("
154 "statusCode: $statusCode" ", "
155 "body: $body" ", "
156 "contentLength: $contentLength" ", "
157 "contentType: $contentType" ", "
158 "customHeaders: $customHeaders" ")";
159 }
160
161 Map toJson() {
162 throw new bindings.MojoCodecError(
163 'Object containing handles cannot be encoded to JSON.');
164 }
165 }
166
167
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698