/* * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ // -- This file was mechanically generated: Do not edit! -- // package java.nio; import java.io.FileDescriptor; import sun.misc.Cleaner; import sun.misc.Unsafe; import sun.misc.VM; import sun.nio.ch.DirectBuffer; class DirectByteBufferR extends DirectByteBuffer implements DirectBuffer { // Primary constructor // DirectByteBufferR(int cap) { // package-private super(cap); } // For memory-mapped buffers -- invoked by FileChannelImpl via reflection // protected DirectByteBufferR(int cap, long addr, FileDescriptor fd, Runnable unmapper) { super(cap, addr, fd, unmapper); } // For duplicates and slices // DirectByteBufferR(DirectBuffer db, // package-private int mark, int pos, int lim, int cap, int off) { super(db, mark, pos, lim, cap, off); } public ByteBuffer slice() { int pos = this.position(); int lim = this.limit(); assert (pos <= lim); int rem = (pos <= lim ? lim - pos : 0); int off = (pos << 0); assert (off >= 0); return new DirectByteBufferR(this, -1, 0, rem, rem, off); } public ByteBuffer duplicate() { return new DirectByteBufferR(this, this.markValue(), this.position(), this.limit(), this.capacity(), 0); } public ByteBuffer asReadOnlyBuffer() { return duplicate(); } public ByteBuffer put(byte x) { throw new ReadOnlyBufferException(); } public ByteBuffer put(int i, byte x) { throw new ReadOnlyBufferException(); } public ByteBuffer put(ByteBuffer src) { throw new ReadOnlyBufferException(); } public ByteBuffer put(byte[] src, int offset, int length) { throw new ReadOnlyBufferException(); } public ByteBuffer compact() { throw new ReadOnlyBufferException(); } public boolean isDirect() { return true; } public boolean isReadOnly() { return true; } byte _get(int i) { // package-private return unsafe.getByte(address + i); } void _put(int i, byte b) { // package-private throw new ReadOnlyBufferException(); } private ByteBuffer putChar(long a, char x) { throw new ReadOnlyBufferException(); } public ByteBuffer putChar(char x) { throw new ReadOnlyBufferException(); } public ByteBuffer putChar(int i, char x) { throw new ReadOnlyBufferException(); } public CharBuffer asCharBuffer() { int off = this.position(); int lim = this.limit(); assert (off <= lim); int rem = (off <= lim ? lim - off : 0); int size = rem >> 1; if (!unaligned && ((address + off) % (1 << 1) != 0)) { return (bigEndian ? (CharBuffer)(new ByteBufferAsCharBufferRB(this, -1, 0, size, size, off)) : (CharBuffer)(new ByteBufferAsCharBufferRL(this, -1, 0, size, size, off))); } else { return (nativeByteOrder ? (CharBuffer)(new DirectCharBufferRU(this, -1, 0, size, size, off)) : (CharBuffer)(new DirectCharBufferRS(this, -1, 0, size, size, off))); } } private ByteBuffer putShort(long a, short x) { throw new ReadOnlyBufferException(); } public ByteBuffer putShort(short x) { throw new ReadOnlyBufferException(); } public ByteBuffer putShort(int i, short x) { throw new ReadOnlyBufferException(); } public ShortBuffer asShortBuffer() { int off = this.position(); int lim = this.limit(); assert (off <= lim); int rem = (off <= lim ? lim - off : 0); int size = rem >> 1; if (!unaligned && ((address + off) % (1 << 1) != 0)) { return (bigEndian ? (ShortBuffer)(new ByteBufferAsShortBufferRB(this, -1, 0, size, size, off)) : (ShortBuffer)(new ByteBufferAsShortBufferRL(this, -1, 0, size, size, off))); } else { return (nativeByteOrder ? (ShortBuffer)(new DirectShortBufferRU(this, -1, 0, size, size, off)) : (ShortBuffer)(new DirectShortBufferRS(this, -1, 0, size, size, off))); } } private ByteBuffer putInt(long a, int x) { throw new ReadOnlyBufferException(); } public ByteBuffer putInt(int x) { throw new ReadOnlyBufferException(); } public ByteBuffer putInt(int i, int x) { throw new ReadOnlyBufferException(); } public IntBuffer asIntBuffer() { int off = this.position(); int lim = this.limit(); assert (off <= lim); int rem = (off <= lim ? lim - off : 0); int size = rem >> 2; if (!unaligned && ((address + off) % (1 << 2) != 0)) { return (bigEndian ? (IntBuffer)(new ByteBufferAsIntBufferRB(this, -1, 0, size, size, off)) : (IntBuffer)(new ByteBufferAsIntBufferRL(this, -1, 0, size, size, off))); } else { return (nativeByteOrder ? (IntBuffer)(new DirectIntBufferRU(this, -1, 0, size, size, off)) : (IntBuffer)(new DirectIntBufferRS(this, -1, 0, size, size, off))); } } private ByteBuffer putLong(long a, long x) { throw new ReadOnlyBufferException(); } public ByteBuffer putLong(long x) { throw new ReadOnlyBufferException(); } public ByteBuffer putLong(int i, long x) { throw new ReadOnlyBufferException(); } public LongBuffer asLongBuffer() { int off = this.position(); int lim = this.limit(); assert (off <= lim); int rem = (off <= lim ? lim - off : 0); int size = rem >> 3; if (!unaligned && ((address + off) % (1 << 3) != 0)) { return (bigEndian ? (LongBuffer)(new ByteBufferAsLongBufferRB(this, -1, 0, size, size, off)) : (LongBuffer)(new ByteBufferAsLongBufferRL(this, -1, 0, size, size, off))); } else { return (nativeByteOrder ? (LongBuffer)(new DirectLongBufferRU(this, -1, 0, size, size, off)) : (LongBuffer)(new DirectLongBufferRS(this, -1, 0, size, size, off))); } } private ByteBuffer putFloat(long a, float x) { throw new ReadOnlyBufferException(); } public ByteBuffer putFloat(float x) { throw new ReadOnlyBufferException(); } public ByteBuffer putFloat(int i, float x) { throw new ReadOnlyBufferException(); } public FloatBuffer asFloatBuffer() { int off = this.position(); int lim = this.limit(); assert (off <= lim); int rem = (off <= lim ? lim - off : 0); int size = rem >> 2; if (!unaligned && ((address + off) % (1 << 2) != 0)) { return (bigEndian ? (FloatBuffer)(new ByteBufferAsFloatBufferRB(this, -1, 0, size, size, off)) : (FloatBuffer)(new ByteBufferAsFloatBufferRL(this, -1, 0, size, size, off))); } else { return (nativeByteOrder ? (FloatBuffer)(new DirectFloatBufferRU(this, -1, 0, size, size, off)) : (FloatBuffer)(new DirectFloatBufferRS(this, -1, 0, size, size, off))); } } private ByteBuffer putDouble(long a, double x) { throw new ReadOnlyBufferException(); } public ByteBuffer putDouble(double x) { throw new ReadOnlyBufferException(); } public ByteBuffer putDouble(int i, double x) { throw new ReadOnlyBufferException(); } public DoubleBuffer asDoubleBuffer() { int off = this.position(); int lim = this.limit(); assert (off <= lim); int rem = (off <= lim ? lim - off : 0); int size = rem >> 3; if (!unaligned && ((address + off) % (1 << 3) != 0)) { return (bigEndian ? (DoubleBuffer)(new ByteBufferAsDoubleBufferRB(this, -1, 0, size, size, off)) : (DoubleBuffer)(new ByteBufferAsDoubleBufferRL(this, -1, 0, size, size, off))); } else { return (nativeByteOrder ? (DoubleBuffer)(new DirectDoubleBufferRU(this, -1, 0, size, size, off)) : (DoubleBuffer)(new DirectDoubleBufferRS(this, -1, 0, size, size, off))); } } }