@Test public void testRewind() throws Exception { BufferedReader rdr = new BufferedReader(new StringReader("foo\nbar\nbaz\n")); ReaderBuffer buf = new ReaderBuffer(rdr); assertEquals("foo", buf.readLine()); assertEquals("bar", buf.readLine()); assertEquals("baz", buf.readLine()); assertEquals(null, buf.readLine()); buf.rewind(2); assertEquals("bar", buf.readLine()); assertEquals("baz", buf.readLine()); assertEquals(null, buf.readLine()); }
@Override public void close() { this.readerBuffer.finishReading(); } }
@Override public int read(char[] destination, int offsetToStart, int numberOfChars) throws IOException { char[] got = readerBuffer.getNextChars(numberOfChars); if (got != null) { System.arraycopy(got, 0, destination, offsetToStart, got.length); return got.length; } else { return -1; } }
if (buffer == null) { buffer = new ReaderBuffer(((BaseContainer) container).getExecutorService()); session.setReaderBuffer(buffer); buffer.resetBuffer(session.getMaxTextMessageBufferSize()); buffer.setMessageHandler((session.getMessageHandler(Reader.class))); buffer.appendMessagePart(partialString, last); session.setState(TyrusSession.State.RECEIVING_TEXT); break; case RECEIVING_TEXT: buffer.appendMessagePart(partialString, last); if (last) { session.setState(TyrusSession.State.RUNNING);
private void cleanAfterClose() { if (readerBuffer != null) { readerBuffer.onSessionClosed(); } if (inputStreamBuffer != null) { inputStreamBuffer.onSessionClosed(); } cancelHeartBeatTask(); }
} else { // there's more to come...so wait here... checkClosedSession(); condition.await(); checkClosedSession(); } catch (InterruptedException e) { interrupted = true;
if (buffer == null) { buffer = new ReaderBuffer(((BaseContainer) container).getExecutorService()); session.setReaderBuffer(buffer); buffer.resetBuffer(session.getMaxTextMessageBufferSize()); buffer.setMessageHandler((session.getMessageHandler(Reader.class))); buffer.appendMessagePart(partialString, last); session.setState(TyrusSession.State.RECEIVING_TEXT); break; case RECEIVING_TEXT: buffer.appendMessagePart(partialString, last); if (last) { session.setState(TyrusSession.State.RUNNING);
private void cleanAfterClose() { if (readerBuffer != null) { readerBuffer.onSessionClosed(); } if (inputStreamBuffer != null) { inputStreamBuffer.onSessionClosed(); } cancelHeartBeatTask(); }
} else { // there's more to come...so wait here... checkClosedSession(); condition.await(); checkClosedSession(); } catch (InterruptedException e) { interrupted = true;
@Override public int read(char[] destination, int offsetToStart, int numberOfChars) throws IOException { char[] got = readerBuffer.getNextChars(numberOfChars); if (got != null) { System.arraycopy(got, 0, destination, offsetToStart, got.length); return got.length; } else { return -1; } }
@Override public void close() { this.readerBuffer.finishReading(); } }