@Override public int doRead(ApplicationBufferHandler handler) throws IOException { if (!isNeedToRead()) { // Read only once. return -1; } read = true; final int readableBytes = content.length(); handler.setByteBuffer(ByteBuffer.wrap(content.array(), content.offset(), readableBytes)); return readableBytes; }
@Override public int doRead(ApplicationBufferHandler handler) throws IOException { if (endOfStream) { return -1; } if (empty) { if (!refillReadBuffer(true)) { return -1; } } ByteChunk bc = bodyBytes.getByteChunk(); handler.setByteBuffer(ByteBuffer.wrap(bc.getBuffer(), bc.getStart(), bc.getLength())); empty = true; return handler.getByteBuffer().remaining(); } }
.expand(sslEngine.getSession().getApplicationBufferSize()); dst = getBufHandler().getReadBuffer(); } else if (dst == getAppReadBufHandler().getByteBuffer()) { getAppReadBufHandler() .expand(sslEngine.getSession().getApplicationBufferSize()); dst = getAppReadBufHandler().getByteBuffer(); } else {
@Override public int doRead(ApplicationBufferHandler handler) throws IOException { int result = -1; if (contentLength >= 0) { if (remaining > 0) { int nRead = buffer.doRead(handler); if (nRead > remaining) { // The chunk is longer than the number of bytes remaining // in the body; changing the chunk length to the number // of bytes remaining handler.getByteBuffer().limit(handler.getByteBuffer().position() + (int) remaining); result = (int) remaining; } else { result = nRead; } if (nRead > 0) { remaining = remaining - nRead; } } else { // No more bytes left to be read : return -1 and clear the // buffer if (handler.getByteBuffer() != null) { handler.getByteBuffer().position(0).limit(0); } result = -1; } } return result; }
result = readChunk.remaining(); remaining = remaining - result; if (readChunk != handler.getByteBuffer()) { handler.setByteBuffer(readChunk.duplicate()); if (readChunk != handler.getByteBuffer()) { handler.setByteBuffer(readChunk.duplicate()); handler.getByteBuffer().limit(readChunk.position() + remaining);
sslEngine.getSession().getApplicationBufferSize()); dst2 = getBufHandler().getReadBuffer(); } else if (dst2 == getAppReadBufHandler().getByteBuffer()) { getAppReadBufHandler() .expand(sslEngine.getSession().getApplicationBufferSize()); dst2 = getAppReadBufHandler().getByteBuffer(); } else {
@Override public int doRead(ApplicationBufferHandler handler) throws IOException { if(input.getOffset()>= input.getEnd()) return -1; ByteBuffer byteBuffer = handler.getByteBuffer(); byteBuffer.position(byteBuffer.limit()).limit(byteBuffer.capacity()); input.subtract(byteBuffer); return byteBuffer.remaining(); }
@Override public int doRead(ApplicationBufferHandler handler) throws IOException { if (byteBuffer.position() >= byteBuffer.limit()) { // The application is reading the HTTP request body which is // always a blocking operation. if (!fill(true)) return -1; } int length = byteBuffer.remaining(); handler.setByteBuffer(byteBuffer.duplicate()); byteBuffer.position(byteBuffer.limit()); return length; } }
|| dst != getAppReadBufHandler().getByteBuffer())) { throw new IllegalArgumentException(sm.getString("channel.nio.ssl.invalidBuffer")); } else if (dst == getAppReadBufHandler().getByteBuffer()) { getAppReadBufHandler() .expand(sslEngine.getSession().getApplicationBufferSize()); dst = getAppReadBufHandler().getByteBuffer(); } else {
/** * Fills the given ByteBuffer with the buffered request body. */ @Override public int doRead(ApplicationBufferHandler handler) throws IOException { if (isFinished()) { return -1; } handler.setByteBuffer(buffered); hasRead = true; return buffered.remaining(); }
applicationBufferHandler.setByteBuffer(ByteBuffer.wrap(outBuffer, 0, written));