private static WireOut intForBinding(ValueOut wireOut, final LongValue value) { return value instanceof TwoLongValue ? wireOut.int128forBinding(0L, 0L, (TwoLongValue) value) : wireOut.int64forBinding(0L, value); }
@Override public void writeMarshallable(@NotNull WireOut wire) { wire .write(MetaDataField.wireType).object(wireType) .write(MetaDataField.recovery).typedMarshallable(recovery); if (metadata != Metadata.NoMeta.INSTANCE) wire.write(MetaDataField.metadata).typedMarshallable(this.metadata); // align to a word whether needed or not as a micro-optimisation. wire.writeAlignTo(Integer.BYTES, 0); }
@Override public void writeMarshallable(@NotNull WireOut wire) { wire.write(IndexingFields.indexCount).int64(indexCount) .write(IndexingFields.indexSpacing).int64(indexSpacing) .write(IndexingFields.index2Index).int64forBinding(0L, index2Index) .write(IndexingFields.lastIndex).int64forBinding(0L, nextEntryToBeIndexed); }
@NotNull private List<Integer> fillResults(@NotNull ExcerptTailer tailer, @NotNull List<Integer> results) { for (int i = 0; i < 10; i++) { try (DocumentContext documentContext = tailer.readingDocument()) { if (!documentContext.isPresent()) break; results.add(documentContext.wire().read(() -> "msg").int32()); } } return results; }
private static void expectValue(final int expectedValue, final ExcerptTailer tailer) { try (final DocumentContext documentContext = tailer.readingDocument()) { assertTrue(documentContext.isPresent()); assertEquals(expectedValue, documentContext.wire().getValueIn().int32()); } }
@NotNull private Wire toWire(int key) { final MyData myData = new MyData(); myData.key = key; myData.value = Integer.toString(key); Wire result = WireType.BINARY.apply(Bytes.elasticByteBuffer()); try (final DocumentContext dc = result.writingDocument()) { dc.wire().getValueOut().typedMarshallable(myData); } return result; }
@Test public void testCheckIndexWithWritingDocument() { doTestCheckIndex( (appender, n) -> { try (final DocumentContext dc = appender.writingDocument()) { dc.wire().writeEventName("").object("" + n); } }); }
@Override public boolean readDocument(@NotNull ReadMarshallable reader) { try (@NotNull DocumentContext dc = readingDocument(false)) { if (!dc.isPresent()) return false; reader.readMarshallable(dc.wire()); } return true; }
@Override public void writeMarshallable(@NotNull WireOut wire) { ValueOut wireOut = wire.write(MetaDataField.writePosition); intForBinding(wireOut, writePosition).write(MetaDataField.indexing).typedMarshallable(this.indexing); wire.padToCacheAlign(); }
private static MessageHistory readHistoryFromWire(final Wire wire, MessageHistory history) { final StringBuilder sb = SBP.acquireStringBuilder(); ValueIn valueIn = wire.read(sb); if (!MethodReader.HISTORY.contentEquals(sb)) return null; valueIn.object(history, MessageHistory.class); return history; }
@Override public void accept(final WireIn wireIn, final Consumer<String> messageHandler) { long elementCount = 0; while (wireIn.hasMore()) { new BinaryWire(wireIn.bytes()).copyOne(wireType.apply(textConversionTarget)); elementCount++; if ((elementCount & 1) == 0) { messageHandler.accept(textConversionTarget.toString()); textConversionTarget.clear(); } } }
@Override public void writeMarshallable(@NotNull WireOut out) { out.write("timeStamp").int64forBinding(0); }
@NotNull private LongArrayValues array(@NotNull WireIn w, @NotNull LongArrayValues using, boolean index2index) { final StringBuilder sb = Wires.acquireStringBuilder(); @NotNull final ValueIn valueIn = w.readEventName(sb); String name = index2index ? "index2index" : "index"; if (!name.contentEquals(sb)) throw new IllegalStateException("expecting index, was " + sb); valueIn.int64array(using, this, (o1, o2) -> { }); return using; }
private static void write(final ExcerptAppender appender, final Data data) throws Exception { try (final DocumentContext dc = appender.writingDocument()) { final ObjectOutput out = dc.wire().objectOutput(); out.writeInt(data.id); } }
@NotNull default <T> VanillaMethodWriterBuilder<T> methodWriterBuilder(@NotNull Class<T> tClass) { return new VanillaMethodWriterBuilder<>(tClass, new BinaryMethodWriterInvocationHandler(false, this::acquireAppender)); }