OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * A random-access sequence of bytes that also provides random access to | 6 * A random-access sequence of bytes that also provides random access to |
7 * the fixed-width integers and floating point numbers represented by | 7 * the fixed-width integers and floating point numbers represented by |
8 * those bytes. Byte arrays may be used to pack and unpack data from | 8 * those bytes. Byte arrays may be used to pack and unpack data from |
9 * external sources (such as networks or files systems), and to process | 9 * external sources (such as networks or files systems), and to process |
10 * large quantities of numerical data more efficiently than would be possible | 10 * large quantities of numerical data more efficiently than would be possible |
(...skipping 18 matching lines...) Expand all Loading... |
29 * Returns a [ByteArray] _view_ of a portion of this byte array. | 29 * Returns a [ByteArray] _view_ of a portion of this byte array. |
30 * The returned byte array consists of [length] bytes starting | 30 * The returned byte array consists of [length] bytes starting |
31 * at position [start] in this byte array. The returned byte array | 31 * at position [start] in this byte array. The returned byte array |
32 * is backed by the same data as this byte array. In other words, | 32 * is backed by the same data as this byte array. In other words, |
33 * changes to the returned byte array are visible in this byte array | 33 * changes to the returned byte array are visible in this byte array |
34 * and vice-versa. | 34 * and vice-versa. |
35 * | 35 * |
36 * Throws [IndexOutOfRangeException] if [start] is negative, or if | 36 * Throws [IndexOutOfRangeException] if [start] is negative, or if |
37 * `start + length` is greater than the length of this byte array. | 37 * `start + length` is greater than the length of this byte array. |
38 * | 38 * |
39 * Throws [IllegalArgumentException] if [length] is negative. | 39 * Throws [ArgumentError] if [length] is negative. |
40 */ | 40 */ |
41 ByteArray subByteArray([int start, int length]); | 41 ByteArray subByteArray([int start, int length]); |
42 | 42 |
43 /** | 43 /** |
44 * Returns the (possibly negative) integer represented by the byte at the | 44 * Returns the (possibly negative) integer represented by the byte at the |
45 * specified [byteOffset] in this byte array, in two's complement binary | 45 * specified [byteOffset] in this byte array, in two's complement binary |
46 * representation. The return value will be between -128 and 127, inclusive. | 46 * representation. The return value will be between -128 and 127, inclusive. |
47 * | 47 * |
48 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 48 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
49 * greater than or equal to the length of this byte array. | 49 * greater than or equal to the length of this byte array. |
50 */ | 50 */ |
51 int getInt8(int byteOffset); | 51 int getInt8(int byteOffset); |
52 | 52 |
53 /** | 53 /** |
54 * Sets the byte at the specified [byteOffset] in this byte array to the | 54 * Sets the byte at the specified [byteOffset] in this byte array to the |
55 * two's complement binary representation of the specified [value], which | 55 * two's complement binary representation of the specified [value], which |
56 * must fit in a single byte. In other words, [value] must be between | 56 * must fit in a single byte. In other words, [value] must be between |
57 * -128 and 127, inclusive. | 57 * -128 and 127, inclusive. |
58 * | 58 * |
59 * Returns `byteOffset + 1`, which is the offset of the first byte in the | 59 * Returns `byteOffset + 1`, which is the offset of the first byte in the |
60 * array after the byte that was set by this call. This return value can | 60 * array after the byte that was set by this call. This return value can |
61 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. | 61 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. |
62 * | 62 * |
63 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 63 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
64 * greater than or equal to the length of this byte array. | 64 * greater than or equal to the length of this byte array. |
65 * | 65 * |
66 * Throws [IllegalArgumentException] if [value] is less than -128 or | 66 * Throws [ArgumentError] if [value] is less than -128 or |
67 * greater than 127. | 67 * greater than 127. |
68 */ | 68 */ |
69 int setInt8(int byteOffset, int value); | 69 int setInt8(int byteOffset, int value); |
70 | 70 |
71 /** | 71 /** |
72 * Returns the positive integer represented by the byte at the specified | 72 * Returns the positive integer represented by the byte at the specified |
73 * [byteOffset] in this byte array, in unsigned binary form. The | 73 * [byteOffset] in this byte array, in unsigned binary form. The |
74 * return value will be between 0 and 255, inclusive. | 74 * return value will be between 0 and 255, inclusive. |
75 * | 75 * |
76 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 76 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
77 * greater than or equal to the length of this byte array. | 77 * greater than or equal to the length of this byte array. |
78 */ | 78 */ |
79 int getUint8(int byteOffset); | 79 int getUint8(int byteOffset); |
80 | 80 |
81 /** | 81 /** |
82 * Sets the byte at the specified [byteOffset] in this byte array to the | 82 * Sets the byte at the specified [byteOffset] in this byte array to the |
83 * unsigned binary representation of the specified [value], which must fit | 83 * unsigned binary representation of the specified [value], which must fit |
84 * in a single byte. in other words, [value] must be between 0 and 255, | 84 * in a single byte. in other words, [value] must be between 0 and 255, |
85 * inclusive. | 85 * inclusive. |
86 * | 86 * |
87 * Returns `byteOffset + 1`, which is the offset of the first byte in the | 87 * Returns `byteOffset + 1`, which is the offset of the first byte in the |
88 * array after the byte that was set by this call. This return value can | 88 * array after the byte that was set by this call. This return value can |
89 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. | 89 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. |
90 * | 90 * |
91 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, | 91 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, |
92 * or greater than or equal to the length of this byte array. | 92 * or greater than or equal to the length of this byte array. |
93 * | 93 * |
94 * Throws [IllegalArgumentException] if [value] is negative or | 94 * Throws [ArgumentError] if [value] is negative or |
95 * greater than 255. | 95 * greater than 255. |
96 */ | 96 */ |
97 int setUint8(int byteOffset, int value); | 97 int setUint8(int byteOffset, int value); |
98 | 98 |
99 /** | 99 /** |
100 * Returns the (possibly negative) integer represented by the two bytes at | 100 * Returns the (possibly negative) integer represented by the two bytes at |
101 * the specified [byteOffset] in this byte array, in two's complement binary | 101 * the specified [byteOffset] in this byte array, in two's complement binary |
102 * form. The return value will be between 2<sup>15</sup> and 2<sup>15 - 1, | 102 * form. The return value will be between 2<sup>15</sup> and 2<sup>15 - 1, |
103 * inclusive. | 103 * inclusive. |
104 * | 104 * |
105 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 105 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
106 * `byteOffset + 2` is greater than the length of this byte array. | 106 * `byteOffset + 2` is greater than the length of this byte array. |
107 */ | 107 */ |
108 int getInt16(int byteOffset); | 108 int getInt16(int byteOffset); |
109 | 109 |
110 /** | 110 /** |
111 * Sets the two bytes starting at the specified [byteOffset] in this | 111 * Sets the two bytes starting at the specified [byteOffset] in this |
112 * byte array to the two's complement binary representation of the specified | 112 * byte array to the two's complement binary representation of the specified |
113 * [value], which must fit in two bytes. In other words, [value] must lie | 113 * [value], which must fit in two bytes. In other words, [value] must lie |
114 * between 2<sup>15</sup> and 2<sup>15 - 1, inclusive. | 114 * between 2<sup>15</sup> and 2<sup>15 - 1, inclusive. |
115 * | 115 * |
116 * Returns `byteOffset + 2`, which is the offset of the first byte in the | 116 * Returns `byteOffset + 2`, which is the offset of the first byte in the |
117 * array after the last byte that was set by this call. This return value can | 117 * array after the last byte that was set by this call. This return value can |
118 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. | 118 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. |
119 * | 119 * |
120 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 120 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
121 * `byteOffset + 2` is greater than the length of this byte array. | 121 * `byteOffset + 2` is greater than the length of this byte array. |
122 * | 122 * |
123 * Throws [IllegalArgumentException] if [value] is less than 2<sup>15</sup> | 123 * Throws [ArgumentError] if [value] is less than 2<sup>15</sup> |
124 * or greater than 2<sup>15 - 1. | 124 * or greater than 2<sup>15 - 1. |
125 */ | 125 */ |
126 int setInt16(int byteOffset, int value); | 126 int setInt16(int byteOffset, int value); |
127 | 127 |
128 /** | 128 /** |
129 * Returns the positive integer represented by the two bytes starting | 129 * Returns the positive integer represented by the two bytes starting |
130 * at the specified [byteOffset] in this byte array, in unsigned binary | 130 * at the specified [byteOffset] in this byte array, in unsigned binary |
131 * form. The return value will be between 0 and 2<sup>16 - 1, inclusive. | 131 * form. The return value will be between 0 and 2<sup>16 - 1, inclusive. |
132 * | 132 * |
133 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 133 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
134 * `byteOffset + 2` is greater than the length of this byte array. | 134 * `byteOffset + 2` is greater than the length of this byte array. |
135 */ | 135 */ |
136 int getUint16(int byteOffset); | 136 int getUint16(int byteOffset); |
137 | 137 |
138 /** | 138 /** |
139 * Sets the two bytes starting at the specified [byteOffset] in this byte | 139 * Sets the two bytes starting at the specified [byteOffset] in this byte |
140 * array to the unsigned binary representation of the specified [value], | 140 * array to the unsigned binary representation of the specified [value], |
141 * which must fit in two bytes. in other words, [value] must be between | 141 * which must fit in two bytes. in other words, [value] must be between |
142 * 0 and 2<sup>16 - 1, inclusive. | 142 * 0 and 2<sup>16 - 1, inclusive. |
143 * | 143 * |
144 * Returns `byteOffset + 2`, which is the offset of the first byte in the | 144 * Returns `byteOffset + 2`, which is the offset of the first byte in the |
145 * array after the last byte that was set by this call. This return value can | 145 * array after the last byte that was set by this call. This return value can |
146 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. | 146 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. |
147 * | 147 * |
148 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 148 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
149 * `byteOffset + 2` is greater than the length of this byte array. | 149 * `byteOffset + 2` is greater than the length of this byte array. |
150 * | 150 * |
151 * Throws [IllegalArgumentException] if [value] is negative or | 151 * Throws [ArgumentError] if [value] is negative or |
152 * greater than 2<sup>16 - 1. | 152 * greater than 2<sup>16 - 1. |
153 */ | 153 */ |
154 int setUint16(int byteOffset, int value); | 154 int setUint16(int byteOffset, int value); |
155 | 155 |
156 /** | 156 /** |
157 * Returns the (possibly negative) integer represented by the four bytes at | 157 * Returns the (possibly negative) integer represented by the four bytes at |
158 * the specified [byteOffset] in this byte array, in two's complement binary | 158 * the specified [byteOffset] in this byte array, in two's complement binary |
159 * form. The return value will be between 2<sup>31</sup> and 2<sup>31 - 1, | 159 * form. The return value will be between 2<sup>31</sup> and 2<sup>31 - 1, |
160 * inclusive. | 160 * inclusive. |
161 * | 161 * |
162 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 162 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
163 * `byteOffset + 4` is greater than the length of this byte array. | 163 * `byteOffset + 4` is greater than the length of this byte array. |
164 */ | 164 */ |
165 int getInt32(int byteOffset); | 165 int getInt32(int byteOffset); |
166 | 166 |
167 /** | 167 /** |
168 * Sets the four bytes starting at the specified [byteOffset] in this | 168 * Sets the four bytes starting at the specified [byteOffset] in this |
169 * byte array to the two's complement binary representation of the specified | 169 * byte array to the two's complement binary representation of the specified |
170 * [value], which must fit in four bytes. In other words, [value] must lie | 170 * [value], which must fit in four bytes. In other words, [value] must lie |
171 * between 2<sup>31</sup> and 2<sup>31 - 1, inclusive. | 171 * between 2<sup>31</sup> and 2<sup>31 - 1, inclusive. |
172 * | 172 * |
173 * Returns `byteOffset + 4`, which is the offset of the first byte in the | 173 * Returns `byteOffset + 4`, which is the offset of the first byte in the |
174 * array after the last byte that was set by this call. This return value can | 174 * array after the last byte that was set by this call. This return value can |
175 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. | 175 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. |
176 * | 176 * |
177 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 177 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
178 * `byteOffset + 4` is greater than the length of this byte array. | 178 * `byteOffset + 4` is greater than the length of this byte array. |
179 * | 179 * |
180 * Throws [IllegalArgumentException] if [value] is less than 2<sup>31</sup> | 180 * Throws [ArgumentError] if [value] is less than 2<sup>31</sup> |
181 * or greater than 2<sup>31 - 1. | 181 * or greater than 2<sup>31 - 1. |
182 */ | 182 */ |
183 int setInt32(int byteOffset, int value); | 183 int setInt32(int byteOffset, int value); |
184 | 184 |
185 /** | 185 /** |
186 * Returns the positive integer represented by the four bytes starting | 186 * Returns the positive integer represented by the four bytes starting |
187 * at the specified [byteOffset] in this byte array, in unsigned binary | 187 * at the specified [byteOffset] in this byte array, in unsigned binary |
188 * form. The return value will be between 0 and 2<sup>32 - 1, inclusive. | 188 * form. The return value will be between 0 and 2<sup>32 - 1, inclusive. |
189 * | 189 * |
190 */ | 190 */ |
191 int getUint32(int byteOffset); | 191 int getUint32(int byteOffset); |
192 | 192 |
193 /** | 193 /** |
194 * Sets the four bytes starting at the specified [byteOffset] in this byte | 194 * Sets the four bytes starting at the specified [byteOffset] in this byte |
195 * array to the unsigned binary representation of the specified [value], | 195 * array to the unsigned binary representation of the specified [value], |
196 * which must fit in four bytes. in other words, [value] must be between | 196 * which must fit in four bytes. in other words, [value] must be between |
197 * 0 and 2<sup>32 - 1, inclusive. | 197 * 0 and 2<sup>32 - 1, inclusive. |
198 * | 198 * |
199 * Returns `byteOffset + 4`, which is the offset of the first byte in the | 199 * Returns `byteOffset + 4`, which is the offset of the first byte in the |
200 * array after the last byte that was set by this call. This return value can | 200 * array after the last byte that was set by this call. This return value can |
201 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. | 201 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. |
202 * | 202 * |
203 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 203 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
204 * `byteOffset + 4` is greater than the length of this byte array. | 204 * `byteOffset + 4` is greater than the length of this byte array. |
205 * | 205 * |
206 * Throws [IllegalArgumentException] if [value] is negative or | 206 * Throws [ArgumentError] if [value] is negative or |
207 * greater than 2<sup>32 - 1. | 207 * greater than 2<sup>32 - 1. |
208 */ | 208 */ |
209 int setUint32(int byteOffset, int value); | 209 int setUint32(int byteOffset, int value); |
210 | 210 |
211 /** | 211 /** |
212 * Returns the (possibly negative) integer represented by the eight bytes at | 212 * Returns the (possibly negative) integer represented by the eight bytes at |
213 * the specified [byteOffset] in this byte array, in two's complement binary | 213 * the specified [byteOffset] in this byte array, in two's complement binary |
214 * form. The return value will be between 2<sup>63</sup> and 2<sup>63 - 1, | 214 * form. The return value will be between 2<sup>63</sup> and 2<sup>63 - 1, |
215 * inclusive. | 215 * inclusive. |
216 * | 216 * |
217 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 217 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
218 * `byteOffset + 8` is greater than the length of this byte array. | 218 * `byteOffset + 8` is greater than the length of this byte array. |
219 */ | 219 */ |
220 int getInt64(int byteOffset); | 220 int getInt64(int byteOffset); |
221 | 221 |
222 /** | 222 /** |
223 * Sets the eight bytes starting at the specified [byteOffset] in this | 223 * Sets the eight bytes starting at the specified [byteOffset] in this |
224 * byte array to the two's complement binary representation of the specified | 224 * byte array to the two's complement binary representation of the specified |
225 * [value], which must fit in eight bytes. In other words, [value] must lie | 225 * [value], which must fit in eight bytes. In other words, [value] must lie |
226 * between 2<sup>63</sup> and 2<sup>63 - 1, inclusive. | 226 * between 2<sup>63</sup> and 2<sup>63 - 1, inclusive. |
227 * | 227 * |
228 * Returns `byteOffset + 8`, which is the offset of the first byte in the | 228 * Returns `byteOffset + 8`, which is the offset of the first byte in the |
229 * array after the last byte that was set by this call. This return value can | 229 * array after the last byte that was set by this call. This return value can |
230 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. | 230 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. |
231 * | 231 * |
232 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 232 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
233 * `byteOffset + 8` is greater than the length of this byte array. | 233 * `byteOffset + 8` is greater than the length of this byte array. |
234 * | 234 * |
235 * Throws [IllegalArgumentException] if [value] is less than 2<sup>63</sup> | 235 * Throws [ArgumentError] if [value] is less than 2<sup>63</sup> |
236 * or greater than 2<sup>63 - 1. | 236 * or greater than 2<sup>63 - 1. |
237 */ | 237 */ |
238 int setInt64(int byteOffset, int value); | 238 int setInt64(int byteOffset, int value); |
239 | 239 |
240 /** | 240 /** |
241 * Returns the positive integer represented by the eight bytes starting | 241 * Returns the positive integer represented by the eight bytes starting |
242 * at the specified [byteOffset] in this byte array, in unsigned binary | 242 * at the specified [byteOffset] in this byte array, in unsigned binary |
243 * form. The return value will be between 0 and 2<sup>64 - 1, inclusive. | 243 * form. The return value will be between 0 and 2<sup>64 - 1, inclusive. |
244 * | 244 * |
245 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 245 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
246 * `byteOffset + 8` is greater than the length of this byte array. | 246 * `byteOffset + 8` is greater than the length of this byte array. |
247 */ | 247 */ |
248 int getUint64(int byteOffset); | 248 int getUint64(int byteOffset); |
249 | 249 |
250 /** | 250 /** |
251 * Sets the eight bytes starting at the specified [byteOffset] in this byte | 251 * Sets the eight bytes starting at the specified [byteOffset] in this byte |
252 * array to the unsigned binary representation of the specified [value], | 252 * array to the unsigned binary representation of the specified [value], |
253 * which must fit in eight bytes. in other words, [value] must be between | 253 * which must fit in eight bytes. in other words, [value] must be between |
254 * 0 and 2<sup>64 - 1, inclusive. | 254 * 0 and 2<sup>64 - 1, inclusive. |
255 * | 255 * |
256 * Returns `byteOffset + 8`, which is the offset of the first byte in the | 256 * Returns `byteOffset + 8`, which is the offset of the first byte in the |
257 * array after the last byte that was set by this call. This return value can | 257 * array after the last byte that was set by this call. This return value can |
258 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. | 258 * be passed as the [byteOffset] parameter to a subsequent `setXxx` call. |
259 * | 259 * |
260 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 260 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
261 * `byteOffset + 8` is greater than the length of this byte array. | 261 * `byteOffset + 8` is greater than the length of this byte array. |
262 * | 262 * |
263 * Throws [IllegalArgumentException] if [value] is negative or | 263 * Throws [ArgumentError] if [value] is negative or |
264 * greater than 2<sup>64 - 1. | 264 * greater than 2<sup>64 - 1. |
265 */ | 265 */ |
266 int setUint64(int byteOffset, int value); | 266 int setUint64(int byteOffset, int value); |
267 | 267 |
268 /** | 268 /** |
269 * Returns the floating point number represented by the four bytes at | 269 * Returns the floating point number represented by the four bytes at |
270 * the specified [byteOffset] in this byte array, in IEEE 754 | 270 * the specified [byteOffset] in this byte array, in IEEE 754 |
271 * single-precision binary floating-point format (binary32). | 271 * single-precision binary floating-point format (binary32). |
272 * | 272 * |
273 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or | 273 * Throws [IndexOutOfRangeException] if [byteOffset] is negative, or |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 external Int16List(int length); | 409 external Int16List(int length); |
410 | 410 |
411 /** | 411 /** |
412 * Creates an [Int16List] _view_ of the specified region in the specified | 412 * Creates an [Int16List] _view_ of the specified region in the specified |
413 * byte [array]. Changes in the [Int16List] will be visible in the byte | 413 * byte [array]. Changes in the [Int16List] will be visible in the byte |
414 * array and vice versa. If the [start] index of the region is not specified, | 414 * array and vice versa. If the [start] index of the region is not specified, |
415 * it defaults to zero (the first byte in the byte array). If the length is | 415 * it defaults to zero (the first byte in the byte array). If the length is |
416 * not specified, it defaults to null, which indicates that the view extends | 416 * not specified, it defaults to null, which indicates that the view extends |
417 * to the end of the byte array. | 417 * to the end of the byte array. |
418 * | 418 * |
419 * Throws [IllegalArgumentException] if the length of the specified region | 419 * Throws [ArgumentError] if the length of the specified region |
420 * is not divisible by 2 (the size of an "int16" in bytes), or if the | 420 * is not divisible by 2 (the size of an "int16" in bytes), or if the |
421 * [start] of the region is not divisible by 2. If, however, [array] | 421 * [start] of the region is not divisible by 2. If, however, [array] |
422 * is a view of another byte array, this constructor will throw | 422 * is a view of another byte array, this constructor will throw |
423 * [IllegalArgumentException] if the implicit starting position in the | 423 * [ArgumentError] if the implicit starting position in the |
424 * "ultimately backing" byte array is not divisible by 2. In plain terms, | 424 * "ultimately backing" byte array is not divisible by 2. In plain terms, |
425 * this constructor throws [IllegalArgumentException] if the specified | 425 * this constructor throws [ArgumentError] if the specified |
426 * region does not contain an integral number of "int16s," or if it | 426 * region does not contain an integral number of "int16s," or if it |
427 * is not "int16-aligned." | 427 * is not "int16-aligned." |
428 */ | 428 */ |
429 external Int16List.view(ByteArray array, [int start, int length]); | 429 external Int16List.view(ByteArray array, [int start, int length]); |
430 } | 430 } |
431 | 431 |
432 | 432 |
433 /** | 433 /** |
434 * A fixed-length list of 16-bit unsigned integers that is viewable as a | 434 * A fixed-length list of 16-bit unsigned integers that is viewable as a |
435 * [ByteArray]. For long lists, this implementation will be considerably | 435 * [ByteArray]. For long lists, this implementation will be considerably |
436 * more space- and time-efficient than the default [List] implementation. | 436 * more space- and time-efficient than the default [List] implementation. |
437 */ | 437 */ |
438 class Uint16List implements List<int>, ByteArrayViewable { | 438 class Uint16List implements List<int>, ByteArrayViewable { |
439 /** | 439 /** |
440 * Creates a [Uint16List] of the specified length (in elements), all | 440 * Creates a [Uint16List] of the specified length (in elements), all |
441 * of whose elements are initially zero. | 441 * of whose elements are initially zero. |
442 */ | 442 */ |
443 external Uint16List(int length); | 443 external Uint16List(int length); |
444 | 444 |
445 /** | 445 /** |
446 * Creates a [Uint16List] _view_ of the specified region in | 446 * Creates a [Uint16List] _view_ of the specified region in |
447 * the specified byte [array]. Changes in the [Uint16List] will be | 447 * the specified byte [array]. Changes in the [Uint16List] will be |
448 * visible in the byte array and vice versa. If the [start] index of the | 448 * visible in the byte array and vice versa. If the [start] index of the |
449 * region is not specified, it defaults to zero (the first byte in the byte | 449 * region is not specified, it defaults to zero (the first byte in the byte |
450 * array). If the length is not specified, it defaults to null, which | 450 * array). If the length is not specified, it defaults to null, which |
451 * indicates that the view extends to the end of the byte array. | 451 * indicates that the view extends to the end of the byte array. |
452 * | 452 * |
453 * Throws [IllegalArgumentException] if the length of the specified region | 453 * Throws [ArgumentError] if the length of the specified region |
454 * is not divisible by 2 (the size of a "uint16" in bytes), or if the | 454 * is not divisible by 2 (the size of a "uint16" in bytes), or if the |
455 * [start] of the region is not divisible by 2. If, however, [array] | 455 * [start] of the region is not divisible by 2. If, however, [array] |
456 * is a view of another byte array, this constructor will throw | 456 * is a view of another byte array, this constructor will throw |
457 * [IllegalArgumentException] if the implicit starting position in the | 457 * [ArgumentError] if the implicit starting position in the |
458 * "ultimately backing" byte array is not divisible by 2. In plain terms, | 458 * "ultimately backing" byte array is not divisible by 2. In plain terms, |
459 * this constructor throws [IllegalArgumentException] if the specified | 459 * this constructor throws [ArgumentError] if the specified |
460 * region does not contain an integral number of "uint16s," or if it | 460 * region does not contain an integral number of "uint16s," or if it |
461 * is not "uint16-aligned." | 461 * is not "uint16-aligned." |
462 */ | 462 */ |
463 external Uint16List.view(ByteArray array, [int start, int length]); | 463 external Uint16List.view(ByteArray array, [int start, int length]); |
464 } | 464 } |
465 | 465 |
466 | 466 |
467 /** | 467 /** |
468 * A fixed-length list of 32-bit signed integers that is viewable as a | 468 * A fixed-length list of 32-bit signed integers that is viewable as a |
469 * [ByteArray]. For long lists, this implementation will be considerably | 469 * [ByteArray]. For long lists, this implementation will be considerably |
470 * more space- and time-efficient than the default [List] implementation. | 470 * more space- and time-efficient than the default [List] implementation. |
471 */ | 471 */ |
472 class Int32List implements List<int>, ByteArrayViewable { | 472 class Int32List implements List<int>, ByteArrayViewable { |
473 /** | 473 /** |
474 * Creates an [Int32List] of the specified length (in elements), all of | 474 * Creates an [Int32List] of the specified length (in elements), all of |
475 * whose elements are initially zero. | 475 * whose elements are initially zero. |
476 */ | 476 */ |
477 external Int32List(int length); | 477 external Int32List(int length); |
478 | 478 |
479 /** | 479 /** |
480 * Creates an [Int32List] _view_ of the specified region in the specified | 480 * Creates an [Int32List] _view_ of the specified region in the specified |
481 * byte [array]. Changes in the [Int32List] will be visible in the byte | 481 * byte [array]. Changes in the [Int32List] will be visible in the byte |
482 * array and vice versa. If the [start] index of the region is not specified, | 482 * array and vice versa. If the [start] index of the region is not specified, |
483 * it defaults to zero (the first byte in the byte array). If the length is | 483 * it defaults to zero (the first byte in the byte array). If the length is |
484 * not specified, it defaults to null, which indicates that the view extends | 484 * not specified, it defaults to null, which indicates that the view extends |
485 * to the end of the byte array. | 485 * to the end of the byte array. |
486 * | 486 * |
487 * Throws [IllegalArgumentException] if the length of the specified region | 487 * Throws [ArgumentError] if the length of the specified region |
488 * is not divisible by 4 (the size of an "int32" in bytes), or if the | 488 * is not divisible by 4 (the size of an "int32" in bytes), or if the |
489 * [start] of the region is not divisible by 4. If, however, [array] | 489 * [start] of the region is not divisible by 4. If, however, [array] |
490 * is a view of another byte array, this constructor will throw | 490 * is a view of another byte array, this constructor will throw |
491 * [IllegalArgumentException] if the implicit starting position in the | 491 * [ArgumentError] if the implicit starting position in the |
492 * "ultimately backing" byte array is not divisible by 4. In plain terms, | 492 * "ultimately backing" byte array is not divisible by 4. In plain terms, |
493 * this constructor throws [IllegalArgumentException] if the specified | 493 * this constructor throws [ArgumentError] if the specified |
494 * region does not contain an integral number of "int32s," or if it | 494 * region does not contain an integral number of "int32s," or if it |
495 * is not "int32-aligned." | 495 * is not "int32-aligned." |
496 */ | 496 */ |
497 external Int32List.view(ByteArray array, [int start, int length]); | 497 external Int32List.view(ByteArray array, [int start, int length]); |
498 } | 498 } |
499 | 499 |
500 | 500 |
501 /** | 501 /** |
502 * A fixed-length list of 32-bit unsigned integers that is viewable as a | 502 * A fixed-length list of 32-bit unsigned integers that is viewable as a |
503 * [ByteArray]. For long lists, this implementation will be considerably | 503 * [ByteArray]. For long lists, this implementation will be considerably |
504 * more space- and time-efficient than the default [List] implementation. | 504 * more space- and time-efficient than the default [List] implementation. |
505 */ | 505 */ |
506 class Uint32List implements List<int>, ByteArrayViewable { | 506 class Uint32List implements List<int>, ByteArrayViewable { |
507 /** | 507 /** |
508 * Creates a [Uint32List] of the specified length (in elements), all | 508 * Creates a [Uint32List] of the specified length (in elements), all |
509 * of whose elements are initially zero. | 509 * of whose elements are initially zero. |
510 */ | 510 */ |
511 external Uint32List(int length); | 511 external Uint32List(int length); |
512 | 512 |
513 /** | 513 /** |
514 * Creates a [Uint32List] _view_ of the specified region in | 514 * Creates a [Uint32List] _view_ of the specified region in |
515 * the specified byte [array]. Changes in the [Uint32] will be | 515 * the specified byte [array]. Changes in the [Uint32] will be |
516 * visible in the byte array and vice versa. If the [start] index of the | 516 * visible in the byte array and vice versa. If the [start] index of the |
517 * region is not specified, it defaults to zero (the first byte in the byte | 517 * region is not specified, it defaults to zero (the first byte in the byte |
518 * array). If the length is not specified, it defaults to null, which | 518 * array). If the length is not specified, it defaults to null, which |
519 * indicates that the view extends to the end of the byte array. | 519 * indicates that the view extends to the end of the byte array. |
520 * | 520 * |
521 * Throws [IllegalArgumentException] if the length of the specified region | 521 * Throws [ArgumentError] if the length of the specified region |
522 * is not divisible by 4 (the size of a "uint32" in bytes), or if the | 522 * is not divisible by 4 (the size of a "uint32" in bytes), or if the |
523 * [start] of the region is not divisible by 4. If, however, [array] | 523 * [start] of the region is not divisible by 4. If, however, [array] |
524 * is a view of another byte array, this constructor will throw | 524 * is a view of another byte array, this constructor will throw |
525 * [IllegalArgumentException] if the implicit starting position in the | 525 * [ArgumentError] if the implicit starting position in the |
526 * "ultimately backing" byte array is not divisible by 4. In plain terms, | 526 * "ultimately backing" byte array is not divisible by 4. In plain terms, |
527 * this constructor throws [IllegalArgumentException] if the specified | 527 * this constructor throws [ArgumentError] if the specified |
528 * region does not contain an integral number of "uint32s," or if it | 528 * region does not contain an integral number of "uint32s," or if it |
529 * is not "uint32-aligned." | 529 * is not "uint32-aligned." |
530 */ | 530 */ |
531 external Uint32List.view(ByteArray array, [int start, int length]); | 531 external Uint32List.view(ByteArray array, [int start, int length]); |
532 } | 532 } |
533 | 533 |
534 | 534 |
535 /** | 535 /** |
536 * A fixed-length list of 64-bit signed integers that is viewable as a | 536 * A fixed-length list of 64-bit signed integers that is viewable as a |
537 * [ByteArray]. For long lists, this implementation will be considerably | 537 * [ByteArray]. For long lists, this implementation will be considerably |
538 * more space- and time-efficient than the default [List] implementation. | 538 * more space- and time-efficient than the default [List] implementation. |
539 */ | 539 */ |
540 class Int64List implements List<int>, ByteArrayViewable { | 540 class Int64List implements List<int>, ByteArrayViewable { |
541 /** | 541 /** |
542 * Creates an [Int64List] of the specified length (in elements), all of | 542 * Creates an [Int64List] of the specified length (in elements), all of |
543 * whose elements are initially zero. | 543 * whose elements are initially zero. |
544 */ | 544 */ |
545 external Int64List(int length); | 545 external Int64List(int length); |
546 | 546 |
547 /** | 547 /** |
548 * Creates an [Int64List] _view_ of the specified region in the specified | 548 * Creates an [Int64List] _view_ of the specified region in the specified |
549 * byte [array]. Changes in the [Int64List] will be visible in the byte | 549 * byte [array]. Changes in the [Int64List] will be visible in the byte |
550 * array and vice versa. If the [start] index of the region is not specified, | 550 * array and vice versa. If the [start] index of the region is not specified, |
551 * it defaults to zero (the first byte in the byte array). If the length is | 551 * it defaults to zero (the first byte in the byte array). If the length is |
552 * not specified, it defaults to null, which indicates that the view extends | 552 * not specified, it defaults to null, which indicates that the view extends |
553 * to the end of the byte array. | 553 * to the end of the byte array. |
554 * | 554 * |
555 * Throws [IllegalArgumentException] if the length of the specified region | 555 * Throws [ArgumentError] if the length of the specified region |
556 * is not divisible by 8 (the size of an "int64" in bytes), or if the | 556 * is not divisible by 8 (the size of an "int64" in bytes), or if the |
557 * [start] of the region is not divisible by 8. If, however, [array] | 557 * [start] of the region is not divisible by 8. If, however, [array] |
558 * is a view of another byte array, this constructor will throw | 558 * is a view of another byte array, this constructor will throw |
559 * [IllegalArgumentException] if the implicit starting position in the | 559 * [ArgumentError] if the implicit starting position in the |
560 * "ultimately backing" byte array is not divisible by 8. In plain terms, | 560 * "ultimately backing" byte array is not divisible by 8. In plain terms, |
561 * this constructor throws [IllegalArgumentException] if the specified | 561 * this constructor throws [ArgumentError] if the specified |
562 * region does not contain an integral number of "int64s," or if it | 562 * region does not contain an integral number of "int64s," or if it |
563 * is not "int64-aligned." | 563 * is not "int64-aligned." |
564 */ | 564 */ |
565 external Int64List.view(ByteArray array, [int start, int length]); | 565 external Int64List.view(ByteArray array, [int start, int length]); |
566 } | 566 } |
567 | 567 |
568 | 568 |
569 /** | 569 /** |
570 * A fixed-length list of 64-bit unsigned integers that is viewable as a | 570 * A fixed-length list of 64-bit unsigned integers that is viewable as a |
571 * [ByteArray]. For long lists, this implementation will be considerably | 571 * [ByteArray]. For long lists, this implementation will be considerably |
572 * more space- and time-efficient than the default [List] implementation. | 572 * more space- and time-efficient than the default [List] implementation. |
573 */ | 573 */ |
574 class Uint64List implements List<int>, ByteArrayViewable { | 574 class Uint64List implements List<int>, ByteArrayViewable { |
575 /** | 575 /** |
576 * Creates a [Uint64List] of the specified length (in elements), all | 576 * Creates a [Uint64List] of the specified length (in elements), all |
577 * of whose elements are initially zero. | 577 * of whose elements are initially zero. |
578 */ | 578 */ |
579 external Uint64List(int length); | 579 external Uint64List(int length); |
580 | 580 |
581 /** | 581 /** |
582 * Creates an [Uint64List] _view_ of the specified region in | 582 * Creates an [Uint64List] _view_ of the specified region in |
583 * the specified byte [array]. Changes in the [Uint64List] will be | 583 * the specified byte [array]. Changes in the [Uint64List] will be |
584 * visible in the byte array and vice versa. If the [start] index of the | 584 * visible in the byte array and vice versa. If the [start] index of the |
585 * region is not specified, it defaults to zero (the first byte in the byte | 585 * region is not specified, it defaults to zero (the first byte in the byte |
586 * array). If the length is not specified, it defaults to null, which | 586 * array). If the length is not specified, it defaults to null, which |
587 * indicates that the view extends to the end of the byte array. | 587 * indicates that the view extends to the end of the byte array. |
588 * | 588 * |
589 * Throws [IllegalArgumentException] if the length of the specified region | 589 * Throws [ArgumentError] if the length of the specified region |
590 * is not divisible by 8 (the size of a "uint64" in bytes), or if the | 590 * is not divisible by 8 (the size of a "uint64" in bytes), or if the |
591 * [start] of the region is not divisible by 8. If, however, [array] | 591 * [start] of the region is not divisible by 8. If, however, [array] |
592 * is a view of another byte array, this constructor will throw | 592 * is a view of another byte array, this constructor will throw |
593 * [IllegalArgumentException] if the implicit starting position in the | 593 * [ArgumentError] if the implicit starting position in the |
594 * "ultimately backing" byte array is not divisible by 8. In plain terms, | 594 * "ultimately backing" byte array is not divisible by 8. In plain terms, |
595 * this constructor throws [IllegalArgumentException] if the specified | 595 * this constructor throws [ArgumentError] if the specified |
596 * region does not contain an integral number of "uint64s," or if it | 596 * region does not contain an integral number of "uint64s," or if it |
597 * is not "uint64-aligned." | 597 * is not "uint64-aligned." |
598 */ | 598 */ |
599 external Uint64List.view(ByteArray array, [int start, int length]); | 599 external Uint64List.view(ByteArray array, [int start, int length]); |
600 } | 600 } |
601 | 601 |
602 | 602 |
603 /** | 603 /** |
604 * A fixed-length list of IEEE 754 single-precision binary floating-point | 604 * A fixed-length list of IEEE 754 single-precision binary floating-point |
605 * numbers that is viewable as a [ByteArray]. For long lists, this | 605 * numbers that is viewable as a [ByteArray]. For long lists, this |
606 * implementation will be considerably more space- and time-efficient than | 606 * implementation will be considerably more space- and time-efficient than |
607 * the default [List] implementation. | 607 * the default [List] implementation. |
608 */ | 608 */ |
609 class Float32List implements List<double>, ByteArrayViewable { | 609 class Float32List implements List<double>, ByteArrayViewable { |
610 /** | 610 /** |
611 * Creates a [Float32List] of the specified length (in elements), all of | 611 * Creates a [Float32List] of the specified length (in elements), all of |
612 * whose elements are initially zero. | 612 * whose elements are initially zero. |
613 */ | 613 */ |
614 external Float32List(int length); | 614 external Float32List(int length); |
615 | 615 |
616 /** | 616 /** |
617 * Creates a [Float32List] _view_ of the specified region in the specified | 617 * Creates a [Float32List] _view_ of the specified region in the specified |
618 * byte [array]. Changes in the [Float32List] will be visible in the byte | 618 * byte [array]. Changes in the [Float32List] will be visible in the byte |
619 * array and vice versa. If the [start] index of the region is not specified, | 619 * array and vice versa. If the [start] index of the region is not specified, |
620 * it defaults to zero (the first byte in the byte array). If the length is | 620 * it defaults to zero (the first byte in the byte array). If the length is |
621 * not specified, it defaults to null, which indicates that the view extends | 621 * not specified, it defaults to null, which indicates that the view extends |
622 * to the end of the byte array. | 622 * to the end of the byte array. |
623 * | 623 * |
624 * Throws [IllegalArgumentException] if the length of the specified region | 624 * Throws [ArgumentError] if the length of the specified region |
625 * is not divisible by 4 (the size of a "float32" in bytes), or if the | 625 * is not divisible by 4 (the size of a "float32" in bytes), or if the |
626 * [start] of the region is not divisible by 4. If, however, [array] | 626 * [start] of the region is not divisible by 4. If, however, [array] |
627 * is a view of another byte array, this constructor will throw | 627 * is a view of another byte array, this constructor will throw |
628 * [IllegalArgumentException] if the implicit starting position in the | 628 * [ArgumentError] if the implicit starting position in the |
629 * "ultimately backing" byte array is not divisible by 4. In plain terms, | 629 * "ultimately backing" byte array is not divisible by 4. In plain terms, |
630 * this constructor throws [IllegalArgumentException] if the specified | 630 * this constructor throws [ArgumentError] if the specified |
631 * region does not contain an integral number of "float32s," or if it | 631 * region does not contain an integral number of "float32s," or if it |
632 * is not "float32-aligned." | 632 * is not "float32-aligned." |
633 */ | 633 */ |
634 external Float32List.view(ByteArray array, [int start, int length]); | 634 external Float32List.view(ByteArray array, [int start, int length]); |
635 } | 635 } |
636 | 636 |
637 | 637 |
638 /** | 638 /** |
639 * A fixed-length list of IEEE 754 double-precision binary floating-point | 639 * A fixed-length list of IEEE 754 double-precision binary floating-point |
640 * numbers that is viewable as a [ByteArray]. For long lists, this | 640 * numbers that is viewable as a [ByteArray]. For long lists, this |
641 * implementation will be considerably more space- and time-efficient than | 641 * implementation will be considerably more space- and time-efficient than |
642 * the default [List] implementation. | 642 * the default [List] implementation. |
643 */ | 643 */ |
644 class Float64List implements List<double>, ByteArrayViewable { | 644 class Float64List implements List<double>, ByteArrayViewable { |
645 /** | 645 /** |
646 * Creates a [Float64List] of the specified length (in elements), all of | 646 * Creates a [Float64List] of the specified length (in elements), all of |
647 * whose elements are initially zero. | 647 * whose elements are initially zero. |
648 */ | 648 */ |
649 external Float64List(int length); | 649 external Float64List(int length); |
650 | 650 |
651 /** | 651 /** |
652 * Creates a [Float64List] _view_ of the specified region in the specified | 652 * Creates a [Float64List] _view_ of the specified region in the specified |
653 * byte [array]. Changes in the [Float64List] will be visible in the byte | 653 * byte [array]. Changes in the [Float64List] will be visible in the byte |
654 * array and vice versa. If the [start] index of the region is not specified, | 654 * array and vice versa. If the [start] index of the region is not specified, |
655 * it defaults to zero (the first byte in the byte array). If the length is | 655 * it defaults to zero (the first byte in the byte array). If the length is |
656 * not specified, it defaults to null, which indicates that the view extends | 656 * not specified, it defaults to null, which indicates that the view extends |
657 * to the end of the byte array. | 657 * to the end of the byte array. |
658 * | 658 * |
659 * Throws [IllegalArgumentException] if the length of the specified region | 659 * Throws [ArgumentError] if the length of the specified region |
660 * is not divisible by 8 (the size of a "float64" in bytes), or if the | 660 * is not divisible by 8 (the size of a "float64" in bytes), or if the |
661 * [start] of the region is not divisible by 8. If, however, [array] | 661 * [start] of the region is not divisible by 8. If, however, [array] |
662 * is a view of another byte array, this constructor will throw | 662 * is a view of another byte array, this constructor will throw |
663 * [IllegalArgumentException] if the implicit starting position in the | 663 * [ArgumentError] if the implicit starting position in the |
664 * "ultimately backing" byte array is not divisible by 8. In plain terms, | 664 * "ultimately backing" byte array is not divisible by 8. In plain terms, |
665 * this constructor throws [IllegalArgumentException] if the specified | 665 * this constructor throws [ArgumentError] if the specified |
666 * region does not contain an integral number of "float64s," or if it | 666 * region does not contain an integral number of "float64s," or if it |
667 * is not "float64-aligned." | 667 * is not "float64-aligned." |
668 */ | 668 */ |
669 external Float64List.view(ByteArray array, [int start, int length]); | 669 external Float64List.view(ByteArray array, [int start, int length]); |
670 } | 670 } |
OLD | NEW |