public class MappedResizeableBuffer
extends java.lang.Object
implements java.lang.AutoCloseable
This buffer is resizable and based upon an underlying FileChannel. The channel is not closed when the buffer is closed.
Note: The resize method is not threadsafe. Concurrent access should only occur after a successful resize.
Constructor and Description |
---|
MappedResizeableBuffer(java.nio.channels.FileChannel fileChannel,
long offset,
long initialLength)
Attach a view to an off-heap memory region by address.
|
Modifier and Type | Method and Description |
---|---|
int |
addIntOrdered(long index,
int increment) |
long |
addLongOrdered(long index,
long increment) |
long |
addressOffset()
Address offset in memory at which the mapping begins.
|
void |
boundsCheck(long index,
int length) |
long |
capacity() |
void |
checkLimit(long limit) |
void |
close() |
boolean |
compareAndSetInt(long index,
int expectedValue,
int updateValue) |
boolean |
compareAndSetLong(long index,
long expectedValue,
long updateValue) |
java.nio.channels.FileChannel |
fileChannel()
FileChannel that this buffer is mapping over. |
int |
getAndAddInt(long index,
int delta) |
long |
getAndAddLong(long index,
long delta) |
int |
getAndSetInt(long index,
int value) |
long |
getAndSetLong(long index,
long value) |
byte |
getByte(long index) |
void |
getBytes(long index,
byte[] dst) |
void |
getBytes(long index,
byte[] dst,
long offset,
int length) |
void |
getBytes(long index,
java.nio.ByteBuffer dstBuffer,
int length) |
byte |
getByteVolatile(long index) |
char |
getChar(long index) |
char |
getChar(long index,
java.nio.ByteOrder byteOrder) |
char |
getCharVolatile(long index) |
double |
getDouble(long index) |
double |
getDouble(long index,
java.nio.ByteOrder byteOrder) |
float |
getFloat(long index) |
float |
getFloat(long index,
java.nio.ByteOrder byteOrder) |
int |
getInt(long index) |
int |
getInt(long index,
java.nio.ByteOrder byteOrder) |
int |
getIntVolatile(long index) |
long |
getLong(long index) |
long |
getLong(long index,
java.nio.ByteOrder byteOrder) |
long |
getLongVolatile(long index) |
short |
getShort(long index) |
short |
getShort(long index,
java.nio.ByteOrder byteOrder) |
short |
getShortVolatile(long index) |
java.lang.String |
getStringUtf8(long offset) |
java.lang.String |
getStringUtf8(long offset,
java.nio.ByteOrder byteOrder) |
java.lang.String |
getStringUtf8(long offset,
int length) |
java.lang.String |
getStringWithoutLengthUtf8(long offset,
int length) |
void |
putByte(long index,
byte value) |
void |
putBytes(long index,
byte[] src) |
void |
putBytes(long index,
byte[] src,
long offset,
int length) |
void |
putBytes(long index,
java.nio.ByteBuffer srcBuffer,
int length) |
void |
putBytes(long index,
java.nio.ByteBuffer srcBuffer,
long srcIndex,
int length) |
void |
putBytes(long index,
DirectBuffer srcBuffer,
int srcIndex,
int length) |
void |
putByteVolatile(long index,
byte value) |
void |
putChar(long index,
char value) |
void |
putChar(long index,
char value,
java.nio.ByteOrder byteOrder) |
void |
putCharVolatile(long index,
char value) |
void |
putDouble(long index,
double value) |
void |
putDouble(long index,
double value,
java.nio.ByteOrder byteOrder) |
void |
putFloat(long index,
float value) |
void |
putFloat(long index,
float value,
java.nio.ByteOrder byteOrder) |
void |
putInt(long index,
int value) |
void |
putInt(long index,
int value,
java.nio.ByteOrder byteOrder) |
void |
putIntOrdered(long index,
int value) |
void |
putIntVolatile(long index,
int value) |
void |
putLong(long index,
long value) |
void |
putLong(long index,
long value,
java.nio.ByteOrder byteOrder) |
void |
putLongOrdered(long index,
long value) |
void |
putLongVolatile(long index,
long value) |
void |
putShort(long index,
short value) |
void |
putShort(long index,
short value,
java.nio.ByteOrder byteOrder) |
void |
putShortVolatile(long index,
short value) |
int |
putStringUtf8(long offset,
java.lang.String value) |
int |
putStringUtf8(long offset,
java.lang.String value,
java.nio.ByteOrder byteOrder) |
int |
putStringUtf8(long offset,
java.lang.String value,
java.nio.ByteOrder byteOrder,
int maxEncodedSize) |
int |
putStringUtf8(long offset,
java.lang.String value,
int maxEncodedSize) |
int |
putStringWithoutLengthUtf8(long offset,
java.lang.String value) |
void |
resize(long newLength) |
void |
setMemory(long index,
int length,
byte value) |
void |
verifyAlignment() |
void |
wrap(java.nio.channels.FileChannel fileChannel,
long offset,
long length)
Remap the buffer based on a new file, offset and a length
|
void |
wrap(long offset,
long length)
Remap the buffer using the existing file based on a new offset and length
|
public MappedResizeableBuffer(java.nio.channels.FileChannel fileChannel, long offset, long initialLength)
fileChannel
- the file to mapoffset
- the offset of the file to start the mappinginitialLength
- of the buffer from the given addresspublic void close()
close
in interface java.lang.AutoCloseable
public void resize(long newLength)
public void wrap(long offset, long length)
offset
- the offset of the file to start the mappinglength
- of the buffer from the given addresspublic void wrap(java.nio.channels.FileChannel fileChannel, long offset, long length)
fileChannel
- the file to mapoffset
- the offset of the file to start the mappinglength
- of the buffer from the given addresspublic long addressOffset()
public java.nio.channels.FileChannel fileChannel()
FileChannel
that this buffer is mapping over.FileChannel
that this buffer is mapping over.public void setMemory(long index, int length, byte value)
public long capacity()
public void checkLimit(long limit)
public void verifyAlignment()
public long getLong(long index, java.nio.ByteOrder byteOrder)
public void putLong(long index, long value, java.nio.ByteOrder byteOrder)
public long getLong(long index)
public void putLong(long index, long value)
public long getLongVolatile(long index)
public void putLongVolatile(long index, long value)
public void putLongOrdered(long index, long value)
public long addLongOrdered(long index, long increment)
public boolean compareAndSetLong(long index, long expectedValue, long updateValue)
public long getAndSetLong(long index, long value)
public long getAndAddLong(long index, long delta)
public int getInt(long index, java.nio.ByteOrder byteOrder)
public void putInt(long index, int value, java.nio.ByteOrder byteOrder)
public int getInt(long index)
public void putInt(long index, int value)
public int getIntVolatile(long index)
public void putIntVolatile(long index, int value)
public void putIntOrdered(long index, int value)
public int addIntOrdered(long index, int increment)
public boolean compareAndSetInt(long index, int expectedValue, int updateValue)
public int getAndSetInt(long index, int value)
public int getAndAddInt(long index, int delta)
public double getDouble(long index, java.nio.ByteOrder byteOrder)
public void putDouble(long index, double value, java.nio.ByteOrder byteOrder)
public double getDouble(long index)
public void putDouble(long index, double value)
public float getFloat(long index, java.nio.ByteOrder byteOrder)
public void putFloat(long index, float value, java.nio.ByteOrder byteOrder)
public float getFloat(long index)
public void putFloat(long index, float value)
public short getShort(long index, java.nio.ByteOrder byteOrder)
public void putShort(long index, short value, java.nio.ByteOrder byteOrder)
public short getShort(long index)
public void putShort(long index, short value)
public short getShortVolatile(long index)
public void putShortVolatile(long index, short value)
public byte getByte(long index)
public void putByte(long index, byte value)
public byte getByteVolatile(long index)
public void putByteVolatile(long index, byte value)
public void getBytes(long index, byte[] dst)
public void getBytes(long index, byte[] dst, long offset, int length)
public void getBytes(long index, java.nio.ByteBuffer dstBuffer, int length)
public void putBytes(long index, byte[] src)
public void putBytes(long index, byte[] src, long offset, int length)
public void putBytes(long index, java.nio.ByteBuffer srcBuffer, int length)
public void putBytes(long index, java.nio.ByteBuffer srcBuffer, long srcIndex, int length)
public void putBytes(long index, DirectBuffer srcBuffer, int srcIndex, int length)
public char getChar(long index, java.nio.ByteOrder byteOrder)
public void putChar(long index, char value, java.nio.ByteOrder byteOrder)
public char getChar(long index)
public void putChar(long index, char value)
public char getCharVolatile(long index)
public void putCharVolatile(long index, char value)
public java.lang.String getStringUtf8(long offset)
public java.lang.String getStringUtf8(long offset, java.nio.ByteOrder byteOrder)
public java.lang.String getStringUtf8(long offset, int length)
public int putStringUtf8(long offset, java.lang.String value)
public int putStringUtf8(long offset, java.lang.String value, java.nio.ByteOrder byteOrder)
public int putStringUtf8(long offset, java.lang.String value, int maxEncodedSize)
public int putStringUtf8(long offset, java.lang.String value, java.nio.ByteOrder byteOrder, int maxEncodedSize)
public java.lang.String getStringWithoutLengthUtf8(long offset, int length)
public int putStringWithoutLengthUtf8(long offset, java.lang.String value)
public void boundsCheck(long index, int length)
Copyright © 2014-2019 Real Logic Ltd. All Rights Reserved.