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; }
@Test public void testRandomMove() throws Exception { final Map<Long, String> messageByIndex = new HashMap<>(); try (ChronicleQueue queue = SingleChronicleQueueBuilder. binary(tmpFolder.newFolder()).build()) { // create a queue and add some excerpts final ExcerptAppender appender = queue.acquireAppender(); for (int i = 0; i < 10; i++) { final String message = "msg" + i; appender.writeDocument(w -> w.write("message").object(message)); final long appendIndex = appender.lastIndexAppended(); messageByIndex.put(appendIndex, message); } final Random random = new Random(1510298038000L); final List<Long> indices = new ArrayList<>(messageByIndex.keySet()); final ExcerptTailer tailer = queue.createTailer(); final AtomicReference<String> capturedMessage = new AtomicReference<>(); for (int i = 0; i < 100; i++) { final long randomIndex = indices.get(random.nextInt(messageByIndex.keySet().size())); tailer.moveToIndex(randomIndex); tailer.readDocument(w -> capturedMessage.set((String) w.read("message").object())); assertEquals(messageByIndex.get(randomIndex), capturedMessage.get()); tailer.readDocument(w -> w.read("message").object()); } } }
/** * used by {@link Demarshallable} * * @param wire a wire */ @SuppressWarnings("unused") @UsedViaReflection private SingleTableStore(@NotNull WireIn wire) { assert wire.startUse(); try { this.wireType = Objects.requireNonNull(wire.read(MetaDataField.wireType).object(WireType.class)); this.mappedBytes = (MappedBytes) (wire.bytes()); this.mappedFile = mappedBytes.mappedFile(); this.refCount = ReferenceCounter.onReleased(this::onCleanup); if (wire.bytes().readRemaining() > 0) { this.recovery = Objects.requireNonNull(wire.read(MetaDataField.recovery).typedMarshallable()); } else { this.recovery = new SimpleStoreRecovery(); // disabled. } if (wire.bytes().readRemaining() > 0) { this.metadata = Objects.requireNonNull(wire.read(MetaDataField.metadata).typedMarshallable()); } else { this.metadata = (T) Metadata.NoMeta.INSTANCE; } mappedWire = wireType.apply(mappedBytes); } finally { assert wire.endUse(); } }
@Test public void testDtoAbstractMarshallable() { File tmp = DirectoryUtils.tempDir("abstractBytesMarshalTest"); DtoAbstractMarshallable dto = new DtoAbstractMarshallable(); dto.age = 45; dto.name.append("rob"); try (ChronicleQueue q = ChronicleQueue.singleBuilder(tmp).build()) { try (DocumentContext dc = q.acquireAppender().writingDocument()) { dc.wire().write("who").object(dto); } try (DocumentContext dc = q.createTailer().readingDocument()) { String yaml = dc.toString(); System.out.println(yaml); DtoAbstractMarshallable who = (DtoAbstractMarshallable) dc.wire().read("who").object(); System.out.println(who); Assert.assertTrue(yaml.contains(who.toString())); } } }
@Test public void testMapWrapper() { try (ChronicleQueue syncQ = builder(getTmpDir(), this.wireType) .build()) { File name2 = DirectoryUtils.tempDir(testName.getMethodName()); try (ChronicleQueue chronicle = builder(name2, this.wireType) .build()) { ExcerptAppender appender = chronicle.acquireAppender(); MapWrapper myMap = new MapWrapper(); myMap.map.put("hello", 1.2); appender.writeDocument(w -> w.write().object(myMap)); ExcerptTailer tailer = chronicle.createTailer(); try (DocumentContext documentContext = tailer.readingDocument()) { MapWrapper object = documentContext.wire().read().object(MapWrapper.class); Assert.assertEquals(1.2, object.map.get("hello"), 0.0); } } } }
@Test public void testDtoBytesMarshallable() { File tmp = DirectoryUtils.tempDir("abstractBytesMarshalTest"); DtoBytesMarshallable dto = new DtoBytesMarshallable(); dto.age = 45; dto.name.append("rob"); try (ChronicleQueue q = ChronicleQueue.singleBuilder(tmp).build()) { try (DocumentContext dc = q.acquireAppender().writingDocument()) { dc.wire().write("who").object(dto); } try (DocumentContext dc = q.createTailer().readingDocument()) { DtoBytesMarshallable who = (DtoBytesMarshallable) dc.wire().read("who").object(); Assert.assertEquals("!net.openhft.chronicle.queue.DtoBytesMarshallableTest$DtoBytesMarshallable {\n" + " name: rob,\n" + " age: 45\n" + "}\n", who.toString()); } } }
tailer.direction(TailerDirection.FORWARD).readingDocument()) { ValueIn valueIn = dc.wire().getValueIn(); value = (String) valueIn.object(); tailer.direction(TailerDirection.NONE).readingDocument()) { ValueIn valueIn = dc.wire().getValueIn(); value = (String) valueIn.object(); tailer.direction(TailerDirection.NONE).readingDocument()) { ValueIn valueIn = dc.wire().getValueIn(); value = (String) valueIn.object();
@SuppressWarnings("ConstantConditions") @Override public void readMarshallable(@NotNull WireIn wire) throws IllegalStateException { wire.read(() -> "key").object(Object.class, this, (o, x) -> o.key = x) .read(() -> "value").object(Object.class, this, (o, x) -> o.value = x) .read(() -> "function").object(Object.class, this, (o, f) -> o.function = f); }
private Iterator<Row> nextIterator() { return this.<Collection<Row>>proxyReturnWireConsumerInOut( EventId.next, CoreFields.reply, pageSize, f -> f.object(List.class)).iterator(); }
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; }
/** * @param consumer a consumer that provides that name of the event and value contained within * the except */ public void getExcerpt(@NotNull BiConsumer<CharSequence, M> consumer) { @NotNull final ExcerptTailer tailer = threadLocalTailer(); tailer.readDocument(w -> { final StringBuilder eventName = Wires.acquireStringBuilder(); @NotNull final ValueIn valueIn = w.readEventName(eventName); consumer.accept(eventName, valueIn.object(elementTypeClass)); }); }
@Override public void readMarshallable(@NotNull WireIn wireIn) throws IllegalStateException { clearPipeline(); wireIn.read(() -> "pipeline").sequence(pipeline, (p, s) -> { while (s.hasNextSequenceItem()) p.add(s.object(Operation.class)); }); }
@Override public void readMarshallable(@NotNull WireIn wire) throws IllegalStateException { wire.read(MapEventFields.assetName).text(this, (o, s) -> assetName = s); wire.read(MapEventFields.key).object(Object.class, this, (o, x) -> o.key = (K) x); wire.read(MapEventFields.oldValue).object(Object.class, this, (o, x) -> o.oldValue = (V) x); wire.read(MapEventFields.value).object(Object.class, this, (o, x) -> o.value = (V) x); wire.read(MapEventFields.isReplicationEvent).bool(this, (o, x) -> o.isReplicationEvent = x); wire.read(MapEventFields.hasValueChanged).bool(this, (o, x) -> o.hasValueChanged = x); }
@Override public void readMarshallable(@NotNull WireIn wire) throws IllegalStateException { wire.read(MapEventFields.assetName).text(this, (o, s) -> assetName = s); wire.read(MapEventFields.key).object(Object.class, this, (o, x) -> o.key = (K) x); wire.read(MapEventFields.oldValue).object(Object.class, this, (o, x) -> o.oldValue = (V) x); wire.read(MapEventFields.isReplicationEvent).bool(this, (o, x) -> o.isReplicationEvent = x); }
@Override public void readMarshallable(@NotNull WireIn wire) throws IllegalStateException { assetName = wire.read(MapEventFields.assetName).text(); key = wire.read(MapEventFields.key).object((Class<K>) Object.class); value = wire.read(MapEventFields.value).object((Class<V>) Object.class); isReplicationEvent = wire.read(MapEventFields.isReplicationEvent).bool(); }
@Override protected void readMarshallableFields(@NotNull WireIn wireIn) { super.readMarshallableFields(wireIn); valueClass = wireIn.read(() -> "valueClass").typeLiteral(); valueSizeMarshaller = wireIn.read(() -> "valueSizeMarshaller").object(SizeMarshaller.class); valueReader = wireIn.read(() -> "valueReader").object(SizedReader.class); valueDataAccess = wireIn.read(() -> "valueDataAccess").object(DataAccess.class); constantlySizedEntry = wireIn.read(() -> "constantlySizedEntry").bool(); alignment = wireIn.read(() -> "alignment").int32(); worstAlignment = wireIn.read(() -> "worstAlignment").int32(); }
@Override public void readMarshallable(WireIn wireIn) throws IllegalStateException { this.type = OperationType.valueOf(wireIn.read(() -> "type").text()); this.wrapped = wireIn.read(() -> "wrapped").object(Object.class); }
@UsedViaReflection private UberHandler(@NotNull WireIn wire) { remoteIdentifier = wire.read(() -> "remoteIdentifier").int32(); localIdentifier = wire.read(() -> "localIdentifier").int32(); @Nullable final WireType wireType = wire.read(() -> "wireType").object(WireType.class); clusterName = wire.read(() -> "clusterName").text(); wireType(wireType); }