本文整理了Java中net.openhft.chronicle.bytes.Bytes.readPosition()
方法的一些代码示例,展示了Bytes.readPosition()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Bytes.readPosition()
方法的具体详情如下:
包路径:net.openhft.chronicle.bytes.Bytes
类名称:Bytes
方法名:readPosition
暂无
代码示例来源:origin: OpenHFT/Chronicle-Queue
@NotNull
private ScanResult moveToIndexFromTheStart(@NotNull ExcerptContext ec, long index) {
try {
Wire wire = ec.wire();
wire.bytes().readPositionUnlimited(0);
if (wire.readDataHeader())
return linearScan(wire, index, 0, wire.bytes().readPosition());
} catch (EOFException fallback) {
return ScanResult.END_OF_FILE;
}
return ScanResult.NOT_FOUND;
}
代码示例来源:origin: OpenHFT/Chronicle-Queue
long linearScanByPosition0(@NotNull final Wire wire,
final long toPosition,
long indexOfNext,
while (bytes.readPosition() <= toPosition) {
WireIn.HeaderType headerType;
try {
if (!inclusive && toPosition == bytes.readPosition())
return i;
int header = bytes.readVolatileInt(bytes.readPosition());
throw new IllegalArgumentException(
"You can't know the index for an entry which hasn't been written. " +
"start: " + startAddress +
", at: " + bytes.readPosition() +
", header: " + Integer.toHexString(header) +
", toPos: " + toPosition);
if (bytes.readPosition() == toPosition)
return i;
int len = Wires.lengthOf(header);
assert Wires.isReady(header);
bytes.readSkip(len);
".readPosition()=" + bytes.readPosition() + ",toPosition=" + toPosition);
代码示例来源:origin: OpenHFT/Chronicle-Queue
@Override
public void dump(@NotNull Writer writer, long fromIndex, long toIndex) {
try {
long firstIndex = firstIndex();
writer.append("# index: ").append(Long.toHexString(dc.index())).append("\n");
Wire wire = dc.wire();
long start = wire.bytes().readPosition();
try {
text.clear();
wire.bytes().readPosition(start);
writer.append(wire.bytes()).append("\n");
代码示例来源:origin: net.openhft/chronicle-map
@NotNull
@Override
public final T read(@NotNull Bytes in, long size, @Nullable T using) {
if (using == null)
using = createInstance();
using.bytesStore(in.bytesStore(), in.readPosition(), size);
return using;
}
}
代码示例来源:origin: net.openhft/chronicle-bytes
/**
* @return a Bytes to wrap this ByteStore from the start() to the realCapacity().
* @throws IllegalStateException if this Bytes has been released.
*/
@Override
@NotNull
default Bytes<Underlying> bytesForRead() throws IllegalStateException {
try {
return bytesForWrite()
.readLimit(writeLimit())
.readPosition(start());
} catch (BufferUnderflowException e) {
throw new IllegalStateException(e);
}
}
代码示例来源:origin: net.openhft/chronicle-bytes
public static void parse8bit_SB1(@org.jetbrains.annotations.NotNull @NotNull Bytes bytes, @org.jetbrains.annotations.NotNull @NotNull StringBuilder sb, int utflen)
throws BufferUnderflowException {
if (utflen > bytes.readRemaining())
throw new BufferUnderflowException();
@Nullable NativeBytesStore nbs = (NativeBytesStore) bytes.bytesStore();
long offset = bytes.readPosition();
int count = BytesInternal.parse8bit_SB1(offset, nbs, sb, utflen);
bytes.readSkip(count);
}
代码示例来源:origin: net.openhft/chronicle-bytes
@org.jetbrains.annotations.NotNull
public static Bytes fromHexString(@org.jetbrains.annotations.NotNull String s) {
try {
Bytes in = Bytes.from(s);
Bytes out = Bytes.elasticByteBuffer();
OUTER:
while (in.readRemaining() > 0) {
in.parseHexLong();
for (int i = 0; i < 16; i++) {
if (in.peekUnsignedByte() == ' ') {
in.readSkip(1);
if (in.peekUnsignedByte() == ' ')
break OUTER;
}
long value = in.parseHexLong();
out.writeByte((byte) value);
}
if (in.readByte(in.readPosition() - 1) <= ' ')
in.readSkip(-1);
in.skipTo(StopCharTesters.CONTROL_STOP);
}
return out;
} catch (BufferUnderflowException | BufferOverflowException e) {
throw new AssertionError(e);
}
}
代码示例来源:origin: OpenHFT/Chronicle-Queue
@Nullable
public static MessageHistory readHistory(final DocumentContext dc, MessageHistory history) {
final Wire wire = dc.wire();
if (wire == null)
return null;
Object parent = wire.parent();
wire.parent(null);
try {
final Bytes<?> bytes = wire.bytes();
final byte code = bytes.readByte(bytes.readPosition());
history.reset();
return code == (byte) FIELD_NUMBER ?
readHistoryFromBytes(wire, history) :
readHistoryFromWire(wire, history);
} finally {
wire.parent(parent);
}
}
代码示例来源:origin: net.openhft/chronicle-bytes
/**
* The buffer is not modified by this call
*
* @param buffer the buffer to use
* @param position the position to create the string from
* @param len the number of characters to show in the string
* @return a string contain the text from offset {@code position}
*/
static String toString(@NotNull final Bytes buffer, long position, long len)
throws BufferUnderflowException {
final long pos = buffer.readPosition();
final long limit = buffer.readLimit();
buffer.readPositionRemaining(position, len);
try {
@NotNull final StringBuilder builder = new StringBuilder();
while (buffer.readRemaining() > 0) {
builder.append((char) buffer.readByte());
}
// remove the last comma
return builder.toString();
} finally {
buffer.readLimit(limit);
buffer.readPosition(pos);
}
}
代码示例来源:origin: net.openhft/chronicle-bytes
default void cipher(@NotNull Cipher cipher, @NotNull Bytes outBytes, @NotNull ByteBuffer using1, @NotNull ByteBuffer using2) throws IllegalStateException {
long readPos = outBytes.readPosition();
try {
long writePos = outBytes.writePosition();
} finally {
try {
outBytes.readPosition(readPos);
} catch (BufferUnderflowException e) {
代码示例来源:origin: OpenHFT/Chronicle-Queue
private void inACycleFound(Bytes<?> bytes) {
context.closeReadLimit(bytes.capacity());
wire().readAndSetLength(bytes.readPosition());
long end = bytes.readLimit();
context.closeReadPosition(end);
Jvm.optionalSafepoint();
}
代码示例来源:origin: OpenHFT/Chronicle-Queue
long moveToEnd(final Wire wire) {
Sequence sequence1 = this.sequence;
if (sequence1 != null) {
for (int i = 0; i < 128; i++) {
long endAddress = writePosition.getVolatileValue();
if (endAddress == 0)
return -1;
long sequence = sequence1.getSequence(endAddress);
if (sequence == Sequence.NOT_FOUND_RETRY)
continue;
if (sequence == Sequence.NOT_FOUND)
return -1;
Bytes<?> bytes = wire.bytes();
bytes.readPosition(endAddress);
for (; ; ) {
int header = bytes.readVolatileInt(endAddress);
if (header == 0 || Wires.isNotComplete(header))
return sequence;
int len = Wires.lengthOf(header) + 4;
bytes.readSkip(len);
endAddress += len;
if (Wires.isData(header))
sequence += 1;
}
}
}
return -1;
}
代码示例来源:origin: OpenHFT/Chronicle-Queue
public static long findWithinCycle(@NotNull Wire key,
@NotNull Comparator<Wire> c,
int cycle,
@NotNull ExcerptTailer tailer,
@NotNull SingleChronicleQueue q,
@NotNull final RollCycle rollCycle) {
final long readPosition = key.bytes().readPosition();
try {
long lowSeqNum = 0;
if (!dc.isPresent())
return -1;
key.bytes().readPosition(readPosition);
int cmp = c.compare(dc.wire(), key);
key.bytes().readPosition(readPosition);
代码示例来源:origin: net.openhft/chronicle-engine
private void readMarshallable(String path, @NotNull WireIn wire) {
@NotNull StringBuilder name = new StringBuilder();
while (!wire.isEmpty()) {
@NotNull ValueIn in = wire.read(name);
long pos = wire.bytes().readPosition();
@NotNull String path2 = path + "/" + name;
if (wire.getValueIn().isTyped()) {
wire.bytes().readPosition(pos);
@Nullable Object o = in.typedMarshallable();
installableMap.put(path2, (Installable) o);
} else {
in.marshallable(w -> this.readMarshallable(path2, w));
}
}
}
代码示例来源:origin: net.openhft/chronicle-bytes
@org.jetbrains.annotations.NotNull
@NotNull
public static Bytes asBytes(@org.jetbrains.annotations.NotNull @NotNull RandomDataOutput bytes, long position, long limit)
throws IllegalStateException, BufferOverflowException, BufferUnderflowException {
Bytes sbytes = bytes.bytesForWrite();
sbytes.writeLimit(limit);
sbytes.readLimit(limit);
sbytes.readPosition(position);
return sbytes;
}
代码示例来源:origin: net.openhft/chronicle-bytes
private static void readUtf8_SB1(
@org.jetbrains.annotations.NotNull @NotNull Bytes bytes, @org.jetbrains.annotations.NotNull @NotNull StringBuilder appendable, @org.jetbrains.annotations.NotNull @NotNull StopCharTester tester)
throws IOException, BufferUnderflowException {
@org.jetbrains.annotations.Nullable NativeBytesStore nb = (NativeBytesStore) bytes.bytesStore();
int i = 0, len = Maths.toInt32(bytes.readRemaining());
long address = nb.address + nb.translate(bytes.readPosition());
@org.jetbrains.annotations.Nullable Memory memory = nb.memory;
break;
if (tester.isStopChar(c)) {
bytes.readSkip(i + 1);
StringUtils.setCount(appendable, i);
return;
break;
if (tester.isStopChar(c)) {
bytes.readSkip(i + 1);
StringUtils.setCount(appendable, i);
return;
bytes.readSkip(i);
if (i < len) {
readUtf8_SB2(bytes, appendable, tester);
代码示例来源:origin: net.openhft/chronicle-bytes
/**
* converts the bytes to a ISO-8859-1 String, the end of the string is either the bytes .limit
* () or a byte containing the stopByte ( which ever comes first ). If the string can be
* obtained from the pool, this string is used instead. otherwise, the string is added to the
* pool.
*
* @param bytes the bytes to convert to a string
* @param length parse the string up to the length
* @return the string made from bytes only ( rather than chars )
*/
public String intern(@NotNull final Bytes bytes, int length) {
try {
int hash32 = BytesStoreHash.hash32(bytes, length);
int h = hash32 & mask;
String s = interner[h];
long position = bytes.readPosition();
if (BytesUtil.bytesEqual(s, bytes, position, length))
return s;
int h2 = (hash32 >> shift) & mask;
String s2 = interner[h2];
if (BytesUtil.bytesEqual(s2, bytes, position, length))
return s2;
char[] chars = toCharArray(bytes, position, length);
return interner[s == null || (s2 != null && toggle()) ? h : h2] = StringUtils.newString(chars);
} finally {
bytes.readSkip(length);
}
}
}
代码示例来源:origin: net.openhft/chronicle-map
@Override
public T getUsing(@Nullable T using) {
try {
T result = (T) new ObjectInputStream(in).readObject();
bytes.readPosition(0);
return result;
} catch (IOException | ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
代码示例来源:origin: net.openhft/chronicle-bytes
public static String toHexString(@org.jetbrains.annotations.NotNull @NotNull final Bytes bytes, long offset, long len)
throws BufferUnderflowException {
if (len == 0)
@org.jetbrains.annotations.NotNull int[] lastLine = new int[width];
@org.jetbrains.annotations.NotNull String sep = "";
long position = bytes.readPosition();
long limit = bytes.readLimit();
bytes.readLimit(limit);
bytes.readPosition(position);
代码示例来源:origin: net.openhft/chronicle-queue
long linearScanByPosition0(@NotNull final Wire wire,
final long toPosition,
long indexOfNext,
while (bytes.readPosition() <= toPosition) {
WireIn.HeaderType headerType;
try {
if (!inclusive && toPosition == bytes.readPosition())
return i;
int header = bytes.readVolatileInt(bytes.readPosition());
throw new IllegalArgumentException(
"You can't know the index for an entry which hasn't been written. " +
"start: " + startAddress +
", at: " + bytes.readPosition() +
", header: " + Integer.toHexString(header) +
", toPos: " + toPosition);
if (bytes.readPosition() == toPosition)
return i;
int len = Wires.lengthOf(header);
assert Wires.isReady(header);
bytes.readSkip(len);
".readPosition()=" + bytes.readPosition() + ",toPosition=" + toPosition);
内容来源于网络,如有侵权,请联系作者删除!