@Override public void onCompleteFailure(Throwable x) { abort(x); _channel.getByteBufferPool().release(_buffer); HttpOutput.this.close(_in); super.onCompleteFailure(x); } }
@Override public void onCompleteFailure(Throwable x) { abort(x); _channel.getByteBufferPool().release(_buffer); HttpOutput.this.close(_in); super.onCompleteFailure(x); } }
public InputStreamWritingCB(InputStream in, Callback callback) { super(callback); _in=in; _buffer = _channel.getByteBufferPool().acquire(getBufferSize(), false); }
public InputStreamWritingCB(InputStream in, Callback callback) { super(callback); _in=in; _buffer = _channel.getByteBufferPool().acquire(getBufferSize(), false); }
public InputStreamWritingCB(InputStream in, Callback callback) { super(callback); _in = in; _buffer = _channel.getByteBufferPool().acquire(getBufferSize(), false); }
@Override protected Action process() throws Exception { // Only return if EOF has previously been read and thus // a write done with EOF=true if (_eof) { _in.close(); closed(); _channel.getByteBufferPool().release(_buffer); return Action.SUCCEEDED; } // Read from stream until buffer full or EOF _buffer.clear(); while (_buffer.hasRemaining() && !_eof) _eof = (_in.read(_buffer)) < 0; // write what we have _buffer.flip(); write(_buffer,_eof,this); return Action.SCHEDULED; }
@Override protected Action process() throws Exception { // Only return if EOF has previously been read and thus // a write done with EOF=true if (_eof) { // Handle EOF _in.close(); closed(); _channel.getByteBufferPool().release(_buffer); return Action.SUCCEEDED; } // Read until buffer full or EOF int len=0; while (len<_buffer.capacity() && !_eof) { int r=_in.read(_buffer.array(),_buffer.arrayOffset()+len,_buffer.capacity()-len); if (r<0) _eof=true; else len+=r; } // write what we have _buffer.position(0); _buffer.limit(len); write(_buffer,_eof,this); return Action.SCHEDULED; }
@Override public void onCompleteFailure(Throwable x) { super.onCompleteFailure(x); _channel.getByteBufferPool().release(_buffer); try { _in.close(); } catch (IOException e) { LOG.ignore(e); } } }
@Override public void onCompleteFailure(Throwable x) { super.onCompleteFailure(x); _channel.getByteBufferPool().release(_buffer); try { _in.close(); } catch (IOException e) { LOG.ignore(e); } }
public ReadableByteChannelWritingCB(ReadableByteChannel in, Callback callback) { super(callback); _in=in; _buffer = _channel.getByteBufferPool().acquire(getBufferSize(), _channel.useDirectBuffers()); }
_channel.getByteBufferPool().release(_buffer); return Action.SUCCEEDED;
@Override public void onCompleteFailure(Throwable x) { abort(x); _channel.getByteBufferPool().release(_buffer); IO.close(_in); super.onCompleteFailure(x); } }
public ReadableByteChannelWritingCB(ReadableByteChannel in, Callback callback) { super(callback); _in=in; _buffer = _channel.getByteBufferPool().acquire(getBufferSize(), _channel.useDirectBuffers()); }
@Override public void onCompleteFailure(Throwable x) { abort(x); _channel.getByteBufferPool().release(_buffer); IO.close(_in); super.onCompleteFailure(x); } }
public ReadableByteChannelWritingCB(ReadableByteChannel in, Callback callback) { super(callback); _in = in; _buffer = _channel.getByteBufferPool().acquire(getBufferSize(), _channel.useDirectBuffers()); }
_channel.getByteBufferPool().release(_buffer); return Action.SUCCEEDED;
@Override protected Action process() throws Exception { // Only return if EOF has previously been read and thus // a write done with EOF=true if (_eof) { if (LOG.isDebugEnabled()) LOG.debug("EOF of {}", this); _in.close(); closed(); _channel.getByteBufferPool().release(_buffer); return Action.SUCCEEDED; } // Read from stream until buffer full or EOF BufferUtil.clearToFill(_buffer); while (_buffer.hasRemaining() && !_eof) _eof = (_in.read(_buffer)) < 0; // write what we have BufferUtil.flipToFlush(_buffer, 0); _written += _buffer.remaining(); write(_buffer, _eof, this); return Action.SCHEDULED; }
@Override protected Action process() throws Exception { // Only return if EOF has previously been read and thus // a write done with EOF=true if (_eof) { if (LOG.isDebugEnabled()) LOG.debug("EOF of {}",this); _in.close(); closed(); _channel.getByteBufferPool().release(_buffer); return Action.SUCCEEDED; } // Read from stream until buffer full or EOF BufferUtil.clearToFill(_buffer); while (_buffer.hasRemaining() && !_eof) _eof = (_in.read(_buffer)) < 0; // write what we have BufferUtil.flipToFlush(_buffer, 0); write(_buffer,_eof,this); return Action.SCHEDULED; }
@Override public void write(int b) throws IOException { if (isClosed()) throw new EOFException("Closed"); if (_aggregate == null) _aggregate = _channel.getByteBufferPool().acquire(getBufferSize(), OUTPUT_BUFFER_DIRECT); BufferUtil.append(_aggregate, (byte)b); _written++; // Check if all written or full if (!closeIfAllContentWritten() && BufferUtil.isFull(_aggregate)) _channel.write(_aggregate, false); }
@Override public void write(int b) throws IOException { if (isClosed()) throw new EOFException("Closed"); if (_aggregate == null) _aggregate = _channel.getByteBufferPool().acquire(getBufferSize(), OUTPUT_BUFFER_DIRECT); BufferUtil.append(_aggregate, (byte)b); _written++; // Check if all written or full if (!closeIfAllContentWritten() && BufferUtil.isFull(_aggregate)) _channel.write(_aggregate, false); }