diff options
author | Michael Koch <konqueror@gmx.de> | 2003-05-20 08:58:31 +0000 |
---|---|---|
committer | Michael Koch <mkoch@gcc.gnu.org> | 2003-05-20 08:58:31 +0000 |
commit | 3a5eb28322868f15d7daab0f97a5b6833632c854 (patch) | |
tree | fbd6e2d67822568e3097d9f632bb4f24a53a3b95 /libjava/gnu/java/nio | |
parent | 1db0418ae570eff510bb0c52cb5dbed54320d5a4 (diff) | |
download | gcc-3a5eb28322868f15d7daab0f97a5b6833632c854.zip gcc-3a5eb28322868f15d7daab0f97a5b6833632c854.tar.gz gcc-3a5eb28322868f15d7daab0f97a5b6833632c854.tar.bz2 |
ByteBufferImpl.java, [...]: Moved files to java/nio.
2003-05-20 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/ByteBufferImpl.java,
gnu/java/nio/CharBufferImpl.java,
gnu/java/nio/CharViewBufferImpl.java,
gnu/java/nio/DirectByteBufferImpl.java,
gnu/java/nio/DoubleBufferImpl.java,
gnu/java/nio/DoubleViewBufferImpl.java,
gnu/java/nio/FloatBufferImpl.java,
gnu/java/nio/FloatViewBufferImpl.java,
gnu/java/nio/IntBufferImpl.java,
gnu/java/nio/IntViewBufferImpl.java,
gnu/java/nio/LongBufferImpl.java,
gnu/java/nio/LongViewBufferImpl.java,
gnu/java/nio/natDirectByteBufferImpl.cc,
gnu/java/nio/ShortBufferImpl.java,
gnu/java/nio/ShortViewBufferImpl.java:
Moved files to java/nio.
* gnu/java/nio/SocketChannelImpl.java
* java/nio/ByteBuffer.java,
java/nio/CharBuffer.java,
java/nio/DoubleBuffer.java,
java/nio/FloatBuffer.java,
java/nio/IntBuffer.java,
java/nio/LongBuffer.java,
java/nio/ShortBuffer.java:
Dont import anything.
* java/nio/ByteBufferImpl.java,
java/nio/CharBufferImpl.java,
java/nio/CharViewBufferImpl.java,
java/nio/DirectByteBufferImpl.java,
java/nio/DoubleBufferImpl.java,
java/nio/DoubleViewBufferImpl.java,
java/nio/FloatBufferImpl.java,
java/nio/FloatViewBufferImpl.java,
java/nio/IntBufferImpl.java,
java/nio/IntViewBufferImpl.java,
java/nio/LongBufferImpl.java,
java/nio/LongViewBufferImpl.java,
java/nio/natDirectByteBufferImpl.cc,
java/nio/ShortBufferImpl.java,
java/nio/ShortViewBufferImpl.java:
Moved from gnu/java/nio.
* Makefile.am
(ordinary_java_source_files): Moved files from gnu/java/nio to
java/nio.
(nat_source_files): Moved natDirectByteBufferImpl.cc from gnu/java/nio
to java/nio.
* Makefile.in: Regenerated.
From-SVN: r66990
Diffstat (limited to 'libjava/gnu/java/nio')
-rw-r--r-- | libjava/gnu/java/nio/ByteBufferImpl.java | 443 | ||||
-rw-r--r-- | libjava/gnu/java/nio/CharBufferImpl.java | 188 | ||||
-rw-r--r-- | libjava/gnu/java/nio/CharViewBufferImpl.java | 169 | ||||
-rw-r--r-- | libjava/gnu/java/nio/DirectByteBufferImpl.java | 423 | ||||
-rw-r--r-- | libjava/gnu/java/nio/DoubleBufferImpl.java | 162 | ||||
-rw-r--r-- | libjava/gnu/java/nio/DoubleViewBufferImpl.java | 158 | ||||
-rw-r--r-- | libjava/gnu/java/nio/FloatBufferImpl.java | 162 | ||||
-rw-r--r-- | libjava/gnu/java/nio/FloatViewBufferImpl.java | 158 | ||||
-rw-r--r-- | libjava/gnu/java/nio/IntBufferImpl.java | 162 | ||||
-rw-r--r-- | libjava/gnu/java/nio/IntViewBufferImpl.java | 158 | ||||
-rw-r--r-- | libjava/gnu/java/nio/LongBufferImpl.java | 162 | ||||
-rw-r--r-- | libjava/gnu/java/nio/LongViewBufferImpl.java | 158 | ||||
-rw-r--r-- | libjava/gnu/java/nio/ShortBufferImpl.java | 162 | ||||
-rw-r--r-- | libjava/gnu/java/nio/ShortViewBufferImpl.java | 158 | ||||
-rw-r--r-- | libjava/gnu/java/nio/SocketChannelImpl.java | 23 | ||||
-rw-r--r-- | libjava/gnu/java/nio/natDirectByteBufferImpl.cc | 45 |
16 files changed, 11 insertions, 2880 deletions
diff --git a/libjava/gnu/java/nio/ByteBufferImpl.java b/libjava/gnu/java/nio/ByteBufferImpl.java deleted file mode 100644 index f9de8c7..0000000 --- a/libjava/gnu/java/nio/ByteBufferImpl.java +++ /dev/null @@ -1,443 +0,0 @@ -/* ByteBufferImpl.java -- - Copyright (C) 2002, 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.DoubleBuffer; -import java.nio.FloatBuffer; -import java.nio.IntBuffer; -import java.nio.LongBuffer; -import java.nio.ReadOnlyBufferException; -import java.nio.ShortBuffer; - -/** - * This is a Heap memory implementation - */ -public final class ByteBufferImpl extends ByteBuffer -{ - private boolean readOnly; - - ByteBufferImpl (int capacity) - { - this (new byte [capacity], 0, capacity, capacity, 0, -1, false); - } - - ByteBufferImpl (byte[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly) - { - super (buffer, offset, capacity, limit, position, mark); - this.readOnly = readOnly; - } - - public ByteBufferImpl (ByteBufferImpl copy) - { - super (copy.capacity (), copy.limit (), copy.position (), 0); - backing_buffer = copy.backing_buffer; - readOnly = copy.isReadOnly (); - } - - void inc_pos (int toAdd) - { - position (position () + toAdd); - } - - public CharBuffer asCharBuffer () - { - return new CharViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly ()); - } - - public ShortBuffer asShortBuffer () - { - return new ShortViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly ()); - } - - public IntBuffer asIntBuffer () - { - return new IntViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly ()); - } - - public LongBuffer asLongBuffer () - { - return new LongViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly ()); - } - - public FloatBuffer asFloatBuffer () - { - return new FloatViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly ()); - } - - public DoubleBuffer asDoubleBuffer () - { - return new DoubleViewBufferImpl (this, position (), remaining(), remaining (), 0, -1, isReadOnly ()); - } - - public boolean isReadOnly () - { - return readOnly; - } - - public ByteBuffer slice () - { - return new ByteBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public ByteBuffer duplicate () - { - return new ByteBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); - } - - public ByteBuffer asReadOnlyBuffer () - { - return new ByteBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); - } - - public ByteBuffer compact () - { - int copied = 0; - - while (remaining () > 0) - { - put (copied, get ()); - copied++; - } - - position (copied); - return this; - } - - public boolean isDirect () - { - return false; - } - - /** - * Relative get method. Reads the next <code>byte</code> from the buffer. - */ - final public byte get () - { - byte result = backing_buffer [position ()]; - position (position () + 1); - return result; - } - - /** - * Relative put method. Writes <code>value</code> to the next position - * in the buffer. - * - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public ByteBuffer put (byte value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [position ()] = value; - position (position () + 1); - return this; - } - - /** - * Absolute get method. Reads the <code>byte</code> at position - * <code>index</code>. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - */ - final public byte get (int index) - { - return backing_buffer [index]; - } - - /** - * Absolute put method. Writes <code>value</value> to position - * <code>index</code> in the buffer. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public ByteBuffer put (int index, byte value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [index] = value; - return this; - } - - final public char getChar () - { - // FIXME: this handles big endian only - return (char) (((get () & 0xff) << 8) + (get () & 0xff)); - } - - final public ByteBuffer putChar (char value) - { - // FIXME: this handles big endian only - put ((byte) ((((int) value) & 0xff00) >> 8)); - put ((byte) (((int) value) & 0x00ff)); - return this; - } - - final public char getChar (int index) - { - // FIXME: this handles big endian only - return (char) (((get (index) & 0xff) << 8) + (get (index + 1) & 0xff)); - } - - final public ByteBuffer putChar (int index, char value) - { - // FIXME: this handles big endian only - put (index, (byte) ((((int) value) & 0xff00) >> 8)); - put (index + 1, (byte) (((int) value) & 0x00ff)); - return this; - } - - final public short getShort () - { - // FIXME: this handles big endian only - return (short) (((get () & 0xff) << 8) + (get () & 0xff)); - } - - final public ByteBuffer putShort (short value) - { - // FIXME: this handles big endian only - put ((byte) ((((int) value) & 0xff00) >> 8)); - put ((byte) (((int) value) & 0x00ff)); - return this; - } - - final public short getShort (int index) - { - // FIXME: this handles big endian only - return (short) (((get (index) & 0xff) << 8) + (get (index + 1) & 0xff)); - } - - final public ByteBuffer putShort (int index, short value) - { - // FIXME: this handles big endian only - put (index, (byte) ((((int) value) & 0xff00) >> 8)); - put (index + 1, (byte) (((int) value) & 0x00ff)); - return this; - } - - final public int getInt () - { - // FIXME: this handles big endian only - return (int) (((get () & 0xff) << 24) - + (get () & 0xff) << 16 - + (get () & 0xff) << 8 - + (get () & 0xff)); - } - - final public ByteBuffer putInt (int value) - { - // FIXME: this handles big endian only - put ((byte) ((((int) value) & 0xff000000) >> 24)); - put ((byte) ((((int) value) & 0x00ff0000) >> 16)); - put ((byte) ((((int) value) & 0x0000ff00) >> 8)); - put ((byte) (((int) value) & 0x000000ff)); - return this; - } - - final public int getInt (int index) - { - // FIXME: this handles big endian only - return (int) (((get (index) & 0xff) << 24) - + (get (index + 1) & 0xff) << 16 - + (get (index + 2) & 0xff) << 8 - + (get (index + 3) & 0xff)); - } - - final public ByteBuffer putInt (int index, int value) - { - // FIXME: this handles big endian only - put (index, (byte) ((((int) value) & 0xff000000) >> 24)); - put (index + 1, (byte) ((((int) value) & 0x00ff0000) >> 16)); - put (index + 2, (byte) ((((int) value) & 0x0000ff00) >> 8)); - put (index + 3, (byte) (((int) value) & 0x000000ff)); - return this; - } - - final public long getLong () - { - // FIXME: this handles big endian only - return (long) (((get () & 0xff) << 56) - + (get () & 0xff) << 48 - + (get () & 0xff) << 40 - + (get () & 0xff) << 32 - + (get () & 0xff) << 24 - + (get () & 0xff) << 16 - + (get () & 0xff) << 8 - + (get () & 0xff)); - } - - final public ByteBuffer putLong (long value) - { - // FIXME: this handles big endian only - put ((byte) ((value & 0xff00000000000000L) >> 56)); - put ((byte) ((value & 0x00ff000000000000L) >> 48)); - put ((byte) ((value & 0x0000ff0000000000L) >> 40)); - put ((byte) ((value & 0x000000ff00000000L) >> 32)); - put ((byte) ((value & 0x00000000ff000000L) >> 24)); - put ((byte) ((value & 0x0000000000ff0000L) >> 16)); - put ((byte) ((value & 0x000000000000ff00L) >> 8)); - put ((byte) (value & 0x00000000000000ffL)); - return this; - } - - final public long getLong (int index) - { - // FIXME: this handles big endian only - return (long) (((get (index) & 0xff) << 56) - + (get (index + 1) & 0xff) << 48 - + (get (index + 2) & 0xff) << 40 - + (get (index + 3) & 0xff) << 32 - + (get (index + 4) & 0xff) << 24 - + (get (index + 5) & 0xff) << 16 - + (get (index + 6) & 0xff) << 8 - + (get (index + 7) & 0xff)); - } - - final public ByteBuffer putLong (int index, long value) - { - // FIXME: this handles big endian only - put (index, (byte) ((value & 0xff00000000000000L) >> 56)); - put (index + 1, (byte) ((value & 0x00ff000000000000L) >> 48)); - put (index + 2, (byte) ((value & 0x0000ff0000000000L) >> 40)); - put (index + 3, (byte) ((value & 0x000000ff00000000L) >> 32)); - put (index + 4, (byte) ((value & 0x00000000ff000000L) >> 24)); - put (index + 5, (byte) ((value & 0x0000000000ff0000L) >> 16)); - put (index + 6, (byte) ((value & 0x000000000000ff00L) >> 8)); - put (index + 7, (byte) (value & 0x00000000000000ffL)); - return this; - } - - final public float getFloat () - { - // FIXME: this handles big endian only - return (float) (((get () & 0xff) << 24) - + (get () & 0xff) << 16 - + (get () & 0xff) << 8 - + (get () & 0xff)); - } - - final public ByteBuffer putFloat (float value) - { - // FIXME: this handles big endian only - put ((byte) ((((int) value) & 0xff000000) >> 24)); - put ((byte) ((((int) value) & 0x00ff0000) >> 16)); - put ((byte) ((((int) value) & 0x0000ff00) >> 8)); - put ((byte) (((int) value) & 0x000000ff)); - return this; - } - - final public float getFloat (int index) - { - // FIXME: this handles big endian only - return (float) (((get (index) & 0xff) << 24) - + (get (index + 1) & 0xff) << 16 - + (get (index + 2) & 0xff) << 8 - + (get (index + 3) & 0xff)); - } - - final public ByteBuffer putFloat (int index, float value) - { - // FIXME: this handles big endian only - put (index, (byte) ((((int) value) & 0xff000000) >> 24)); - put (index + 1, (byte) ((((int) value) & 0x00ff0000) >> 16)); - put (index + 2, (byte) ((((int) value) & 0x0000ff00) >> 8)); - put (index + 3, (byte) (((int) value) & 0x000000ff)); - return this; - } - - final public double getDouble () - { - // FIXME: this handles big endian only - return (double) (((get () & 0xff) << 56) - + (get () & 0xff) << 48 - + (get () & 0xff) << 40 - + (get () & 0xff) << 32 - + (get () & 0xff) << 24 - + (get () & 0xff) << 16 - + (get () & 0xff) << 8 - + (get () & 0xff)); - } - - final public ByteBuffer putDouble (double value) - { - // FIXME: this handles big endian only - put ((byte) ((((long) value) & 0xff00000000000000L) >> 56)); - put ((byte) ((((long) value) & 0x00ff000000000000L) >> 48)); - put ((byte) ((((long) value) & 0x0000ff0000000000L) >> 40)); - put ((byte) ((((long) value) & 0x000000ff00000000L) >> 32)); - put ((byte) ((((long) value) & 0x00000000ff000000L) >> 24)); - put ((byte) ((((long) value) & 0x0000000000ff0000L) >> 16)); - put ((byte) ((((long) value) & 0x000000000000ff00L) >> 8)); - put ((byte) (((long) value) & 0x00000000000000ffL)); - return this; - } - - final public double getDouble (int index) - { - // FIXME: this handles big endian only - return (double) (((get (index) & 0xff) << 56) - + (get (index + 1) & 0xff) << 48 - + (get (index + 2) & 0xff) << 40 - + (get (index + 3) & 0xff) << 32 - + (get (index + 4) & 0xff) << 24 - + (get (index + 5) & 0xff) << 16 - + (get (index + 6) & 0xff) << 8 - + (get (index + 7) & 0xff)); - } - - final public ByteBuffer putDouble (int index, double value) - { - // FIXME: this handles big endian only - put (index, (byte) ((((long) value) & 0xff00000000000000L) >> 56)); - put (index + 1, (byte) ((((long) value) & 0x00ff000000000000L) >> 48)); - put (index + 2, (byte) ((((long) value) & 0x0000ff0000000000L) >> 40)); - put (index + 3, (byte) ((((long) value) & 0x000000ff00000000L) >> 32)); - put (index + 4, (byte) ((((long) value) & 0x00000000ff000000L) >> 24)); - put (index + 5, (byte) ((((long) value) & 0x0000000000ff0000L) >> 16)); - put (index + 6, (byte) ((((long) value) & 0x000000000000ff00L) >> 8)); - put (index + 7, (byte) (((long) value) & 0x00000000000000ffL)); - return this; - } -} diff --git a/libjava/gnu/java/nio/CharBufferImpl.java b/libjava/gnu/java/nio/CharBufferImpl.java deleted file mode 100644 index fcf0e15..0000000 --- a/libjava/gnu/java/nio/CharBufferImpl.java +++ /dev/null @@ -1,188 +0,0 @@ -/* CharBufferImpl.java -- - Copyright (C) 2002, 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.CharBuffer; -import java.nio.ReadOnlyBufferException; - -/** - * This is a Heap memory implementation - */ -public final class CharBufferImpl extends CharBuffer -{ - private boolean readOnly; - - CharBufferImpl (int capacity) - { - this (new char [capacity], 0, capacity, capacity, 0, -1, false); - } - - CharBufferImpl (char[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly) - { - super (buffer, offset, capacity, limit, position, mark); - this.readOnly = readOnly; - } - - public CharBufferImpl (CharBufferImpl copy) - { - super (copy.capacity (), copy.limit (), copy.position (), 0); - backing_buffer = copy.backing_buffer; - readOnly = copy.isReadOnly (); - } - - public boolean isReadOnly () - { - return readOnly; - } - - public CharBuffer slice () - { - return new CharBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public CharBuffer duplicate () - { - return new CharBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); - } - - public CharBuffer asReadOnlyBuffer () - { - return new CharBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); - } - - public CharBuffer compact () - { - int copied = 0; - - while (remaining () > 0) - { - put (copied, get ()); - copied++; - } - - position (copied); - return this; - } - - public boolean isDirect () - { - return false; - } - - final public CharSequence subSequence (int start, int end) - { - if (start < 0 - || start > length () - || end < start - || end > length ()) - throw new IndexOutOfBoundsException (); - - return new CharBufferImpl (backing_buffer, array_offset, capacity (), position () + end, position () + start, -1, isReadOnly ()); - } - - /** - * Relative get method. Reads the next <code>char</code> from the buffer. - */ - final public char get () - { - char result = backing_buffer [position ()]; - position (position () + 1); - return result; - } - - /** - * Relative put method. Writes <code>value</code> to the next position - * in the buffer. - * - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public CharBuffer put (char value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [position ()] = value; - position (position () + 1); - return this; - } - - /** - * Absolute get method. Reads the <code>char</code> at position - * <code>index</code>. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - */ - final public char get (int index) - { - if (index < 0 - || index >= limit ()) - throw new IndexOutOfBoundsException (); - - return backing_buffer [index]; - } - - /** - * Absolute put method. Writes <code>value</value> to position - * <code>index</code> in the buffer. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public CharBuffer put (int index, char value) - { - if (index < 0 - || index >= limit ()) - throw new IndexOutOfBoundsException (); - - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [index] = value; - return this; - } - - final public ByteOrder order () - { - return ByteOrder.nativeOrder (); - } -} diff --git a/libjava/gnu/java/nio/CharViewBufferImpl.java b/libjava/gnu/java/nio/CharViewBufferImpl.java deleted file mode 100644 index 7280de5..0000000 --- a/libjava/gnu/java/nio/CharViewBufferImpl.java +++ /dev/null @@ -1,169 +0,0 @@ -/* CharViewBufferImpl.java -- - Copyright (C) 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.CharBuffer; - -class CharViewBufferImpl extends CharBuffer -{ - private boolean readOnly; - private int offset; - private ByteBuffer bb; - private ByteOrder endian; - - public CharViewBufferImpl (ByteBuffer bb, boolean readOnly) - { - super (bb.remaining () >> 1, bb.remaining () >> 1, bb.position (), 0); - this.bb = bb; - this.readOnly = readOnly; - // FIXME: What if this is called from CharByteBufferImpl and ByteBuffer has changed its endianess ? - this.endian = bb.order (); - } - - public CharViewBufferImpl (ByteBuffer bb, int offset, int capacity, - int limit, int position, int mark, - boolean readOnly) - { - super (limit >> 1, limit >> 1, position >> 1, mark >> 1); - this.bb = bb; - this.offset = offset; - this.readOnly = readOnly; - // FIXME: What if this is called from CharViewBufferImpl and ByteBuffer has changed its endianess ? - this.endian = bb.order (); - } - - public char get () - { - char result = bb.getChar ((position () << 1) + offset); - position (position () + 1); - return result; - } - - public char get (int index) - { - return bb.getChar ((index << 1) + offset); - } - - public CharBuffer put (char value) - { - bb.putChar ((position () << 1) + offset, value); - position (position () + 1); - return this; - } - - public CharBuffer put (int index, char value) - { - bb.putChar ((index << 1) + offset, value); - return this; - } - - public CharBuffer compact () - { - if (position () > 0) - { - // Copy all data from position() to limit() to the beginning of the - // buffer, set position to end of data and limit to capacity - // XXX: This can surely be optimized, for direct and non-direct buffers - - int count = limit () - position (); - - for (int i = 0; i < count; i++) - { - bb.putChar ((i >> 1) + offset, - bb.getChar (((i + position ()) >> 1) + offset)); - } - - position (count); - limit (capacity ()); - } - - return this; - } - - public CharBuffer duplicate () - { - // Create a copy of this object that shares its content - // FIXME: mark is not correct - return new CharViewBufferImpl (bb, offset, capacity (), limit (), - position (), -1, isReadOnly ()); - } - - public CharBuffer slice () - { - // Create a sliced copy of this object that shares its content. - return new CharViewBufferImpl (bb, (position () >> 1) + offset, - remaining (), remaining (), 0, -1, - isReadOnly ()); - } - - public CharSequence subSequence (int start, int end) - { - if (start < 0 - || start > length () - || end < start - || end > length ()) - throw new IndexOutOfBoundsException (); - - return new CharViewBufferImpl (bb, array_offset, capacity (), position () + end, position () + start, -1, isReadOnly ()); - } - - public CharBuffer asReadOnlyBuffer () - { - // Create a copy of this object that shares its content and is read-only - return new CharViewBufferImpl (bb, (position () >> 1) + offset, - remaining (), remaining (), 0, -1, true); - } - - public boolean isReadOnly () - { - return readOnly; - } - - public boolean isDirect () - { - return bb.isDirect (); - } - - public ByteOrder order () - { - return ByteOrder.LITTLE_ENDIAN; - } -} diff --git a/libjava/gnu/java/nio/DirectByteBufferImpl.java b/libjava/gnu/java/nio/DirectByteBufferImpl.java deleted file mode 100644 index d214f0c..0000000 --- a/libjava/gnu/java/nio/DirectByteBufferImpl.java +++ /dev/null @@ -1,423 +0,0 @@ -/* DirectByteBufferImpl.java -- - Copyright (C) 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.DoubleBuffer; -import java.nio.FloatBuffer; -import java.nio.IntBuffer; -import java.nio.LongBuffer; -import java.nio.ShortBuffer; -import gnu.gcj.RawData; - -public class DirectByteBufferImpl extends ByteBuffer -{ - private RawData address; - private int offset; - private boolean readOnly; - - public DirectByteBufferImpl (RawData address, int offset, int capacity, - int limit, int position, int mark, - boolean readOnly) - { - super (capacity, limit, position, mark); - this.address = address; - this.offset = offset; - this.readOnly = readOnly; - } - - private static native RawData allocateImpl (int capacity); - private static native void freeImpl (RawData address); - - protected void finalize () throws Throwable - { - freeImpl (address); - } - - public static ByteBuffer allocateDirect (int capacity) - { - RawData address = allocateImpl (capacity); - - if (address == null) - throw new InternalError ("Not enough memory to create direct buffer"); - - return new DirectByteBufferImpl (address, 0, capacity, capacity, 0, -1, false); - } - - private native byte getImpl (int index); - private native void putImpl (int index, byte value); - - public byte get () - { - byte result = getImpl (position () + offset); - position (position () + 1); - return result; - } - - public byte get (int index) - { - return getImpl (index); - } - - public ByteBuffer put (byte value) - { - putImpl (position (), value); - position (position () + 1); - return this; - } - - public ByteBuffer put (int index, byte value) - { - putImpl (index, value); - return this; - } - - public ByteBuffer compact () - { - // FIXME this can sure be optimized using memcpy() - int copied = 0; - - while (remaining () > 0) - { - put (copied, get ()); - copied++; - } - - position (copied); - return this; - } - - public ByteBuffer duplicate () - { - return new DirectByteBufferImpl ( - address, offset, capacity (), limit (), position (), -1, isReadOnly ()); - } - - public ByteBuffer slice () - { - return new DirectByteBufferImpl (address, position () + offset, remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public ByteBuffer asReadOnlyBuffer () - { - return new DirectByteBufferImpl ( - address, offset, capacity (), limit (), position (), -1, true); - } - - public boolean isReadOnly () - { - return readOnly; - } - - public boolean isDirect () - { - return true; - } - - public CharBuffer asCharBuffer () - { - return new CharViewBufferImpl (this, position () + offset, remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public DoubleBuffer asDoubleBuffer () - { - return new DoubleViewBufferImpl (this, position () + offset, remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public FloatBuffer asFloatBuffer () - { - return new FloatViewBufferImpl (this, position () + offset, remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public IntBuffer asIntBuffer () - { - return new IntViewBufferImpl (this, position () + offset, remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public LongBuffer asLongBuffer () - { - return new LongViewBufferImpl (this, position () + offset, remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public ShortBuffer asShortBuffer () - { - return new ShortViewBufferImpl (this, position () + offset, remaining (), remaining (), 0, -1, isReadOnly ()); - } - - final public char getChar () - { - // FIXME: this handles big endian only - return (char) (((get () & 0xff) << 8) + (get () & 0xff)); - } - - final public ByteBuffer putChar (char value) - { - // FIXME: this handles big endian only - put ((byte) ((((int) value) & 0xff00) >> 8)); - put ((byte) (((int) value) & 0x00ff)); - return this; - } - - final public char getChar (int index) - { - // FIXME: this handles big endian only - return (char) (((get (index) & 0xff) << 8) + (get (index + 1) & 0xff)); - } - - final public ByteBuffer putChar (int index, char value) - { - // FIXME: this handles big endian only - put (index, (byte) ((((int) value) & 0xff00) >> 8)); - put (index + 1, (byte) (((int) value) & 0x00ff)); - return this; - } - - final public short getShort () - { - // FIXME: this handles big endian only - return (short) (((get () & 0xff) << 8) + (get () & 0xff)); - } - - final public ByteBuffer putShort (short value) - { - // FIXME: this handles big endian only - put ((byte) ((((int) value) & 0xff00) >> 8)); - put ((byte) (((int) value) & 0x00ff)); - return this; - } - - final public short getShort (int index) - { - // FIXME: this handles big endian only - return (short) (((get (index) & 0xff) << 8) + (get (index + 1) & 0xff)); - } - - final public ByteBuffer putShort (int index, short value) - { - // FIXME: this handles big endian only - put (index, (byte) ((((int) value) & 0xff00) >> 8)); - put (index + 1, (byte) (((int) value) & 0x00ff)); - return this; - } - - final public int getInt () - { - // FIXME: this handles big endian only - return (int) (((get () & 0xff) << 24) - + (get () & 0xff) << 16 - + (get () & 0xff) << 8 - + (get () & 0xff)); - } - - final public ByteBuffer putInt (int value) - { - // FIXME: this handles big endian only - put ((byte) ((((int) value) & 0xff000000) >> 24)); - put ((byte) ((((int) value) & 0x00ff0000) >> 16)); - put ((byte) ((((int) value) & 0x0000ff00) >> 8)); - put ((byte) (((int) value) & 0x000000ff)); - return this; - } - - final public int getInt (int index) - { - // FIXME: this handles big endian only - return (int) (((get (index) & 0xff) << 24) - + (get (index + 1) & 0xff) << 16 - + (get (index + 2) & 0xff) << 8 - + (get (index + 3) & 0xff)); - } - - final public ByteBuffer putInt (int index, int value) - { - // FIXME: this handles big endian only - put (index, (byte) ((((int) value) & 0xff000000) >> 24)); - put (index + 1, (byte) ((((int) value) & 0x00ff0000) >> 16)); - put (index + 2, (byte) ((((int) value) & 0x0000ff00) >> 8)); - put (index + 3, (byte) (((int) value) & 0x000000ff)); - return this; - } - - final public long getLong () - { - // FIXME: this handles big endian only - return (long) (((get () & 0xff) << 56) - + (get () & 0xff) << 48 - + (get () & 0xff) << 40 - + (get () & 0xff) << 32 - + (get () & 0xff) << 24 - + (get () & 0xff) << 16 - + (get () & 0xff) << 8 - + (get () & 0xff)); - } - - final public ByteBuffer putLong (long value) - { - // FIXME: this handles big endian only - put ((byte) ((value & 0xff00000000000000L) >> 56)); - put ((byte) ((value & 0x00ff000000000000L) >> 48)); - put ((byte) ((value & 0x0000ff0000000000L) >> 40)); - put ((byte) ((value & 0x000000ff00000000L) >> 32)); - put ((byte) ((value & 0x00000000ff000000L) >> 24)); - put ((byte) ((value & 0x0000000000ff0000L) >> 16)); - put ((byte) ((value & 0x000000000000ff00L) >> 8)); - put ((byte) (value & 0x00000000000000ffL)); - return this; - } - - final public long getLong (int index) - { - // FIXME: this handles big endian only - return (long) (((get (index) & 0xff) << 56) - + (get (index + 1) & 0xff) << 48 - + (get (index + 2) & 0xff) << 40 - + (get (index + 3) & 0xff) << 32 - + (get (index + 4) & 0xff) << 24 - + (get (index + 5) & 0xff) << 16 - + (get (index + 6) & 0xff) << 8 - + (get (index + 7) & 0xff)); - } - - final public ByteBuffer putLong (int index, long value) - { - // FIXME: this handles big endian only - put (index, (byte) ((value & 0xff00000000000000L) >> 56)); - put (index + 1, (byte) ((value & 0x00ff000000000000L) >> 48)); - put (index + 2, (byte) ((value & 0x0000ff0000000000L) >> 40)); - put (index + 3, (byte) ((value & 0x000000ff00000000L) >> 32)); - put (index + 4, (byte) ((value & 0x00000000ff000000L) >> 24)); - put (index + 5, (byte) ((value & 0x0000000000ff0000L) >> 16)); - put (index + 6, (byte) ((value & 0x000000000000ff00L) >> 8)); - put (index + 7, (byte) (value & 0x00000000000000ffL)); - return this; - } - - final public float getFloat () - { - // FIXME: this handles big endian only - return (float) (((get () & 0xff) << 24) - + (get () & 0xff) << 16 - + (get () & 0xff) << 8 - + (get () & 0xff)); - } - - final public ByteBuffer putFloat (float value) - { - // FIXME: this handles big endian only - put ((byte) ((((int) value) & 0xff000000) >> 24)); - put ((byte) ((((int) value) & 0x00ff0000) >> 16)); - put ((byte) ((((int) value) & 0x0000ff00) >> 8)); - put ((byte) (((int) value) & 0x000000ff)); - return this; - } - - final public float getFloat (int index) - { - // FIXME: this handles big endian only - return (float) (((get (index) & 0xff) << 24) - + (get (index + 1) & 0xff) << 16 - + (get (index + 2) & 0xff) << 8 - + (get (index + 3) & 0xff)); - } - - final public ByteBuffer putFloat (int index, float value) - { - // FIXME: this handles big endian only - put (index, (byte) ((((int) value) & 0xff000000) >> 24)); - put (index + 1, (byte) ((((int) value) & 0x00ff0000) >> 16)); - put (index + 2, (byte) ((((int) value) & 0x0000ff00) >> 8)); - put (index + 3, (byte) (((int) value) & 0x000000ff)); - return this; - } - - final public double getDouble () - { - // FIXME: this handles big endian only - return (double) (((get () & 0xff) << 56) - + (get () & 0xff) << 48 - + (get () & 0xff) << 40 - + (get () & 0xff) << 32 - + (get () & 0xff) << 24 - + (get () & 0xff) << 16 - + (get () & 0xff) << 8 - + (get () & 0xff)); - } - - final public ByteBuffer putDouble (double value) - { - // FIXME: this handles big endian only - put ((byte) ((((long) value) & 0xff00000000000000L) >> 56)); - put ((byte) ((((long) value) & 0x00ff000000000000L) >> 48)); - put ((byte) ((((long) value) & 0x0000ff0000000000L) >> 40)); - put ((byte) ((((long) value) & 0x000000ff00000000L) >> 32)); - put ((byte) ((((long) value) & 0x00000000ff000000L) >> 24)); - put ((byte) ((((long) value) & 0x0000000000ff0000L) >> 16)); - put ((byte) ((((long) value) & 0x000000000000ff00L) >> 8)); - put ((byte) (((long) value) & 0x00000000000000ffL)); - return this; - } - - final public double getDouble (int index) - { - // FIXME: this handles big endian only - return (double) (((get (index) & 0xff) << 56) - + (get (index + 1) & 0xff) << 48 - + (get (index + 2) & 0xff) << 40 - + (get (index + 3) & 0xff) << 32 - + (get (index + 4) & 0xff) << 24 - + (get (index + 5) & 0xff) << 16 - + (get (index + 6) & 0xff) << 8 - + (get (index + 7) & 0xff)); - } - - final public ByteBuffer putDouble (int index, double value) - { - // FIXME: this handles big endian only - put (index, (byte) ((((long) value) & 0xff00000000000000L) >> 56)); - put (index + 1, (byte) ((((long) value) & 0x00ff000000000000L) >> 48)); - put (index + 2, (byte) ((((long) value) & 0x0000ff0000000000L) >> 40)); - put (index + 3, (byte) ((((long) value) & 0x000000ff00000000L) >> 32)); - put (index + 4, (byte) ((((long) value) & 0x00000000ff000000L) >> 24)); - put (index + 5, (byte) ((((long) value) & 0x0000000000ff0000L) >> 16)); - put (index + 6, (byte) ((((long) value) & 0x000000000000ff00L) >> 8)); - put (index + 7, (byte) (((long) value) & 0x00000000000000ffL)); - return this; - } -} diff --git a/libjava/gnu/java/nio/DoubleBufferImpl.java b/libjava/gnu/java/nio/DoubleBufferImpl.java deleted file mode 100644 index dc80959..0000000 --- a/libjava/gnu/java/nio/DoubleBufferImpl.java +++ /dev/null @@ -1,162 +0,0 @@ -/* DoubleBufferImpl.java -- - Copyright (C) 2002, 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.DoubleBuffer; -import java.nio.ReadOnlyBufferException; - -/** - * This is a Heap memory implementation - */ -public final class DoubleBufferImpl extends DoubleBuffer -{ - private boolean readOnly; - - DoubleBufferImpl (int capacity) - { - this (new double [capacity], 0, capacity, capacity, 0, -1, false); - } - - DoubleBufferImpl (double[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly) - { - super (buffer, offset, capacity, limit, position, mark); - this.readOnly = readOnly; - } - - public boolean isReadOnly () - { - return readOnly; - } - - public DoubleBuffer slice () - { - return new DoubleBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public DoubleBuffer duplicate () - { - return new DoubleBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); - } - - public DoubleBuffer asReadOnlyBuffer () - { - return new DoubleBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); - } - - public DoubleBuffer compact () - { - int copied = 0; - - while (remaining () > 0) - { - put (copied, get ()); - copied++; - } - - position (copied); - return this; - } - - public boolean isDirect () - { - return false; - } - - /** - * Relative get method. Reads the next <code>double</code> from the buffer. - */ - final public double get () - { - double result = backing_buffer [position ()]; - position (position () + 1); - return result; - } - - /** - * Relative put method. Writes <code>value</code> to the next position - * in the buffer. - * - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public DoubleBuffer put (double value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [position ()] = value; - position (position () + 1); - return this; - } - - /** - * Absolute get method. Reads the <code>double</code> at position - * <code>index</code>. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - */ - final public double get (int index) - { - return backing_buffer [index]; - } - - /** - * Absolute put method. Writes <code>value</value> to position - * <code>index</code> in the buffer. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public DoubleBuffer put (int index, double value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [index] = value; - return this; - } - - final public ByteOrder order () - { - return ByteOrder.nativeOrder (); - } -} diff --git a/libjava/gnu/java/nio/DoubleViewBufferImpl.java b/libjava/gnu/java/nio/DoubleViewBufferImpl.java deleted file mode 100644 index d9e1b1b..0000000 --- a/libjava/gnu/java/nio/DoubleViewBufferImpl.java +++ /dev/null @@ -1,158 +0,0 @@ -/* DoubleViewBufferImpl.java -- - Copyright (C) 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.DoubleBuffer; - -class DoubleViewBufferImpl extends DoubleBuffer -{ - private boolean readOnly; - private int offset; - private ByteBuffer bb; - private ByteOrder endian; - - public DoubleViewBufferImpl (ByteBuffer bb, boolean readOnly) - { - super (bb.remaining () >> 3, bb.remaining () >> 3, bb.position (), 0); - this.bb = bb; - this.readOnly = readOnly; - // FIXME: What if this is called from DoubleByteBufferImpl and ByteBuffer has changed its endianess ? - this.endian = bb.order (); - } - - public DoubleViewBufferImpl (ByteBuffer bb, int offset, int capacity, - int limit, int position, int mark, - boolean readOnly) - { - super (limit >> 3, limit >> 3, position >> 3, mark >> 3); - this.bb = bb; - this.offset = offset; - this.readOnly = readOnly; - // FIXME: What if this is called from DoubleViewBufferImpl and ByteBuffer has changed its endianess ? - this.endian = bb.order (); - } - - public double get () - { - double result = bb.getDouble ((position () << 3) + offset); - position (position () + 1); - return result; - } - - public double get (int index) - { - return bb.getDouble ((index << 3) + offset); - } - - public DoubleBuffer put (double value) - { - bb.putDouble ((position () << 3) + offset, value); - position (position () + 1); - return this; - } - - public DoubleBuffer put (int index, double value) - { - bb.putDouble ((index << 3) + offset, value); - return this; - } - - public DoubleBuffer compact () - { - if (position () > 0) - { - // Copy all data from position() to limit() to the beginning of the - // buffer, set position to end of data and limit to capacity - // XXX: This can surely be optimized, for direct and non-direct buffers - - int count = limit () - position (); - - for (int i = 0; i < count; i++) - { - bb.putDouble ((i >> 3) + offset, - bb.getDouble (((i + position ()) >> 3) + offset)); - } - - position (count); - limit (capacity ()); - } - - return this; - } - - public DoubleBuffer duplicate () - { - // Create a copy of this object that shares its content - // FIXME: mark is not correct - return new DoubleViewBufferImpl (bb, offset, capacity (), limit (), - position (), -1, isReadOnly ()); - } - - public DoubleBuffer slice () - { - // Create a sliced copy of this object that shares its content. - return new DoubleViewBufferImpl (bb, (position () >> 3) + offset, - remaining (), remaining (), 0, -1, - isReadOnly ()); - } - - public DoubleBuffer asReadOnlyBuffer () - { - // Create a copy of this object that shares its content and is read-only - return new DoubleViewBufferImpl (bb, (position () >> 3) + offset, - remaining (), remaining (), 0, -1, true); - } - - public boolean isReadOnly () - { - return readOnly; - } - - public boolean isDirect () - { - return bb.isDirect (); - } - - public ByteOrder order () - { - return ByteOrder.LITTLE_ENDIAN; - } -} diff --git a/libjava/gnu/java/nio/FloatBufferImpl.java b/libjava/gnu/java/nio/FloatBufferImpl.java deleted file mode 100644 index 69acecf..0000000 --- a/libjava/gnu/java/nio/FloatBufferImpl.java +++ /dev/null @@ -1,162 +0,0 @@ -/* FloatBufferImpl.java -- - Copyright (C) 2002, 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.FloatBuffer; -import java.nio.ReadOnlyBufferException; - -/** - * This is a Heap memory implementation - */ -public final class FloatBufferImpl extends FloatBuffer -{ - private boolean readOnly; - - FloatBufferImpl (int capacity) - { - this (new float [capacity], 0, capacity, capacity, 0, -1, false); - } - - FloatBufferImpl (float[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly) - { - super (buffer, offset, capacity, limit, position, mark); - this.readOnly = readOnly; - } - - public boolean isReadOnly () - { - return readOnly; - } - - public FloatBuffer slice () - { - return new FloatBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public FloatBuffer duplicate () - { - return new FloatBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); - } - - public FloatBuffer asReadOnlyBuffer () - { - return new FloatBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); - } - - public FloatBuffer compact () - { - int copied = 0; - - while (remaining () > 0) - { - put (copied, get ()); - copied++; - } - - position (copied); - return this; - } - - public boolean isDirect () - { - return false; - } - - /** - * Relative get method. Reads the next <code>float</code> from the buffer. - */ - final public float get () - { - float result = backing_buffer [position ()]; - position (position () + 1); - return result; - } - - /** - * Relative put method. Writes <code>value</code> to the next position - * in the buffer. - * - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public FloatBuffer put (float value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [position ()] = value; - position (position () + 1); - return this; - } - - /** - * Absolute get method. Reads the <code>float</code> at position - * <code>index</code>. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - */ - final public float get (int index) - { - return backing_buffer [index]; - } - - /** - * Absolute put method. Writes <code>value</value> to position - * <code>index</code> in the buffer. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public FloatBuffer put (int index, float value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [index] = value; - return this; - } - - final public ByteOrder order () - { - return ByteOrder.nativeOrder (); - } -} diff --git a/libjava/gnu/java/nio/FloatViewBufferImpl.java b/libjava/gnu/java/nio/FloatViewBufferImpl.java deleted file mode 100644 index 9461203..0000000 --- a/libjava/gnu/java/nio/FloatViewBufferImpl.java +++ /dev/null @@ -1,158 +0,0 @@ -/* FloatViewBufferImpl.java -- - Copyright (C) 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.FloatBuffer; - -class FloatViewBufferImpl extends FloatBuffer -{ - private boolean readOnly; - private int offset; - private ByteBuffer bb; - private ByteOrder endian; - - public FloatViewBufferImpl (ByteBuffer bb, boolean readOnly) - { - super (bb.remaining () >> 2, bb.remaining () >> 2, bb.position (), 0); - this.bb = bb; - this.readOnly = readOnly; - // FIXME: What if this is called from FloatByteBufferImpl and ByteBuffer has changed its endianess ? - this.endian = bb.order (); - } - - public FloatViewBufferImpl (ByteBuffer bb, int offset, int capacity, - int limit, int position, int mark, - boolean readOnly) - { - super (limit >> 2, limit >> 2, position >> 2, mark >> 2); - this.bb = bb; - this.offset = offset; - this.readOnly = readOnly; - // FIXME: What if this is called from FloatViewBufferImpl and ByteBuffer has changed its endianess ? - this.endian = bb.order (); - } - - public float get () - { - float result = bb.getFloat ((position () << 2) + offset); - position (position () + 1); - return result; - } - - public float get (int index) - { - return bb.getFloat ((index << 2) + offset); - } - - public FloatBuffer put (float value) - { - bb.putFloat ((position () << 2) + offset, value); - position (position () + 1); - return this; - } - - public FloatBuffer put (int index, float value) - { - bb.putFloat ((index << 2) + offset, value); - return this; - } - - public FloatBuffer compact () - { - if (position () > 0) - { - // Copy all data from position() to limit() to the beginning of the - // buffer, set position to end of data and limit to capacity - // XXX: This can surely be optimized, for direct and non-direct buffers - - int count = limit () - position (); - - for (int i = 0; i < count; i++) - { - bb.putFloat ((i >> 2) + offset, - bb.getFloat (((i + position ()) >> 2) + offset)); - } - - position (count); - limit (capacity ()); - } - - return this; - } - - public FloatBuffer duplicate () - { - // Create a copy of this object that shares its content - // FIXME: mark is not correct - return new FloatViewBufferImpl (bb, offset, capacity (), limit (), - position (), -1, isReadOnly ()); - } - - public FloatBuffer slice () - { - // Create a sliced copy of this object that shares its content. - return new FloatViewBufferImpl (bb, (position () >> 2) + offset, - remaining (), remaining (), 0, -1, - isReadOnly ()); - } - - public FloatBuffer asReadOnlyBuffer () - { - // Create a copy of this object that shares its content and is read-only - return new FloatViewBufferImpl (bb, (position () >> 2) + offset, - remaining (), remaining (), 0, -1, true); - } - - public boolean isReadOnly () - { - return readOnly; - } - - public boolean isDirect () - { - return bb.isDirect (); - } - - public ByteOrder order () - { - return ByteOrder.LITTLE_ENDIAN; - } -} diff --git a/libjava/gnu/java/nio/IntBufferImpl.java b/libjava/gnu/java/nio/IntBufferImpl.java deleted file mode 100644 index 573e5e0..0000000 --- a/libjava/gnu/java/nio/IntBufferImpl.java +++ /dev/null @@ -1,162 +0,0 @@ -/* IntBufferImpl.java -- - Copyright (C) 2002, 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.IntBuffer; -import java.nio.ReadOnlyBufferException; - -/** - * This is a Heap memory implementation - */ -public final class IntBufferImpl extends IntBuffer -{ - private boolean readOnly; - - IntBufferImpl (int capacity) - { - this (new int [capacity], 0, capacity, capacity, 0, -1, false); - } - - IntBufferImpl (int[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly) - { - super (buffer, offset, capacity, limit, position, mark); - this.readOnly = readOnly; - } - - public boolean isReadOnly () - { - return readOnly; - } - - public IntBuffer slice () - { - return new IntBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public IntBuffer duplicate () - { - return new IntBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); - } - - public IntBuffer asReadOnlyBuffer () - { - return new IntBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); - } - - public IntBuffer compact () - { - int copied = 0; - - while (remaining () > 0) - { - put (copied, get ()); - copied++; - } - - position (copied); - return this; - } - - public boolean isDirect () - { - return false; - } - - /** - * Relative get method. Reads the next <code>int</code> from the buffer. - */ - final public int get () - { - int result = backing_buffer [position ()]; - position (position () + 1); - return result; - } - - /** - * Relative put method. Writes <code>value</code> to the next position - * in the buffer. - * - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public IntBuffer put (int value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [position ()] = value; - position (position () + 1); - return this; - } - - /** - * Absolute get method. Reads the <code>int</code> at position - * <code>index</code>. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - */ - final public int get (int index) - { - return backing_buffer [index]; - } - - /** - * Absolute put method. Writes <code>value</value> to position - * <code>index</code> in the buffer. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public IntBuffer put (int index, int value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [index] = value; - return this; - } - - final public ByteOrder order () - { - return ByteOrder.nativeOrder (); - } -} diff --git a/libjava/gnu/java/nio/IntViewBufferImpl.java b/libjava/gnu/java/nio/IntViewBufferImpl.java deleted file mode 100644 index d049eb3..0000000 --- a/libjava/gnu/java/nio/IntViewBufferImpl.java +++ /dev/null @@ -1,158 +0,0 @@ -/* IntViewBufferImpl.java -- - Copyright (C) 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.IntBuffer; - -class IntViewBufferImpl extends IntBuffer -{ - private boolean readOnly; - private int offset; - private ByteBuffer bb; - private ByteOrder endian; - - public IntViewBufferImpl (ByteBuffer bb, boolean readOnly) - { - super (bb.remaining () >> 2, bb.remaining () >> 2, bb.position (), 0); - this.bb = bb; - this.readOnly = readOnly; - // FIXME: What if this is called from IntByteBufferImpl and ByteBuffer has changed its endianess ? - this.endian = bb.order (); - } - - public IntViewBufferImpl (ByteBuffer bb, int offset, int capacity, - int limit, int position, int mark, - boolean readOnly) - { - super (limit >> 2, limit >> 2, position >> 2, mark >> 2); - this.bb = bb; - this.offset = offset; - this.readOnly = readOnly; - // FIXME: What if this is called from IntViewBufferImpl and ByteBuffer has changed its endianess ? - this.endian = bb.order (); - } - - public int get () - { - int result = bb.getInt ((position () << 2) + offset); - position (position () + 1); - return result; - } - - public int get (int index) - { - return bb.getInt ((index << 2) + offset); - } - - public IntBuffer put (int value) - { - bb.putInt ((position () << 2) + offset, value); - position (position () + 1); - return this; - } - - public IntBuffer put (int index, int value) - { - bb.putInt ((index << 2) + offset, value); - return this; - } - - public IntBuffer compact () - { - if (position () > 0) - { - // Copy all data from position() to limit() to the beginning of the - // buffer, set position to end of data and limit to capacity - // XXX: This can surely be optimized, for direct and non-direct buffers - - int count = limit () - position (); - - for (int i = 0; i < count; i++) - { - bb.putInt ((i >> 2) + offset, - bb.getInt (((i + position ()) >> 2) + offset)); - } - - position (count); - limit (capacity ()); - } - - return this; - } - - public IntBuffer duplicate () - { - // Create a copy of this object that shares its content - // FIXME: mark is not correct - return new IntViewBufferImpl (bb, offset, capacity (), limit (), - position (), -1, isReadOnly ()); - } - - public IntBuffer slice () - { - // Create a sliced copy of this object that shares its content. - return new IntViewBufferImpl (bb, (position () >> 2) + offset, - remaining (), remaining (), 0, -1, - isReadOnly ()); - } - - public IntBuffer asReadOnlyBuffer () - { - // Create a copy of this object that shares its content and is read-only - return new IntViewBufferImpl (bb, (position () >> 2) + offset, - remaining (), remaining (), 0, -1, true); - } - - public boolean isReadOnly () - { - return readOnly; - } - - public boolean isDirect () - { - return bb.isDirect (); - } - - public ByteOrder order () - { - return ByteOrder.LITTLE_ENDIAN; - } -} diff --git a/libjava/gnu/java/nio/LongBufferImpl.java b/libjava/gnu/java/nio/LongBufferImpl.java deleted file mode 100644 index e37ac8e..0000000 --- a/libjava/gnu/java/nio/LongBufferImpl.java +++ /dev/null @@ -1,162 +0,0 @@ -/* LongBufferImpl.java -- - Copyright (C) 2002, 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.LongBuffer; -import java.nio.ReadOnlyBufferException; - -/** - * This is a Heap memory implementation - */ -public final class LongBufferImpl extends LongBuffer -{ - private boolean readOnly; - - LongBufferImpl (int capacity) - { - this (new long [capacity], 0, capacity, capacity, 0, -1, false); - } - - LongBufferImpl (long[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly) - { - super (buffer, offset, capacity, limit, position, mark); - this.readOnly = readOnly; - } - - public boolean isReadOnly () - { - return readOnly; - } - - public LongBuffer slice () - { - return new LongBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public LongBuffer duplicate () - { - return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); - } - - public LongBuffer asReadOnlyBuffer () - { - return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); - } - - public LongBuffer compact () - { - int copied = 0; - - while (remaining () > 0) - { - put (copied, get ()); - copied++; - } - - position (copied); - return this; - } - - public boolean isDirect () - { - return false; - } - - /** - * Relative get method. Reads the next <code>long</code> from the buffer. - */ - final public long get () - { - long result = backing_buffer [position ()]; - position (position () + 1); - return result; - } - - /** - * Relative put method. Writes <code>value</code> to the next position - * in the buffer. - * - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public LongBuffer put (long value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [position ()] = value; - position (position () + 1); - return this; - } - - /** - * Absolute get method. Reads the <code>long</code> at position - * <code>index</code>. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - */ - final public long get (int index) - { - return backing_buffer [index]; - } - - /** - * Absolute put method. Writes <code>value</value> to position - * <code>index</code> in the buffer. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public LongBuffer put (int index, long value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [index] = value; - return this; - } - - final public ByteOrder order () - { - return ByteOrder.nativeOrder (); - } -} diff --git a/libjava/gnu/java/nio/LongViewBufferImpl.java b/libjava/gnu/java/nio/LongViewBufferImpl.java deleted file mode 100644 index 3742fca..0000000 --- a/libjava/gnu/java/nio/LongViewBufferImpl.java +++ /dev/null @@ -1,158 +0,0 @@ -/* LongViewBufferImpl.java -- - Copyright (C) 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.LongBuffer; - -class LongViewBufferImpl extends LongBuffer -{ - private boolean readOnly; - private int offset; - private ByteBuffer bb; - private ByteOrder endian; - - public LongViewBufferImpl (ByteBuffer bb, boolean readOnly) - { - super (bb.remaining () >> 3, bb.remaining () >> 3, bb.position (), 0); - this.bb = bb; - this.readOnly = readOnly; - // FIXME: What if this is called from LongByteBufferImpl and ByteBuffer has changed its endianess ? - this.endian = bb.order (); - } - - public LongViewBufferImpl (ByteBuffer bb, int offset, int capacity, - int limit, int position, int mark, - boolean readOnly) - { - super (limit >> 3, limit >> 3, position >> 3, mark >> 3); - this.bb = bb; - this.offset = offset; - this.readOnly = readOnly; - // FIXME: What if this is called from LongViewBufferImpl and ByteBuffer has changed its endianess ? - this.endian = bb.order (); - } - - public long get () - { - long result = bb.getLong ((position () << 3) + offset); - position (position () + 1); - return result; - } - - public long get (int index) - { - return bb.getLong ((index << 3) + offset); - } - - public LongBuffer put (long value) - { - bb.putLong ((position () << 3) + offset, value); - position (position () + 1); - return this; - } - - public LongBuffer put (int index, long value) - { - bb.putLong ((index << 3) + offset, value); - return this; - } - - public LongBuffer compact () - { - if (position () > 0) - { - // Copy all data from position() to limit() to the beginning of the - // buffer, set position to end of data and limit to capacity - // XXX: This can surely be optimized, for direct and non-direct buffers - - int count = limit () - position (); - - for (int i = 0; i < count; i++) - { - bb.putLong ((i >> 3) + offset, - bb.getLong (((i + position ()) >> 3) + offset)); - } - - position (count); - limit (capacity ()); - } - - return this; - } - - public LongBuffer duplicate () - { - // Create a copy of this object that shares its content - // FIXME: mark is not correct - return new LongViewBufferImpl (bb, offset, capacity (), limit (), - position (), -1, isReadOnly ()); - } - - public LongBuffer slice () - { - // Create a sliced copy of this object that shares its content. - return new LongViewBufferImpl (bb, (position () >> 3) + offset, - remaining (), remaining (), 0, -1, - isReadOnly ()); - } - - public LongBuffer asReadOnlyBuffer () - { - // Create a copy of this object that shares its content and is read-only - return new LongViewBufferImpl (bb, (position () >> 3) + offset, - remaining (), remaining (), 0, -1, true); - } - - public boolean isReadOnly () - { - return readOnly; - } - - public boolean isDirect () - { - return bb.isDirect (); - } - - public ByteOrder order () - { - return ByteOrder.LITTLE_ENDIAN; - } -} diff --git a/libjava/gnu/java/nio/ShortBufferImpl.java b/libjava/gnu/java/nio/ShortBufferImpl.java deleted file mode 100644 index 3dc625e..0000000 --- a/libjava/gnu/java/nio/ShortBufferImpl.java +++ /dev/null @@ -1,162 +0,0 @@ -/* ShortBufferImpl.java -- - Copyright (C) 2002, 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.ShortBuffer; -import java.nio.ReadOnlyBufferException; - -/** - * This is a Heap memory implementation - */ -public final class ShortBufferImpl extends ShortBuffer -{ - private boolean readOnly; - - ShortBufferImpl (int capacity) - { - this (new short [capacity], 0, capacity, capacity, 0, -1, false); - } - - ShortBufferImpl (short[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly) - { - super (buffer, offset, capacity, limit, position, mark); - this.readOnly = readOnly; - } - - public boolean isReadOnly () - { - return readOnly; - } - - public ShortBuffer slice () - { - return new ShortBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ()); - } - - public ShortBuffer duplicate () - { - return new ShortBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ()); - } - - public ShortBuffer asReadOnlyBuffer () - { - return new ShortBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true); - } - - public ShortBuffer compact () - { - int copied = 0; - - while (remaining () > 0) - { - put (copied, get ()); - copied++; - } - - position (copied); - return this; - } - - public boolean isDirect () - { - return false; - } - - /** - * Relative get method. Reads the next <code>short</code> from the buffer. - */ - final public short get () - { - short result = backing_buffer [position ()]; - position (position () + 1); - return result; - } - - /** - * Relative put method. Writes <code>value</code> to the next position - * in the buffer. - * - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public ShortBuffer put (short value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [position ()] = value; - position (position () + 1); - return this; - } - - /** - * Absolute get method. Reads the <code>short</code> at position - * <code>index</code>. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - */ - final public short get (int index) - { - return backing_buffer [index]; - } - - /** - * Absolute put method. Writes <code>value</value> to position - * <code>index</code> in the buffer. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - final public ShortBuffer put (int index, short value) - { - if (readOnly) - throw new ReadOnlyBufferException (); - - backing_buffer [index] = value; - return this; - } - - final public ByteOrder order () - { - return ByteOrder.nativeOrder (); - } -} diff --git a/libjava/gnu/java/nio/ShortViewBufferImpl.java b/libjava/gnu/java/nio/ShortViewBufferImpl.java deleted file mode 100644 index e7853bc..0000000 --- a/libjava/gnu/java/nio/ShortViewBufferImpl.java +++ /dev/null @@ -1,158 +0,0 @@ -/* ShortViewBufferImpl.java -- - Copyright (C) 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.nio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.ShortBuffer; - -class ShortViewBufferImpl extends ShortBuffer -{ - private boolean readOnly; - private int offset; - private ByteBuffer bb; - private ByteOrder endian; - - public ShortViewBufferImpl (ByteBuffer bb, boolean readOnly) - { - super (bb.remaining () >> 1, bb.remaining () >> 1, bb.position (), 0); - this.bb = bb; - this.readOnly = readOnly; - // FIXME: What if this is called from ShortByteBufferImpl and ByteBuffer has changed its endianess ? - this.endian = bb.order (); - } - - public ShortViewBufferImpl (ByteBuffer bb, int offset, int capacity, - int limit, int position, int mark, - boolean readOnly) - { - super (limit >> 1, limit >> 1, position >> 1, mark >> 1); - this.bb = bb; - this.offset = offset; - this.readOnly = readOnly; - // FIXME: What if this is called from ShortViewBufferImpl and ByteBuffer has changed its endianess ? - this.endian = bb.order (); - } - - public short get () - { - short result = bb.getShort ((position () << 1) + offset); - position (position () + 1); - return result; - } - - public short get (int index) - { - return bb.getShort ((index << 1) + offset); - } - - public ShortBuffer put (short value) - { - bb.putShort ((position () << 1) + offset, value); - position (position () + 1); - return this; - } - - public ShortBuffer put (int index, short value) - { - bb.putShort ((index << 1) + offset, value); - return this; - } - - public ShortBuffer compact () - { - if (position () > 0) - { - // Copy all data from position() to limit() to the beginning of the - // buffer, set position to end of data and limit to capacity - // XXX: This can surely be optimized, for direct and non-direct buffers - - int count = limit () - position (); - - for (int i = 0; i < count; i++) - { - bb.putShort ((i >> 1) + offset, - bb.getShort (((i + position ()) >> 1) + offset)); - } - - position (count); - limit (capacity ()); - } - - return this; - } - - public ShortBuffer duplicate () - { - // Create a copy of this object that shares its content - // FIXME: mark is not correct - return new ShortViewBufferImpl (bb, offset, capacity (), limit (), - position (), -1, isReadOnly ()); - } - - public ShortBuffer slice () - { - // Create a sliced copy of this object that shares its content. - return new ShortViewBufferImpl (bb, (position () >> 1) + offset, - remaining (), remaining (), 0, -1, - isReadOnly ()); - } - - public ShortBuffer asReadOnlyBuffer () - { - // Create a copy of this object that shares its content and is read-only - return new ShortViewBufferImpl (bb, (position () >> 1) + offset, - remaining (), remaining (), 0, -1, true); - } - - public boolean isReadOnly () - { - return readOnly; - } - - public boolean isDirect () - { - return bb.isDirect (); - } - - public ByteOrder order () - { - return ByteOrder.LITTLE_ENDIAN; - } -} diff --git a/libjava/gnu/java/nio/SocketChannelImpl.java b/libjava/gnu/java/nio/SocketChannelImpl.java index 65ca623..48cf585 100644 --- a/libjava/gnu/java/nio/SocketChannelImpl.java +++ b/libjava/gnu/java/nio/SocketChannelImpl.java @@ -194,20 +194,19 @@ public class SocketChannelImpl extends SocketChannel int bytes = 0; int len = src.position(); - if (src instanceof ByteBufferImpl) - { - ByteBufferImpl bi = (ByteBufferImpl) src; - byte[]b = bi.array(); - bytes = SocketWrite(fd, b, 0, len); - } + if (src.hasArray ()) + { + byte[] b = src.array (); + bytes = SocketWrite (fd, b, 0, len); + } else - { - byte[]b = new byte[len]; - src.get(b, 0, len); - bytes = SocketWrite(fd, b, 0, len); - } + { + byte[] b = new byte [len]; + src.get (b, 0, len); + bytes = SocketWrite (fd, b, 0, len); + } - return bytes; + return bytes; } public long write (ByteBuffer[] srcs, int offset, int length) diff --git a/libjava/gnu/java/nio/natDirectByteBufferImpl.cc b/libjava/gnu/java/nio/natDirectByteBufferImpl.cc deleted file mode 100644 index 5fd6cfc..0000000 --- a/libjava/gnu/java/nio/natDirectByteBufferImpl.cc +++ /dev/null @@ -1,45 +0,0 @@ -// natDirectByteBufferImpl.cc - -/* Copyright (C) 2003 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#include <config.h> - -#include <gcj/cni.h> -#include <jvm.h> - -#include <gnu/gcj/RawData.h> -#include <gnu/java/nio/DirectByteBufferImpl.h> - -gnu::gcj::RawData* -gnu::java::nio::DirectByteBufferImpl::allocateImpl (jint capacity) -{ - // FIXME: implement this - return 0; -} - -void -gnu::java::nio::DirectByteBufferImpl::freeImpl (gnu::gcj::RawData* address) -{ - // FIXME: implement this -} - -jbyte -gnu::java::nio::DirectByteBufferImpl::getImpl (jint index) -{ - // FIXME: implement this - // Dont forget: add offset to index - return 0; -} - -void -gnu::java::nio::DirectByteBufferImpl::putImpl (jint index, jbyte value) -{ - // FIXME: implement this - // Dont forget: add offset to index -} |