public DefaultEventBus(Scheduler scheduler) { this.bus = TopicProcessor.create(); this.scheduler = scheduler; }
@Test public void createDefault() { TopicProcessor<Integer> processor = TopicProcessor.create(); assertProcessor(processor, false, null, null, null, null, null, null); }
@Test public void scanProcessor() { TopicProcessor<String> test = TopicProcessor.create("name", 16); Subscription subscription = Operators.emptySubscription(); test.onSubscribe(subscription); assertThat(test.scan(Scannable.Attr.PARENT)).isEqualTo(subscription); assertThat(test.scan(Scannable.Attr.CAPACITY)).isEqualTo(16); assertThat(test.scan(Scannable.Attr.TERMINATED)).isFalse(); assertThat(test.scan(Scannable.Attr.ERROR)).isNull(); test.onError(new IllegalStateException("boom")); assertThat(test.scan(Scannable.Attr.ERROR)).hasMessage("boom"); assertThat(test.scan(Scannable.Attr.TERMINATED)).isTrue(); }
@Test public void scanInner() { TopicProcessor<String> main = TopicProcessor.create("name", 16); RingBuffer.Sequence sequence = RingBuffer.newSequence(123); CoreSubscriber<String> activated = new LambdaSubscriber<>(null, e -> {}, null, null); TopicProcessor.TopicInner<String> test = new TopicProcessor.TopicInner<>( main, sequence, activated); assertThat(test.scan(Scannable.Attr.PARENT)).isSameAs(main); assertThat(test.scan(Scannable.Attr.ACTUAL)).isSameAs(activated); assertThat(test.scan(Scannable.Attr.PREFETCH)).isEqualTo(Integer.MAX_VALUE); assertThat(test.scan(Scannable.Attr.REQUESTED_FROM_DOWNSTREAM)).isEqualTo(123L); assertThat(test.scan(Scannable.Attr.TERMINATED)).isFalse(); assertThat(test.scan(Scannable.Attr.CANCELLED)).isFalse(); main.terminated = 1; assertThat(test.scan(Scannable.Attr.TERMINATED)).isTrue(); assertThat(test.scan(Scannable.Attr.CANCELLED)).isFalse(); test.cancel(); assertThat(test.scan(Scannable.Attr.CANCELLED)).isTrue(); }
@Test public void scanInnerBufferedSmallHasIntRealValue() { TopicProcessor<String> main = TopicProcessor.create("name", 16); RingBuffer.Sequence sequence = RingBuffer.newSequence(123); CoreSubscriber<String> sub = new LambdaSubscriber<>(null, e -> {}, null, null); TopicProcessor.TopicInner<String> test = new TopicProcessor.TopicInner<>(main, sequence, sub); main.ringBuffer.getSequencer().cursor.set(Integer.MAX_VALUE + 5L); test.sequence.set(6L); assertThat(test.scan(Scannable.Attr.BUFFERED)).isEqualTo(Integer.MAX_VALUE - 1); assertThat(test.scan(Scannable.Attr.LARGE_BUFFERED)).isEqualTo(Integer.MAX_VALUE - 1L); }
@Test public void scanInnerBufferedLargeHasIntMinValue() { TopicProcessor<String> main = TopicProcessor.create("name", 16); RingBuffer.Sequence sequence = RingBuffer.newSequence(123); CoreSubscriber<String> sub = new LambdaSubscriber<>(null, e -> {}, null, null); TopicProcessor.TopicInner<String> test = new TopicProcessor.TopicInner<>(main, sequence, sub); main.ringBuffer.getSequencer().cursor.set(Integer.MAX_VALUE + 5L); test.sequence.set(2L); assertThat(test.scan(Scannable.Attr.BUFFERED)).isEqualTo(Integer.MIN_VALUE); assertThat(test.scan(Scannable.Attr.LARGE_BUFFERED)).isEqualTo(Integer.MAX_VALUE + 3L); }
@Test public void konamiCode() throws InterruptedException { final TopicProcessor<Integer> keyboardStream = TopicProcessor.create();
public DefaultEventBus(Scheduler scheduler) { this.bus = TopicProcessor.create(); this.scheduler = scheduler; }
public static ReactorProcProxy topicProcessorProxy() { return new ReactorProcProxy(TopicProcessor.create(), PASS); }
public static ReactorProcProxy safeTopicProcessorProxy() { return new ReactorProcProxy(TopicProcessor.create(), WRAP); }
public static ReactorProcProxy topicProcessorProxy() { return new ReactorProcProxy(TopicProcessor.create(), PASS); }
public static ReactorProcProxy safeTopicProcessorProxy() { return new ReactorProcProxy(TopicProcessor.create(), WRAP); }
public static ReactorProcProxy safeSerializedTopicProcessorProxy() { return new ReactorProcProxy(TopicProcessor.create().serialize(), WRAP); }
public static ReactorProcProxy serializedTopicProcessorProxy() { return new ReactorProcProxy(TopicProcessor.create().serialize(), PASS); }
public static ReactorProcProxy serializedTopicProcessorProxy() { return new ReactorProcProxy(TopicProcessor.create().serialize(), PASS); }
public static ReactorProcProxy safeSerializedTopicProcessorProxy() { return new ReactorProcProxy(TopicProcessor.create().serialize(), WRAP); }
private void setupFakeProtocolListener() { broadcaster = TopicProcessor.create(); final Processor<List<String>, List<String>> processor = WorkQueueProcessor.<List<String>>builder().autoCancel(false).build(); Flux.from(broadcaster) .buffer(5) .subscribe(processor); httpServer = HttpServer.create() .port(0) .route(r -> r.get("/data", (req, resp) -> resp.options(NettyPipeline.SendOptions::flushOnEach) .send(Flux.from(processor) .log("server") .timeout(Duration.ofSeconds( 2), Flux.empty()) .concatWith(Flux.just( new ArrayList<>())) .map(new DummyListEncoder( resp.alloc() ))))) .wiretap(true) .bindNow(); }