chronicleReader.withWireType(WireType.valueOf(commandLine.getOptionValue('w')));
chronicleReader.withWireType(WireType.valueOf(commandLine.getOptionValue('w')));
@NotNull private WireParser<Void> wireParser() { @NotNull final WireParser<Void> parser = new VanillaWireParser<>((s, v, $) -> { }); parser.register(EventId.domain::toString, (s, v, $) -> v.text(this, (o, x) -> o.sessionDetails.domain(x))); parser.register(EventId.sessionMode::toString, (s, v, $) -> v.text(this, (o, x) -> o .sessionDetails.sessionMode(SessionMode.valueOf(x)))); parser.register(EventId.securityToken::toString, (s, v, $) -> v.text(this, (o, x) -> o .sessionDetails.securityToken(x))); parser.register(EventId.clientId::toString, (s, v, $) -> v.text(this, (o, x) -> o .sessionDetails.clientId(UUID.fromString(x)))); parser.register(EventId.wireType::toString, (s, v, $) -> v.text(this, (o, x) -> o .sessionDetails.wireType(WireType.valueOf(x)))); parser.register(EventId.hostId::toString, (s, v, $) -> v.int8(this, (o, x) -> o .sessionDetails.hostId(x))); return parser; }
@Override public boolean writeEOF(@NotNull Wire wire, long timeoutMS) { String fileName = mappedFile.file().getAbsolutePath(); // just in case we are about to release this if (wire.bytes().tryReserve()) { try { wire.writeEndOfWire(timeoutMS, TimeUnit.MILLISECONDS, writePosition()); if (wire.bytes().writePosition() > 4 && Wires.isEndOfFile(wire.bytes().readVolatileInt(wire.bytes().writePosition() - 4))) { // only if we just written EOF QueueFileShrinkManager.scheduleShrinking(mappedFile.file(), wire.bytes().writePosition()); return true; } } finally { wire.bytes().release(); } } else { try (MappedBytes bytes = MappedBytes.mappedBytes(mappedFile.file(), mappedFile.chunkSize())) { Wire wire0 = WireType.valueOf(wire).apply(bytes); wire0.writeEndOfWire(timeoutMS, TimeUnit.MILLISECONDS, writePosition()); if (wire.bytes().writePosition() > 4 && Wires.isEndOfFile(wire.bytes().readVolatileInt(wire.bytes().writePosition() - 4))) { QueueFileShrinkManager.scheduleShrinking(mappedFile.file(), wire.bytes().writePosition()); return true; } } catch (Exception e) { Jvm.warn().on(getClass(), "unable to write the EOF file=" + fileName, e); } } return false; }