History

Added some missing classes from java/nio, fixed some bad things

Dmitry Kabak (userdima committed 13 years ago

Commit 7d47bc81 parent b1be22084 files · +40111 −23Browse files

Showing the changes to java/pkg/java/nio/HeapByteBuffer.java (1 of 84 files). Show all

Unified · Split

java/pkg/java/nio/HeapByteBuffer.java+602−0
@@ -0,0 +1,602 @@
1/*
2 * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26// -- This file was mechanically generated: Do not edit! -- //
27
28package java.nio;
29
30
31/**
32
33 * A read/write HeapByteBuffer.
34
35
36
37
38
39
40 */
41
42class HeapByteBuffer
43 extends ByteBuffer
44{
45
46 // For speed these fields are actually declared in X-Buffer;
47 // these declarations are here as documentation
48 /*
49
50 protected final byte[] hb;
51 protected final int offset;
52
53 */
54
55 HeapByteBuffer(int cap, int lim) { // package-private
56
57 super(-1, 0, lim, cap, new byte[cap], 0);
58 /*
59 hb = new byte[cap];
60 offset = 0;
61 */
62
63
64
65
66 }
67
68 HeapByteBuffer(byte[] buf, int off, int len) { // package-private
69
70 super(-1, off, off + len, buf.length, buf, 0);
71 /*
72 hb = buf;
73 offset = 0;
74 */
75
76
77
78
79 }
80
81 protected HeapByteBuffer(byte[] buf,
82 int mark, int pos, int lim, int cap,
83 int off)
84 {
85
86 super(mark, pos, lim, cap, buf, off);
87 /*
88 hb = buf;
89 offset = off;
90 */
91
92
93
94
95 }
96
97 public ByteBuffer slice() {
98 return new HeapByteBuffer(hb,
99 -1,
100 0,
101 this.remaining(),
102 this.remaining(),
103 this.position() + offset);
104 }
105
106 public ByteBuffer duplicate() {
107 return new HeapByteBuffer(hb,
108 this.markValue(),
109 this.position(),
110 this.limit(),
111 this.capacity(),
112 offset);
113 }
114
115 public ByteBuffer asReadOnlyBuffer() {
116
117 return new HeapByteBufferR(hb,
118 this.markValue(),
119 this.position(),
120 this.limit(),
121 this.capacity(),
122 offset);
123
124
125
126 }
127
128
129
130 protected int ix(int i) {
131 return i + offset;
132 }
133
134 public byte get() {
135 return hb[ix(nextGetIndex())];
136 }
137
138 public byte get(int i) {
139 return hb[ix(checkIndex(i))];
140 }
141
142 public ByteBuffer get(byte[] dst, int offset, int length) {
143 // [Inferno] <
144 //checkBounds(offset, length, dst.length);
145 // [Inferno] =
146 Buffer.checkBounds(offset, length, dst.length);
147 // [Inferno] >
148 if (length > remaining())
149 throw new BufferUnderflowException();
150 System.arraycopy(hb, ix(position()), dst, offset, length);
151 position(position() + length);
152 return this;
153 }
154
155 public boolean isDirect() {
156 return false;
157 }
158
159
160
161 public boolean isReadOnly() {
162 return false;
163 }
164
165 public ByteBuffer put(byte x) {
166
167 hb[ix(nextPutIndex())] = x;
168 return this;
169
170
171
172 }
173
174 public ByteBuffer put(int i, byte x) {
175
176 hb[ix(checkIndex(i))] = x;
177 return this;
178
179
180
181 }
182
183 public ByteBuffer put(byte[] src, int offset, int length) {
184 // [Inferno] <
185 //checkBounds(offset, length, src.length);
186 // [Inferno] =
187 Buffer.checkBounds(offset, length, src.length);
188 // [Inferno] >
189 if (length > remaining())
190 throw new BufferOverflowException();
191 System.arraycopy(src, offset, hb, ix(position()), length);
192 position(position() + length);
193 return this;
194
195
196
197 }
198
199 public ByteBuffer put(ByteBuffer src) {
200
201 if (src instanceof HeapByteBuffer) {
202 if (src == this)
203 throw new IllegalArgumentException();
204 HeapByteBuffer sb = (HeapByteBuffer)src;
205 int n = sb.remaining();
206 if (n > remaining())
207 throw new BufferOverflowException();
208 System.arraycopy(sb.hb, sb.ix(sb.position()),
209 hb, ix(position()), n);
210 sb.position(sb.position() + n);
211 position(position() + n);
212 } else if (src.isDirect()) {
213 int n = src.remaining();
214 if (n > remaining())
215 throw new BufferOverflowException();
216 src.get(hb, ix(position()), n);
217 position(position() + n);
218 } else {
219 super.put(src);
220 }
221 return this;
222
223
224
225 }
226
227 public ByteBuffer compact() {
228
229 System.arraycopy(hb, ix(position()), hb, ix(0), remaining());
230 position(remaining());
231 limit(capacity());
232 discardMark();
233 return this;
234
235
236
237 }
238
239
240
241
242
243 byte _get(int i) { // package-private
244 return hb[i];
245 }
246
247 void _put(int i, byte b) { // package-private
248
249 hb[i] = b;
250
251
252
253 }
254
255 // char
256
257
258
259 public char getChar() {
260 return Bits.getChar(this, ix(nextGetIndex(2)), bigEndian);
261 }
262
263 public char getChar(int i) {
264 return Bits.getChar(this, ix(checkIndex(i, 2)), bigEndian);
265 }
266
267
268
269 public ByteBuffer putChar(char x) {
270
271 Bits.putChar(this, ix(nextPutIndex(2)), x, bigEndian);
272 return this;
273
274
275
276 }
277
278 public ByteBuffer putChar(int i, char x) {
279
280 Bits.putChar(this, ix(checkIndex(i, 2)), x, bigEndian);
281 return this;
282
283
284
285 }
286
287 public CharBuffer asCharBuffer() {
288 int size = this.remaining() >> 1;
289 int off = offset + position();
290 return (bigEndian
291 ? (CharBuffer)(new ByteBufferAsCharBufferB(this,
292 -1,
293 0,
294 size,
295 size,
296 off))
297 : (CharBuffer)(new ByteBufferAsCharBufferL(this,
298 -1,
299 0,
300 size,
301 size,
302 off)));
303 }
304
305
306 // short
307
308
309
310 public short getShort() {
311 return Bits.getShort(this, ix(nextGetIndex(2)), bigEndian);
312 }
313
314 public short getShort(int i) {
315 return Bits.getShort(this, ix(checkIndex(i, 2)), bigEndian);
316 }
317
318
319
320 public ByteBuffer putShort(short x) {
321
322 Bits.putShort(this, ix(nextPutIndex(2)), x, bigEndian);
323 return this;
324
325
326
327 }
328
329 public ByteBuffer putShort(int i, short x) {
330
331 Bits.putShort(this, ix(checkIndex(i, 2)), x, bigEndian);
332 return this;
333
334
335
336 }
337
338 public ShortBuffer asShortBuffer() {
339 int size = this.remaining() >> 1;
340 int off = offset + position();
341 return (bigEndian
342 ? (ShortBuffer)(new ByteBufferAsShortBufferB(this,
343 -1,
344 0,
345 size,
346 size,
347 off))
348 : (ShortBuffer)(new ByteBufferAsShortBufferL(this,
349 -1,
350 0,
351 size,
352 size,
353 off)));
354 }
355
356
357 // int
358
359
360
361 public int getInt() {
362 return Bits.getInt(this, ix(nextGetIndex(4)), bigEndian);
363 }
364
365 public int getInt(int i) {
366 return Bits.getInt(this, ix(checkIndex(i, 4)), bigEndian);
367 }
368
369
370
371 public ByteBuffer putInt(int x) {
372
373 Bits.putInt(this, ix(nextPutIndex(4)), x, bigEndian);
374 return this;
375
376
377
378 }
379
380 public ByteBuffer putInt(int i, int x) {
381
382 Bits.putInt(this, ix(checkIndex(i, 4)), x, bigEndian);
383 return this;
384
385
386
387 }
388
389 public IntBuffer asIntBuffer() {
390 int size = this.remaining() >> 2;
391 int off = offset + position();
392 return (bigEndian
393 ? (IntBuffer)(new ByteBufferAsIntBufferB(this,
394 -1,
395 0,
396 size,
397 size,
398 off))
399 : (IntBuffer)(new ByteBufferAsIntBufferL(this,
400 -1,
401 0,
402 size,
403 size,
404 off)));
405 }
406
407
408 // long
409
410
411
412 public long getLong() {
413 return Bits.getLong(this, ix(nextGetIndex(8)), bigEndian);
414 }
415
416 public long getLong(int i) {
417 return Bits.getLong(this, ix(checkIndex(i, 8)), bigEndian);
418 }
419
420
421
422 public ByteBuffer putLong(long x) {
423
424 Bits.putLong(this, ix(nextPutIndex(8)), x, bigEndian);
425 return this;
426
427
428
429 }
430
431 public ByteBuffer putLong(int i, long x) {
432
433 Bits.putLong(this, ix(checkIndex(i, 8)), x, bigEndian);
434 return this;
435
436
437
438 }
439
440 public LongBuffer asLongBuffer() {
441 int size = this.remaining() >> 3;
442 int off = offset + position();
443 return (bigEndian
444 ? (LongBuffer)(new ByteBufferAsLongBufferB(this,
445 -1,
446 0,
447 size,
448 size,
449 off))
450 : (LongBuffer)(new ByteBufferAsLongBufferL(this,
451 -1,
452 0,
453 size,
454 size,
455 off)));
456 }
457
458
459 // float
460
461
462
463 public float getFloat() {
464 return Bits.getFloat(this, ix(nextGetIndex(4)), bigEndian);
465 }
466
467 public float getFloat(int i) {
468 return Bits.getFloat(this, ix(checkIndex(i, 4)), bigEndian);
469 }
470
471
472
473 public ByteBuffer putFloat(float x) {
474
475 Bits.putFloat(this, ix(nextPutIndex(4)), x, bigEndian);
476 return this;
477
478
479
480 }
481
482 public ByteBuffer putFloat(int i, float x) {
483
484 Bits.putFloat(this, ix(checkIndex(i, 4)), x, bigEndian);
485 return this;
486
487
488
489 }
490
491 public FloatBuffer asFloatBuffer() {
492 int size = this.remaining() >> 2;
493 int off = offset + position();
494 return (bigEndian
495 ? (FloatBuffer)(new ByteBufferAsFloatBufferB(this,
496 -1,
497 0,
498 size,
499 size,
500 off))
501 : (FloatBuffer)(new ByteBufferAsFloatBufferL(this,
502 -1,
503 0,
504 size,
505 size,
506 off)));
507 }
508
509
510 // double
511
512
513
514 public double getDouble() {
515 return Bits.getDouble(this, ix(nextGetIndex(8)), bigEndian);
516 }
517
518 public double getDouble(int i) {
519 return Bits.getDouble(this, ix(checkIndex(i, 8)), bigEndian);
520 }
521
522
523
524 public ByteBuffer putDouble(double x) {
525
526 Bits.putDouble(this, ix(nextPutIndex(8)), x, bigEndian);
527 return this;
528
529
530
531 }
532
533 public ByteBuffer putDouble(int i, double x) {
534
535 Bits.putDouble(this, ix(checkIndex(i, 8)), x, bigEndian);
536 return this;
537
538
539
540 }
541
542 public DoubleBuffer asDoubleBuffer() {
543 int size = this.remaining() >> 3;
544 int off = offset + position();
545 return (bigEndian
546 ? (DoubleBuffer)(new ByteBufferAsDoubleBufferB(this,
547 -1,
548 0,
549 size,
550 size,
551 off))
552 : (DoubleBuffer)(new ByteBufferAsDoubleBufferL(this,
553 -1,
554 0,
555 size,
556 size,
557 off)));
558 }
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602}