diff options
author | Michael Koch <konqueror@gmx.de> | 2003-02-11 11:16:18 +0000 |
---|---|---|
committer | Michael Koch <mkoch@gcc.gnu.org> | 2003-02-11 11:16:18 +0000 |
commit | 248606ee91171899cccbfafeead6ff6e6039ea6d (patch) | |
tree | 8d70c1cd582234d5bf13f28543498de380c7e6c9 /libjava/gnu/java/nio/ShortBufferImpl.java | |
parent | dfc7d8996515160bc008f5e4c942f3fdd4c96545 (diff) | |
download | gcc-248606ee91171899cccbfafeead6ff6e6039ea6d.zip gcc-248606ee91171899cccbfafeead6ff6e6039ea6d.tar.gz gcc-248606ee91171899cccbfafeead6ff6e6039ea6d.tar.bz2 |
ByteBufferImpl.java: Reformated and removed some code.
2003-02-11 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/ByteBufferImpl.java:
Reformated and removed some code.
(backing_buffer): Removed.
(array_offset): Removed.
(ro): Renamed to readOnly.
(ByteBufferImpl): Use parent constructor, initialize readOnly.
* gnu/java/nio/CharBufferImpl.java:
Reformated and removed some code.
(array_offset): Removed.
(ro): Renamed to readOnly.
(CharBufferImpl): Use parent constructor, initialize readOnly.
(inc_pos): Removed.
(order): New method.
* gnu/java/nio/DoubleBufferImpl.java:
Reformated and removed some code.
(array_offset): Removed.
(ro): Renamed to readOnly.
(DoubleBufferImpl): Use parent constructor, initialize readOnly.
(inc_pos): Removed.
(order): New method.
* gnu/java/nio/FloatBufferImpl.java:
Reformated and removed some code.
(array_offset): Removed.
(ro): Renamed to readOnly.
(FloatBufferImpl): Use parent constructor, initialize readOnly.
(inc_pos): Removed.
(order): New method.
* gnu/java/nio/IntBufferImpl.java:
Reformated and removed some code.
(array_offset): Removed.
(ro): Renamed to readOnly.
(IntBufferImpl): Use parent constructor, initialize readOnly.
(inc_pos): Removed.
(order): New method.
* gnu/java/nio/LongBufferImpl.java:
Reformated and removed some code.
(array_offset): Removed.
(ro): Renamed to readOnly.
(LongBufferImpl): Use parent constructor, initialize readOnly.
(inc_pos): Removed.
(order): New method.
* gnu/java/nio/ShortBufferImpl.java:
Reformated and removed some code.
(array_offset): Removed.
(ro): Renamed to readOnly.
(ShortBufferImpl): Use parent constructor, initialize readOnly.
(inc_pos): Removed.
(order): New method.
* Makefile.am
(ordinary_java_source_files): Added the following files:
gnu/java/nio/ByteBufferImpl.java
gnu/java/nio/CharBufferImpl.java
gnu/java/nio/DoubleBufferImpl.java
gnu/java/nio/FloatBufferImpl.java
gnu/java/nio/IntBufferImpl.java
gnu/java/nio/LongBufferImpl.java
gnu/java/nio/ShortBufferImpl.java
java/nio/DoubleBuffer.java
java/nio/FloatBuffer.java
java/nio/IntBuffer.java
java/nio/LongBuffer.java
java/nio/ShortBuffer.java
(nat_source_files): Added the following files:
gnu/java/nio/natByteBufferImpl.cc
gnu/java/nio/natCharBufferImpl.cc
gnu/java/nio/natDoubleBufferImpl.cc
gnu/java/nio/natFloatBufferImpl.cc
gnu/java/nio/natIntBufferImpl.cc
gnu/java/nio/natLongBufferImpl.cc
gnu/java/nio/natShortBufferImpl.cc
* Makefile.in: Regenerated.
From-SVN: r62692
Diffstat (limited to 'libjava/gnu/java/nio/ShortBufferImpl.java')
-rw-r--r-- | libjava/gnu/java/nio/ShortBufferImpl.java | 124 |
1 files changed, 47 insertions, 77 deletions
diff --git a/libjava/gnu/java/nio/ShortBufferImpl.java b/libjava/gnu/java/nio/ShortBufferImpl.java index bccb2d0..c55f098 100644 --- a/libjava/gnu/java/nio/ShortBufferImpl.java +++ b/libjava/gnu/java/nio/ShortBufferImpl.java @@ -38,100 +38,66 @@ 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.ByteOrder; import java.nio.ShortBuffer; +import java.nio.ReadOnlyBufferException; +/** + * This is a Heap memory implementation + */ public final class ShortBufferImpl extends ShortBuffer { - private int array_offset; - private boolean ro; + private boolean readOnly; public ShortBufferImpl(int cap, int off, int lim) { - this.backing_buffer = new short[cap]; - this.cap = cap ; - this.limit(lim); - this.position(off); + super (cap, lim, off, 0); + this.backing_buffer = new short [cap]; + readOnly = false; } public ShortBufferImpl(short[] array, int off, int lim) { + super (array.length, lim, off, 0); this.backing_buffer = array; - this.cap = array.length; - this.limit(lim); - this.position(off); + readOnly = false; } public ShortBufferImpl(ShortBufferImpl copy) { + super (copy.capacity (), copy.limit (), copy.position (), 0); backing_buffer = copy.backing_buffer; - ro = copy.ro; - limit(copy.limit()); - position(copy.position()); + readOnly = copy.isReadOnly (); } - void inc_pos(int a) + private static native short[] nio_cast (byte[] copy); + + ShortBufferImpl (byte[] copy) { - position(position() + a); + super (copy.length, copy.length, 0, 0); + this.backing_buffer = copy != null ? nio_cast (copy) : null; + readOnly = false; + } + + private static native byte nio_get_Byte (ShortBufferImpl b, int index, int limit); + + private static native void nio_put_Byte (ShortBufferImpl b, int index, int limit, byte value); + + public ByteBuffer asByteBuffer () + { + ByteBufferImpl res = new ByteBufferImpl (backing_buffer); + res.limit ((limit () * 1) / 2); + return res; } - - ShortBufferImpl(byte[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; } - private static native byte nio_get_Byte(ShortBufferImpl b, int index, int limit); - private static native void nio_put_Byte(ShortBufferImpl b, int index, int limit, byte value); - public ByteBuffer asByteBuffer() { ByteBufferImpl res = new ByteBufferImpl(backing_buffer); res.limit((limit()*1)/2); return res; } - - ShortBufferImpl(char[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; } - private static native char nio_get_Char(ShortBufferImpl b, int index, int limit); - private static native void nio_put_Char(ShortBufferImpl b, int index, int limit, char value); - public CharBuffer asCharBuffer() { CharBufferImpl res = new CharBufferImpl(backing_buffer); res.limit((limit()*2)/2); return res; } - - ShortBufferImpl(short[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; } - private static native short nio_get_Short(ShortBufferImpl b, int index, int limit); - private static native void nio_put_Short(ShortBufferImpl b, int index, int limit, short value); - public ShortBuffer asShortBuffer() { ShortBufferImpl res = new ShortBufferImpl(backing_buffer); res.limit((limit()*2)/2); return res; } - - ShortBufferImpl(int[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; } - private static native int nio_get_Int(ShortBufferImpl b, int index, int limit); - private static native void nio_put_Int(ShortBufferImpl b, int index, int limit, int value); - public IntBuffer asIntBuffer() { IntBufferImpl res = new IntBufferImpl(backing_buffer); res.limit((limit()*4)/2); return res; } - - ShortBufferImpl(long[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; } - private static native long nio_get_Long(ShortBufferImpl b, int index, int limit); - private static native void nio_put_Long(ShortBufferImpl b, int index, int limit, long value); - public LongBuffer asLongBuffer() { LongBufferImpl res = new LongBufferImpl(backing_buffer); res.limit((limit()*8)/2); return res; } - - ShortBufferImpl(float[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; } - private static native float nio_get_Float(ShortBufferImpl b, int index, int limit); - private static native void nio_put_Float(ShortBufferImpl b, int index, int limit, float value); - public FloatBuffer asFloatBuffer() { FloatBufferImpl res = new FloatBufferImpl(backing_buffer); res.limit((limit()*4)/2); return res; } - - ShortBufferImpl(double[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; } - private static native double nio_get_Double(ShortBufferImpl b, int index, int limit); - private static native void nio_put_Double(ShortBufferImpl b, int index, int limit, double value); - public DoubleBuffer asDoubleBuffer() { DoubleBufferImpl res = new DoubleBufferImpl(backing_buffer); res.limit((limit()*8)/2); return res; } - - private static native short[] nio_cast(byte[]copy); - private static native short[] nio_cast(char[]copy); - private static native short[] nio_cast(short[]copy); - private static native short[] nio_cast(long[]copy); - private static native short[] nio_cast(int[]copy); - private static native short[] nio_cast(float[]copy); - private static native short[] nio_cast(double[]copy); public boolean isReadOnly() { - return ro; + return readOnly; } public ShortBuffer slice() { - ShortBufferImpl a = new ShortBufferImpl(this); - a.array_offset = position(); - return a; + return new ShortBufferImpl (this); } public ShortBuffer duplicate() @@ -141,9 +107,9 @@ public final class ShortBufferImpl extends ShortBuffer public ShortBuffer asReadOnlyBuffer() { - ShortBufferImpl a = new ShortBufferImpl(this); - a.ro = true; - return a; + ShortBufferImpl result = new ShortBufferImpl (this); + result.readOnly = true; + return result; } public ShortBuffer compact() @@ -153,7 +119,7 @@ public final class ShortBufferImpl extends ShortBuffer public boolean isDirect() { - return backing_buffer != null; + return false; } final public short get() @@ -165,6 +131,9 @@ public final class ShortBufferImpl extends ShortBuffer final public ShortBuffer put(short b) { + if (readOnly) + throw new ReadOnlyBufferException (); + backing_buffer[position()] = b; position(position()+1); return this; @@ -177,14 +146,15 @@ public final class ShortBufferImpl extends ShortBuffer final public ShortBuffer put(int index, short b) { + if (readOnly) + throw new ReadOnlyBufferException (); + backing_buffer[index] = b; return this; } - - final public char getChar() { char a = nio_get_Char(this, position(), limit()); inc_pos(2); return a; } final public ShortBuffer putChar(char value) { nio_put_Char(this, position(), limit(), value); inc_pos(2); return this; } final public char getChar(int index) { char a = nio_get_Char(this, index, limit()); return a; } final public ShortBuffer putChar(int index, char value) { nio_put_Char(this, index, limit(), value); return this; }; - final public short getShort() { return get(); } final public ShortBuffer putShort(short value) { return put(value); } final public short getShort(int index) { return get(index); } final public ShortBuffer putShort(int index, short value) { return put(index, value); }; - final public int getInt() { int a = nio_get_Int(this, position(), limit()); inc_pos(4); return a; } final public ShortBuffer putInt(int value) { nio_put_Int(this, position(), limit(), value); inc_pos(4); return this; } final public int getInt(int index) { int a = nio_get_Int(this, index, limit()); return a; } final public ShortBuffer putInt(int index, int value) { nio_put_Int(this, index, limit(), value); return this; }; - final public long getLong() { long a = nio_get_Long(this, position(), limit()); inc_pos(8); return a; } final public ShortBuffer putLong(long value) { nio_put_Long(this, position(), limit(), value); inc_pos(8); return this; } final public long getLong(int index) { long a = nio_get_Long(this, index, limit()); return a; } final public ShortBuffer putLong(int index, long value) { nio_put_Long(this, index, limit(), value); return this; }; - final public float getFloat() { float a = nio_get_Float(this, position(), limit()); inc_pos(4); return a; } final public ShortBuffer putFloat(float value) { nio_put_Float(this, position(), limit(), value); inc_pos(4); return this; } final public float getFloat(int index) { float a = nio_get_Float(this, index, limit()); return a; } final public ShortBuffer putFloat(int index, float value) { nio_put_Float(this, index, limit(), value); return this; }; - final public double getDouble() { double a = nio_get_Double(this, position(), limit()); inc_pos(8); return a; } final public ShortBuffer putDouble(double value) { nio_put_Double(this, position(), limit(), value); inc_pos(8); return this; } final public double getDouble(int index) { double a = nio_get_Double(this, index, limit()); return a; } final public ShortBuffer putDouble(int index, double value) { nio_put_Double(this, index, limit(), value); return this; }; + + final public ByteOrder order () + { + return ByteOrder.BIG_ENDIAN; + } } |