@Nullable static SingleChronicleQueueStore loadStore(@NotNull Wire wire) { final StringBuilder eventName = new StringBuilder(); wire.readEventName(eventName); if (eventName.toString().equals(MetaDataKeys.header.name())) { final SingleChronicleQueueStore store = wire.read().typedMarshallable(); if (store == null) { throw new IllegalArgumentException("Unable to load wire store"); } return store; } LOGGER.warn("Unable to load store file from input. Queue file may be corrupted."); return null; }
@SuppressWarnings("unused") @UsedViaReflection SCQMeta(@NotNull WireIn wire) { this.roll = Objects.requireNonNull(wire.read(MetaDataField.roll).typedMarshallable()); this.deltaCheckpointInterval = wire.bytes().readRemaining() > 0 ? wire.read(MetaDataField.deltaCheckpointInterval).int32() : -1; // disabled. this.sourceId = wire.bytes().readRemaining() > 0 ? wire.read(MetaDataField.sourceId).int32() : 0; }
/** * 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(); } }
/** * used by {@link net.openhft.chronicle.wire.Demarshallable} * * @param wire a wire */ @UsedViaReflection private SingleChronicleQueueStore(@NotNull WireIn wire) { assert wire.startUse(); try { writePosition = loadWritePosition(wire); this.mappedBytes = (MappedBytes) (wire.bytes()); this.mappedFile = mappedBytes.mappedFile(); this.refCount = ReferenceCounter.onReleased(this::onCleanup); this.indexing = Objects.requireNonNull(wire.read(MetaDataField.indexing).typedMarshallable()); assert indexing != null; this.indexing.writePosition = writePosition; this.sequence = new RollCycleEncodeSequence(writePosition, rollIndexCount(), rollIndexSpacing()); this.indexing.sequence = sequence; } finally { assert wire.endUse(); } }
ValueIn valueIn = wire.readEventName(name); if (StringUtils.isEqual(name, MetaDataKeys.header.name())) { wireStore = valueIn.typedMarshallable(); } else {
@Test public void testReadingWritingMarshallableDocument() { try (final ChronicleQueue chronicle = builder(getTmpDir(), this.wireType) .build()) { MyMarshable myMarshable = new MyMarshable(); final ExcerptAppender appender = chronicle.acquireAppender(); try (DocumentContext dc = appender.writingDocument()) { dc.wire().write("myMarshable").typedMarshallable(myMarshable); } ExcerptTailer tailer = chronicle.createTailer(); try (DocumentContext dc = tailer.readingDocument()) { Assert.assertEquals(myMarshable, dc.wire().read(() -> "myMarshable").typedMarshallable()); } } }
myDataO1 = dc.wire().getValueIn().typedMarshallable(); assert myDataO1.value != null; myDataO2 = dc.wire().getValueIn().typedMarshallable(); assert myDataO2.value != null;
@Override public void readMarshallable(@NotNull WireIn wireIn) { elementReader = wireIn.read(() -> "elementReader").typedMarshallable(); elementWriter = wireIn.read(() -> "elementWriter").typedMarshallable(); }
@Override public void readMarshallable(@NotNull WireIn wireIn) { reader = wireIn.read(() -> "reader").typedMarshallable(); }
@Override public void readMarshallable(@NotNull WireIn wireIn) { keyReader = wireIn.read(() -> "keyReader").typedMarshallable(); keyWriter = wireIn.read(() -> "keyWriter").typedMarshallable(); valueReader = wireIn.read(() -> "valueReader").typedMarshallable(); valueWriter = wireIn.read(() -> "valueWriter").typedMarshallable(); initTransients(); }
@Override public void readMarshallable(@NotNull WireIn wire) throws IllegalStateException { @NotNull StringBuilder mountDesc = new StringBuilder(); while (!wire.isEmpty()) { @Nullable MountPoint mp = wire.readEventName(mountDesc).typedMarshallable(); mounts.put(mountDesc.toString(), mp); } }
@Override public void readMarshallable(@NotNull WireIn wireIn) { elementReader = wireIn.read(() -> "elementReader").typedMarshallable(); elementWriter = wireIn.read(() -> "elementWriter").typedMarshallable(); initTransients(); }
@Nullable static SingleChronicleQueueStore loadStore(@NotNull Wire wire) { final StringBuilder eventName = new StringBuilder(); wire.readEventName(eventName); if (eventName.toString().equals(MetaDataKeys.header.name())) { final SingleChronicleQueueStore store = wire.read().typedMarshallable(); if (store == null) { throw new IllegalArgumentException("Unable to load wire store"); } return store; } LOGGER.warn("Unable to load store file from input. Queue file may be corrupted."); return null; }
@Override public void readMarshallable(@NotNull WireIn wireIn) { super.readMarshallable(wireIn); sizedReader = wireIn.read(() -> "sizedReader").typedMarshallable(); sizedWriter = wireIn.read(() -> "sizedWriter").typedMarshallable(); initTransients(DEFAULT_BYTES_CAPACITY); }
@Override public void readMarshallable(@NotNull WireIn wireIn) { super.readMarshallable(wireIn); reader = wireIn.read(() -> "reader").typedMarshallable(); writer = wireIn.read(() -> "writer").typedMarshallable(); initTransients(DEFAULT_BYTES_CAPACITY); }
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)); } } }
@Override public void onConsumer(@NotNull final WireIn inWire) { inWire.readDocument(null, d -> { final StringBuilder eventName = Wires.acquireStringBuilder(); @NotNull final ValueIn valueIn = d.readEventName(eventName); if (PublisherHandler.EventId.onEndOfSubscription.contentEquals(eventName)) { subscriber.onEndOfSubscription(); subscribersToTid.remove(this); hub.unsubscribe(tid()); } else if (CoreFields.reply.contentEquals(eventName)) { @NotNull final Class aClass = rc.elementType(); @Nullable final Object object = (MapEvent.class.isAssignableFrom(aClass) || (TopologicalEvent.class.isAssignableFrom(aClass))) ? valueIn.typedMarshallable() : valueIn.object(rc.elementType()); AbstractRemoteSubscription.this.onEvent(object, subscriber); } }); } });
@Override public void readMarshallable(@NotNull WireIn wire) throws IORuntimeException { index = wire.read(() -> "index").int64(); v = wire.read(() -> "v").typedMarshallable(); timePublished = wire.read(() -> "timePublished").int64(); maxIndex = wire.read(() -> "maxIndex").int64(); }
@SuppressWarnings("unused") @UsedViaReflection SCQMeta(@NotNull WireIn wire) { this.roll = Objects.requireNonNull(wire.read(MetaDataField.roll).typedMarshallable()); this.deltaCheckpointInterval = wire.bytes().readRemaining() > 0 ? wire.read(MetaDataField.deltaCheckpointInterval).int32() : -1; // disabled. this.sourceId = wire.bytes().readRemaining() > 0 ? wire.read(MetaDataField.sourceId).int32() : 0; }
/** * used by {@link net.openhft.chronicle.wire.Demarshallable} * * @param wire a wire */ @UsedViaReflection private SingleChronicleQueueStore(@NotNull WireIn wire) { assert wire.startUse(); try { writePosition = loadWritePosition(wire); this.mappedBytes = (MappedBytes) (wire.bytes()); this.mappedFile = mappedBytes.mappedFile(); this.refCount = ReferenceCounter.onReleased(this::onCleanup); this.indexing = Objects.requireNonNull(wire.read(MetaDataField.indexing).typedMarshallable()); this.indexing.writePosition = writePosition; this.sequence = new RollCycleEncodeSequence(writePosition, rollIndexCount(), rollIndexSpacing()); this.indexing.sequence = sequence; } finally { assert wire.endUse(); } }