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+
28+package java.nio;
29+
30+
31+/**
32+
33+ * A read/write HeapByteBuffer.
34+
35+
36+
37+
38+
39+
40+ */
41+
42+class 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+}