private void checkAccept() { if (!accepted) { if (!outBinary | (outBinary && sendingBinary)) { if (!inBinary | (inBinary && receivingBinary)) { accepted = true; readBuffer.setReadHandler(eventDecoder); handler.accept(this); } } } }
public void setReadHandler(final Consumer<int[]> readHandler) { if (readHandler != null) { if (this.readHandler != null) { this.readHandler = readHandler; } else { ReadBuffer.this.readHandler = readHandler; drainQueue(); } } else { this.readHandler = null; } }
@Test public void testFoo() { final ArrayList<int[]> reads = new ArrayList<>(); buf.setReadHandler(event -> reads.add(event)); buf.accept(new int[]{'f', 'o', 'o'}); assertEquals(0, commands.size()); assertEquals(1, reads.size()); assertEquals(reads.get(0), new int[]{'f','o','o'}); }
@Test public void testJuu() throws Exception { buf.accept(new int[]{'f', 'o', 'o'}); buf.accept(new int[]{'b', 'a', 'r'}); assertEquals(0, reads.size()); assertEquals(0, commands.size()); buf.setReadHandler(event -> { reads.add(event); buf.setReadHandler(null); }); assertEquals(0, reads.size()); assertEquals(1, commands.size()); commands.poll().run(); assertEquals(1, reads.size()); assertEquals(0, commands.size()); assertEquals(reads.get(0), new int[]{'f', 'o', 'o'}); assertEquals(null, buf.getReadHandler()); }
@Before public void setUp() { commands = new ArrayBlockingQueue<Runnable>(1); buf = new ReadBuffer(new Executor() { @Override public void execute(Runnable command) { commands.add(command); } }); reads = new ArrayList<int[]>(); }
@Test public void testFoo() { final ArrayList<int[]> reads = new ArrayList<>(); buf.setReadHandler(event -> reads.add(event)); buf.accept(new int[]{'f', 'o', 'o'}); assertEquals(0, commands.size()); assertEquals(1, reads.size()); assertEquals(reads.get(0), new int[]{'f','o','o'}); }
@Test public void testJuu() throws Exception { buf.accept(new int[]{'f', 'o', 'o'}); buf.accept(new int[]{'b', 'a', 'r'}); assertEquals(0, reads.size()); assertEquals(0, commands.size()); buf.setReadHandler(event -> { reads.add(event); buf.setReadHandler(null); }); assertEquals(0, reads.size()); assertEquals(1, commands.size()); commands.poll().run(); assertEquals(1, reads.size()); assertEquals(0, commands.size()); assertEquals(reads.get(0), new int[]{'f', 'o', 'o'}); assertEquals(null, buf.getReadHandler()); }
@Before public void setUp() { commands = new ArrayBlockingQueue<>(1); buf = new ReadBuffer(new Executor() { @Override public void execute(Runnable command) { commands.add(command); } }); reads = new ArrayList<>(); }
@Test public void testFoo() { final ArrayList<int[]> reads = new ArrayList<int[]>(); buf.setReadHandler(new Consumer<int[]>() { @Override public void accept(int[] event) { reads.add(event); } }); buf.accept(new int[]{'f', 'o', 'o'}); assertEquals(0, commands.size()); assertEquals(1, reads.size()); assertEquals(reads.get(0), new int[]{'f','o','o'}); }
@Test public void testJuu() throws Exception { buf.accept(new int[]{'f', 'o', 'o'}); buf.accept(new int[]{'b', 'a', 'r'}); assertEquals(0, reads.size()); assertEquals(0, commands.size()); buf.setReadHandler(new Consumer<int[]>() { @Override public void accept(int[] event) { reads.add(event); buf.setReadHandler(null); } }); assertEquals(0, reads.size()); assertEquals(1, commands.size()); commands.poll().run(); assertEquals(1, reads.size()); assertEquals(0, commands.size()); assertEquals(reads.get(0), new int[]{'f', 'o', 'o'}); assertEquals(null, buf.getReadHandler()); }
private void checkAccept() { if (!accepted) { if (!outBinary | (outBinary && sendingBinary)) { if (!inBinary | (inBinary && receivingBinary)) { accepted = true; readBuffer.setReadHandler(eventDecoder); handler.accept(this); } } } }
@Before public void setUp() { commands = new ArrayBlockingQueue<>(1); buf = new ReadBuffer(new Executor() { @Override public void execute(Runnable command) { commands.add(command); } }); reads = new ArrayList<>(); }
public void setReadHandler(final Consumer<int[]> readHandler) { if (readHandler != null) { if (this.readHandler != null) { this.readHandler = readHandler; } else { ReadBuffer.this.readHandler = readHandler; drainQueue(); } } else { this.readHandler = null; } }
@Test public void testBar() throws Exception { buf.accept(new int[]{'f', 'o', 'o'}); assertEquals(0, reads.size()); assertEquals(0, commands.size()); buf.setReadHandler(event -> reads.add(event)); assertEquals(0, reads.size()); assertEquals(1, commands.size()); commands.poll().run(); assertEquals(1, reads.size()); assertEquals(0, commands.size()); assertEquals(reads.get(0), new int[]{'f','o','o'}); }
@Override public void accept(int[] event) { reads.add(event); buf.setReadHandler(null); } });
private void drainQueue() { if (queue.size() > 0 && readHandler != null) { executor.execute(() -> { if (readHandler != null) { final int[] data = queue.poll(); if (data != null) { readHandler.accept(data); drainQueue(); } } }); } } }
@Test public void testBar() throws Exception { buf.accept(new int[]{'f', 'o', 'o'}); assertEquals(0, reads.size()); assertEquals(0, commands.size()); buf.setReadHandler(event -> reads.add(event)); assertEquals(0, reads.size()); assertEquals(1, commands.size()); commands.poll().run(); assertEquals(1, reads.size()); assertEquals(0, commands.size()); assertEquals(reads.get(0), new int[]{'f','o','o'}); }
private void drainQueue() { if (queue.size() > 0 && readHandler != null) { executor.execute(() -> { if (readHandler != null) { final int[] data = queue.poll(); if (data != null) { readHandler.accept(data); drainQueue(); } } }); } } }
@Test public void testBilto() throws Exception { buf.accept(new int[]{'f', 'o', 'o'}); buf.accept(new int[]{'b', 'a', 'r'}); assertEquals(0, reads.size()); assertEquals(0, commands.size()); buf.setReadHandler(event -> reads.add(event)); assertEquals(0, reads.size()); assertEquals(1, commands.size()); commands.poll().run(); assertEquals(1, reads.size()); assertEquals(1, commands.size()); assertEquals(reads.get(0), new int[]{'f', 'o', 'o'}); buf.accept(new int[]{'j', 'u', 'u'}); assertEquals(3, reads.size()); assertEquals(1, commands.size()); assertEquals(reads.get(1), new int[]{'b', 'a', 'r'}); assertEquals(reads.get(2), new int[]{'j', 'u', 'u'}); commands.poll().run(); assertEquals(3, reads.size()); assertEquals(0, commands.size()); }
@Test public void testBilto() throws Exception { buf.accept(new int[]{'f', 'o', 'o'}); buf.accept(new int[]{'b', 'a', 'r'}); assertEquals(0, reads.size()); assertEquals(0, commands.size()); buf.setReadHandler(event -> reads.add(event)); assertEquals(0, reads.size()); assertEquals(1, commands.size()); commands.poll().run(); assertEquals(1, reads.size()); assertEquals(1, commands.size()); assertEquals(reads.get(0), new int[]{'f', 'o', 'o'}); buf.accept(new int[]{'j', 'u', 'u'}); assertEquals(3, reads.size()); assertEquals(1, commands.size()); assertEquals(reads.get(1), new int[]{'b', 'a', 'r'}); assertEquals(reads.get(2), new int[]{'j', 'u', 'u'}); commands.poll().run(); assertEquals(3, reads.size()); assertEquals(0, commands.size()); }