public class NativeBytesStore<Underlying> extends AbstractBytesStore<NativeBytesStore<Underlying>,Underlying>
Modifier and Type | Field and Description |
---|---|
protected long |
address |
protected long |
limit |
protected long |
maximumLimit |
protected net.openhft.chronicle.core.Memory |
memory |
WARN_COUNT, WARN_NS
charToString
Modifier | Constructor and Description |
---|---|
|
NativeBytesStore(@NotNull ByteBuffer bb,
boolean elastic,
int maximumLimit) |
|
NativeBytesStore(long address,
long limit) |
|
NativeBytesStore(long address,
long limit,
@Nullable Runnable deallocator,
boolean elastic) |
protected |
NativeBytesStore(long address,
long limit,
@Nullable Runnable deallocator,
boolean elastic,
boolean monitored) |
Modifier and Type | Method and Description |
---|---|
int |
addAndGetInt(long offset,
int adding)
Perform an atomic add and get operation for a 32-bit int
|
long |
addAndGetLong(long offset,
long adding)
Perform an atomic add and get operation for a 64-bit long
|
long |
addressForRead(long offset)
Obtain the underlying addressForRead.
|
default long |
addressForRead(long offset,
int buffer) |
long |
addressForWrite(long offset)
Obtain the underlying addressForRead.
|
long |
addressForWritePosition() |
long |
appendUTF(long pos,
char[] chars,
int offset,
int length)
Deprecated.
|
long |
appendUtf8(long pos,
char[] chars,
int offset,
int length) |
int |
byteCheckSum()
Return the bytes sum of the readable bytes.
|
int |
byteCheckSum(long position,
long limit) |
default ByteOrder |
byteOrder() |
@NotNull VanillaBytes<Underlying> |
bytesForWrite() |
boolean |
canReadDirect(long length) |
long |
capacity() |
default boolean |
compareAndSwapDouble(long offset,
double expected,
double value)
Perform a 64-bit double CAS at a given offset.
|
default boolean |
compareAndSwapFloat(long offset,
float expected,
float value)
Perform a 32-bit float CAS at a given offset.
|
boolean |
compareAndSwapInt(long offset,
int expected,
int value)
Perform a 32-bit CAS at a given offset.
|
boolean |
compareAndSwapLong(long offset,
long expected,
long value)
Perform a 64-bit CAS at a given offset.
|
@NotNull BytesStore<NativeBytesStore<Underlying>,Underlying> |
copy() |
long |
copyTo(@NotNull BytesStore store)
Copy the data to another BytesStore as long as there is space available in the destination store.
|
long |
copyToDirect(@NotNull BytesStore store) |
static @NotNull NativeBytesStore<ByteBuffer> |
elasticByteBuffer() |
static @NotNull NativeBytesStore<ByteBuffer> |
elasticByteBuffer(int size,
long maxSize) |
boolean |
equals(Object obj) |
int |
fastHash(long offset,
int length) |
static @NotNull NativeBytesStore |
from(@NotNull byte[] bytes) |
static @NotNull NativeBytesStore |
from(@NotNull String text) |
void |
init(@NotNull ByteBuffer bb,
boolean elastic) |
boolean |
isDirectMemory() |
static @NotNull NativeBytesStore<Void> |
lazyNativeBytesStoreWithFixedCapacity(long capacity) |
void |
move(long from,
long to,
long length) |
void |
nativeRead(long position,
long address,
long size)
expert level method for copying data to native memory.
|
static @NotNull NativeBytesStore<Void> |
nativeStore(long capacity)
this is an elastic native store
|
static @NotNull NativeBytesStore<Void> |
nativeStoreWithFixedCapacity(long capacity) |
void |
nativeWrite(long address,
long position,
long size)
expert level method to copy data from native memory into the BytesStore
|
int |
peekUnsignedByte(long offset)
Read an unsigned byte at an offset, or -1
|
protected void |
performRelease() |
long |
read(long offsetInRDI,
byte[] bytes,
int offset,
int length) |
byte |
readByte(long offset)
Read byte at an offset
|
double |
readDouble(long offset)
Read a double at an offset
|
float |
readFloat(long offset)
Read a float at an offset
|
long |
readIncompleteLong(long offset)
Read a long which is zero padded (high bytes) if the available bytes is less than 8.
|
int |
readInt(long offset)
Read an int at an offset
|
default long |
readLimit() |
long |
readLong(long offset)
Read a long at an offset
|
short |
readShort(long offset)
Read a short at an offset
|
int |
readUnsignedByte(long offset)
Read an unsigned byte at an offset
|
byte |
readVolatileByte(long offset)
Read a 8-bit byte from memory with a load barrier.
|
int |
readVolatileInt(long offset)
Read a 32-bit int from memory with a load barrier.
|
long |
readVolatileLong(long offset)
Read a 64-bit long from memory with a load barrier.
|
short |
readVolatileShort(long offset)
Read a 16-bit short from memory with a load barrier.
|
long |
realCapacity()
Returns the actual capacity that can be potentially read.
|
long |
safeLimit() |
void |
setAddress(long address) |
boolean |
sharedMemory() |
void |
testAndSetInt(long offset,
int expected,
int value) |
@NotNull String |
toString() |
@NotNull ByteBuffer |
toTemporaryDirectByteBuffer() |
protected long |
translate(long offset) |
Underlying |
underlyingObject() |
void |
uninit() |
static <T> @NotNull NativeBytesStore<T> |
uninitialized() |
static @NotNull NativeBytesStore<ByteBuffer> |
wrap(@NotNull ByteBuffer bb)
Wraps a ByteBuffer which can be either on heap or off heap.
|
@NotNull NativeBytesStore<Underlying> |
write(long offsetInRDO,
byte[] bytes,
int offset,
int length) |
void |
write(long offsetInRDO,
@NotNull ByteBuffer bytes,
int offset,
int length) |
@NotNull NativeBytesStore<Underlying> |
write(long writeOffset,
@NotNull RandomDataInput bytes,
long readOffset,
long length) |
void |
write0(long offsetInRDO,
@NotNull RandomDataInput bytes,
long offset,
long length) |
@NotNull NativeBytesStore<Underlying> |
writeByte(long offset,
byte i8)
Write an unsigned byte at an offset.
|
@NotNull NativeBytesStore<Underlying> |
writeDouble(long offset,
double d)
Write a double at an offset.
|
@NotNull NativeBytesStore<Underlying> |
writeFloat(long offset,
float f)
Write a float at an offset.
|
@NotNull NativeBytesStore<Underlying> |
writeInt(long offset,
int i32)
Write an int at an offset.
|
default long |
writeLimit() |
@NotNull NativeBytesStore<Underlying> |
writeLong(long offset,
long i64)
Write a long at an offset.
|
@NotNull NativeBytesStore<Underlying> |
writeOrderedInt(long offset,
int i)
Perform a non stalling write with a store barrier.
|
@NotNull NativeBytesStore<Underlying> |
writeOrderedLong(long offset,
long i)
Perform a non stalling write with a store barrier.
|
default long |
writePosition()
The read position must be readPosition() <= writePosition() && writePosition() <= writeLimit()
|
@NotNull NativeBytesStore<Underlying> |
writeShort(long offset,
short i16)
Write a short at an offset.
|
@NotNull NativeBytesStore<Underlying> |
writeVolatileByte(long offset,
byte i8) |
@NotNull NativeBytesStore<Underlying> |
writeVolatileInt(long offset,
int i32) |
@NotNull NativeBytesStore<Underlying> |
writeVolatileLong(long offset,
long i64) |
@NotNull NativeBytesStore<Underlying> |
writeVolatileShort(long offset,
short i16) |
@NotNull NativeBytesStore<Underlying> |
zeroOut(long start,
long end)
Fill the BytesStore with zeros
|
hashCode, performReleaseInBackground, readPosition, readRemaining, start, writeRemaining
assertReferencesReleased, createdHere, disableReferenceTracing, enableReferenceTracing, refCount, referenceId, release, releaseLast, reserve, reservedBy, reserveTransfer, threadSafetyCheck, throwExceptionIfNotReleased, throwExceptionIfReleased, tryReserve, unmonitor, warnAndReleaseIfNotReleased
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
addAndGetByteNotAtomic, addAndGetDoubleNotAtomic, addAndGetFloatNotAtomic, addAndGetIntNotAtomic, addAndGetLongNotAtomic, addAndGetShortNotAtomic, addAndGetUnsignedByteNotAtomic, addAndGetUnsignedIntNotAtomic, addAndGetUnsignedShortNotAtomic, bytesForRead, bytesStore, charAt, cipher, cipher, contentEquals, copyTo, empty, endsWith, equalBytes, from, inside, inside, isClear, isEmpty, isPresent, isPresent, length, longCheckSum, nativePointer, readWrite, startsWith, startsWith, subSequence, to8bitString, toDebugString, toDebugString, wrap, wrap, writeMaxInt, writeMaxLong
addAndGetDouble, addAndGetFloat, compareUtf8, copyTo, copyTo, createCharToString, findByte, parseLong, peekVolatileInt, printable, readBoolean, readUnsignedInt, readUnsignedInt24, readUnsignedShort, readUtf8, readUtf8Limited, readUtf8Limited, readVolatileDouble, readVolatileFloat, subBytes, toByteArray
append, append, write, write, writeBoolean, writeByte, writeInt24, writeOrderedDouble, writeOrderedFloat, writeUnsignedByte, writeUnsignedInt, writeUnsignedShort, writeUtf8, writeUtf8Limited, writeVolatileDouble, writeVolatileFloat
refCount, release, releaseLast, releaseLast, reserve, reservedBy, reserveTransfer, tryReserve
referenceId, referenceName, temporary
chars, codePoints
protected long address
protected net.openhft.chronicle.core.Memory memory
protected long limit
protected long maximumLimit
public NativeBytesStore(@NotNull @NotNull ByteBuffer bb, boolean elastic, int maximumLimit)
public NativeBytesStore(long address, long limit)
public NativeBytesStore(long address, long limit, @Nullable @Nullable Runnable deallocator, boolean elastic)
protected NativeBytesStore(long address, long limit, @Nullable @Nullable Runnable deallocator, boolean elastic, boolean monitored)
@NotNull public static @NotNull NativeBytesStore<ByteBuffer> wrap(@NotNull @NotNull ByteBuffer bb)
BytesStore
bb
- to wrap@NotNull public static <T> @NotNull NativeBytesStore<T> uninitialized()
@NotNull public static @NotNull NativeBytesStore<Void> nativeStore(long capacity) throws IllegalArgumentException
capacity
- of the buffer.IllegalArgumentException
@NotNull public static @NotNull NativeBytesStore<Void> nativeStoreWithFixedCapacity(long capacity) throws IllegalArgumentException
IllegalArgumentException
@NotNull public static @NotNull NativeBytesStore<Void> lazyNativeBytesStoreWithFixedCapacity(long capacity) throws IllegalArgumentException
IllegalArgumentException
@NotNull public static @NotNull NativeBytesStore<ByteBuffer> elasticByteBuffer()
@NotNull public static @NotNull NativeBytesStore<ByteBuffer> elasticByteBuffer(int size, long maxSize)
@NotNull public static @NotNull NativeBytesStore from(@NotNull @NotNull String text)
@NotNull public static @NotNull NativeBytesStore from(@NotNull @NotNull byte[] bytes)
public boolean isDirectMemory()
public boolean canReadDirect(long length)
public void init(@NotNull @NotNull ByteBuffer bb, boolean elastic)
public void uninit()
public void move(long from, long to, long length) throws BufferUnderflowException
BufferUnderflowException
@NotNull public @NotNull BytesStore<NativeBytesStore<Underlying>,Underlying> copy()
@NotNull public @NotNull VanillaBytes<Underlying> bytesForWrite() throws IllegalStateException
IllegalStateException
public long realCapacity()
RandomDataInput
public long capacity()
@Nullable public Underlying underlyingObject()
@NotNull public @NotNull NativeBytesStore<Underlying> zeroOut(long start, long end)
BytesStore
start
- first byte inclusiveend
- last byte exclusive.public boolean compareAndSwapInt(long offset, int expected, int value)
offset
- to perform CASexpected
- valuevalue
- to setpublic void testAndSetInt(long offset, int expected, int value)
public boolean compareAndSwapLong(long offset, long expected, long value)
offset
- to perform CASexpected
- valuevalue
- to setpublic long addAndGetLong(long offset, long adding) throws BufferUnderflowException
RandomDataInput
offset
- to add and getadding
- value to add, can be 1BufferUnderflowException
- if the offset is outside the limits of the Bytespublic int addAndGetInt(long offset, int adding) throws BufferUnderflowException
RandomDataInput
offset
- to add and getadding
- value to add, can be 1BufferUnderflowException
- if the offset is outside the limits of the Bytesprotected long translate(long offset)
public byte readByte(long offset)
RandomDataInput
offset
- to readpublic int readUnsignedByte(long offset) throws BufferUnderflowException
RandomDataInput
offset
- to readBufferUnderflowException
- if the offset is outside the limits of the Bytespublic short readShort(long offset)
RandomDataInput
offset
- to readpublic int readInt(long offset)
RandomDataInput
offset
- to readpublic long readLong(long offset)
RandomDataInput
offset
- to readpublic float readFloat(long offset)
RandomDataInput
offset
- to readpublic double readDouble(long offset)
RandomDataInput
offset
- to readpublic byte readVolatileByte(long offset)
RandomDataInput
offset
- to readpublic short readVolatileShort(long offset)
RandomDataInput
offset
- to readpublic int readVolatileInt(long offset)
RandomDataInput
offset
- to readpublic long readVolatileLong(long offset)
RandomDataInput
offset
- to read@NotNull public @NotNull NativeBytesStore<Underlying> writeByte(long offset, byte i8)
RandomDataOutput
offset
- to write toi8
- the value@NotNull public @NotNull NativeBytesStore<Underlying> writeShort(long offset, short i16)
RandomDataOutput
offset
- to write toi16
- the value@NotNull public @NotNull NativeBytesStore<Underlying> writeInt(long offset, int i32)
RandomDataOutput
offset
- to write toi32
- the value@NotNull public @NotNull NativeBytesStore<Underlying> writeOrderedInt(long offset, int i)
RandomDataOutput
offset
- to write toi
- value to write@NotNull public @NotNull NativeBytesStore<Underlying> writeLong(long offset, long i64)
RandomDataOutput
offset
- to write toi64
- the value@NotNull public @NotNull NativeBytesStore<Underlying> writeOrderedLong(long offset, long i)
RandomDataOutput
offset
- to write toi
- value to write@NotNull public @NotNull NativeBytesStore<Underlying> writeFloat(long offset, float f)
RandomDataOutput
offset
- to write tof
- the value@NotNull public @NotNull NativeBytesStore<Underlying> writeDouble(long offset, double d)
RandomDataOutput
offset
- to write tod
- the value@NotNull public @NotNull NativeBytesStore<Underlying> writeVolatileByte(long offset, byte i8)
@NotNull public @NotNull NativeBytesStore<Underlying> writeVolatileShort(long offset, short i16)
@NotNull public @NotNull NativeBytesStore<Underlying> writeVolatileInt(long offset, int i32)
@NotNull public @NotNull NativeBytesStore<Underlying> writeVolatileLong(long offset, long i64)
@NotNull public @NotNull NativeBytesStore<Underlying> write(long offsetInRDO, byte[] bytes, int offset, int length)
public void write(long offsetInRDO, @NotNull @NotNull ByteBuffer bytes, int offset, int length)
@NotNull public @NotNull NativeBytesStore<Underlying> write(long writeOffset, @NotNull @NotNull RandomDataInput bytes, long readOffset, long length) throws BufferOverflowException, BufferUnderflowException
public void write0(long offsetInRDO, @NotNull @NotNull RandomDataInput bytes, long offset, long length) throws BufferUnderflowException
BufferUnderflowException
public long addressForRead(long offset) throws BufferUnderflowException
offset
- within this buffer. addressForRead(start()) is the actual addressForRead of the first byte.BufferUnderflowException
- if the offset is before the start() or the after the capacity()public long addressForWrite(long offset) throws BufferOverflowException
offset
- within this buffer. addressForRead(start()) is the actual addressForRead of the first byte.BufferOverflowException
- if the offset is before the start() or the after the capacity()public long addressForWritePosition() throws UnsupportedOperationException, BufferOverflowException
protected void performRelease()
performRelease
in class net.openhft.chronicle.core.io.AbstractReferenceCounted
@NotNull public @NotNull String toString()
toString
in interface CharSequence
toString
in class net.openhft.chronicle.core.io.AbstractReferenceCounted
public void nativeRead(long position, long address, long size) throws BufferUnderflowException
RandomDataInput
position
- within the ByteStore to copy.address
- in native memorysize
- in bytesBufferUnderflowException
- if the offset is outside the limits of the Bytespublic void nativeWrite(long address, long position, long size) throws BufferOverflowException
RandomDataOutput
address
- in native memory to copy fromposition
- in BytesStore to copy tosize
- in bytesBufferOverflowException
public long readIncompleteLong(long offset)
RandomDataInput
offset
- to read frompublic void setAddress(long address)
@Deprecated public long appendUTF(long pos, char[] chars, int offset, int length) throws BufferOverflowException
BufferOverflowException
public long appendUtf8(long pos, char[] chars, int offset, int length) throws BufferOverflowException
BufferOverflowException
public long copyTo(@NotNull @NotNull BytesStore store)
BytesStore
store
- to copy topublic long copyToDirect(@NotNull @NotNull BytesStore store)
@NotNull public @NotNull ByteBuffer toTemporaryDirectByteBuffer()
public int byteCheckSum() throws net.openhft.chronicle.core.io.IORuntimeException
BytesStore
net.openhft.chronicle.core.io.IORuntimeException
public int byteCheckSum(long position, long limit)
public boolean sharedMemory()
public long read(long offsetInRDI, byte[] bytes, int offset, int length)
public int peekUnsignedByte(long offset)
RandomDataInput
peekUnsignedByte
in interface RandomDataInput
peekUnsignedByte
in class AbstractBytesStore<NativeBytesStore<Underlying>,Underlying>
offset
- to readpublic int fastHash(long offset, int length) throws BufferUnderflowException
BufferUnderflowException
public long safeLimit()
public long writePosition()
public long readLimit()
public long writeLimit()
public long addressForRead(long offset, int buffer) throws UnsupportedOperationException, BufferUnderflowException
public ByteOrder byteOrder()
public boolean compareAndSwapFloat(long offset, float expected, float value) throws BufferOverflowException
offset
- to perform CASexpected
- valuevalue
- to setBufferOverflowException
public boolean compareAndSwapDouble(long offset, double expected, double value) throws BufferOverflowException
offset
- to perform CASexpected
- valuevalue
- to setBufferOverflowException
Copyright © 2020. All rights reserved.