public EventLoopServiceWrapper(@NotNull ServiceWrapperBuilder<O> builder) { this.priority = builder.priority(); outputQueue = ChronicleQueue.singleBuilder(builder.outputPath()) .sourceId(builder.outputSourceId()) .checkInterrupts(false) .build(); serviceOut = outputQueue.acquireAppender() .methodWriterBuilder(builder.outClass()) .recordHistory(builder.outputSourceId() != 0) .get(); serviceImpl = builder.getServiceFunctions().stream() .map(f -> f.apply(serviceOut)) .toArray(); List<String> paths = builder.inputPath(); serviceIn = new MethodReader[paths.size()]; inputQueues = new ChronicleQueue[paths.size()]; for (int i = 0; i < paths.size(); i++) { inputQueues[i] = ChronicleQueue.singleBuilder(paths.get(i)) .sourceId(builder.inputSourceId()) .build(); serviceIn[i] = inputQueues[i].createTailer() .afterLastWritten(outputQueue) .methodReader(serviceImpl); } eventLoop = builder.eventLoop(); eventLoop.addHandler(this); createdEventLoop = builder.createdEventLoop(); if (createdEventLoop) eventLoop.start(); }
void runLoop() { try { JDBCResult result = out.acquireAppender() .methodWriterBuilder(JDBCResult.class) .recordHistory(true) .get(); JDBCComponent js = new JDBCComponent(connectionSupplier, result); MethodReader reader = in.createTailer().afterLastWritten(out).methodReader(js); Pauser pauser = Pauser.millis(1, 10); while (!closed) { if (reader.readOne()) pauser.reset(); else pauser.pause(); } } catch (Throwable t) { LOGGER.warn("Run loop exited", t); } }
@Test(expected = IllegalArgumentException.class) public void dontPassQueueToReader() { try (ChronicleQueue queue = binary(getTmpDir()).build()) { queue.createTailer().afterLastWritten(queue).methodReader(); } }
ExcerptTailer excerptTailer = inQueue.createTailer().afterLastWritten(outQueue); MethodReader methodReader = excerptTailer.methodReader((Msg) actualValue::set);
secondInputQueue.createTailer().afterLastWritten(outputQueue);
ExcerptTailer excerptTailer = inQueue.createTailer().afterLastWritten(outQueue); MethodReader methodReader = excerptTailer.methodReader((Msg) actualValue::set);
ExcerptTailer excerptTailer = inQueue.createTailer().afterLastWritten(outQueue);
SidedMarketDataCombiner combiner = new SidedMarketDataCombiner(mdListener); ExcerptTailer tailer = in.createTailer() .afterLastWritten(out); assertEquals(i, in.rollCycle().toSequenceNumber(tailer.index())); MethodReader reader = tailer
public EventLoopServiceWrapper(@NotNull ServiceWrapperBuilder<O> builder) { this.priority = builder.priority(); outputQueue = ChronicleQueue.singleBuilder(builder.outputPath()) .sourceId(builder.outputSourceId()) .checkInterrupts(false) .build(); serviceOut = outputQueue.acquireAppender() .methodWriterBuilder(builder.outClass()) .recordHistory(builder.outputSourceId() != 0) .get(); serviceImpl = builder.getServiceFunctions().stream() .map(f -> f.apply(serviceOut)) .toArray(); List<String> paths = builder.inputPath(); serviceIn = new MethodReader[paths.size()]; inputQueues = new ChronicleQueue[paths.size()]; for (int i = 0; i < paths.size(); i++) { inputQueues[i] = ChronicleQueue.singleBuilder(paths.get(i)) .sourceId(builder.inputSourceId()) .build(); serviceIn[i] = inputQueues[i].createTailer() .afterLastWritten(outputQueue) .methodReader(serviceImpl); } eventLoop = builder.eventLoop(); eventLoop.addHandler(this); createdEventLoop = builder.createdEventLoop(); if (createdEventLoop) eventLoop.start(); }
void runLoop() { try { JDBCResult result = out.acquireAppender() .methodWriterBuilder(JDBCResult.class) .recordHistory(true) .get(); JDBCComponent js = new JDBCComponent(connectionSupplier, result); MethodReader reader = in.createTailer().afterLastWritten(out).methodReader(js); Pauser pauser = Pauser.millis(1, 10); while (!closed) { if (reader.readOne()) pauser.reset(); else pauser.pause(); } } catch (Throwable t) { LOGGER.warn("Run loop exited", t); } }