int nextPos = buffer.position() + size; ByteBuffer slice = buffer.duplicate(); buffer.position(align(nextPos)); slice.limit(nextPos); current.refCnt ++; dst = new PooledSendBuffer(current, slice); } else if (size > remaining) { this.current = current = getPreallocation(); buffer = current.buffer; ByteBuffer slice = buffer.duplicate(); buffer.position(align(size)); slice.limit(size); current.refCnt ++; } else { // size == remaining current.refCnt ++; this.current = getPreallocation0(); dst = new PooledSendBuffer(current, current.buffer);
@Override public void run() { super.run(); sendBufferPool.releaseExternalResources(); }
SharedUnpooledSendBuffer sharedUnpooled = getSharedUnpooled(channel); return sharedUnpooled.init(src.toByteBuffer()); int nextPos = buffer.position() + size; ByteBuffer slice = buffer.duplicate(); buffer.position(align(nextPos)); slice.limit(nextPos); current.refCnt ++; SharedPooledSendBuffer sharedPooled = getSharedPooled(channel); dst = sharedPooled.init(current, slice); this.current = current = getPreallocation(); buffer = current.buffer; ByteBuffer slice = buffer.duplicate(); buffer.position(align(size)); slice.limit(size); current.refCnt ++; SharedPooledSendBuffer sharedPooled = getSharedPooled(channel); dst = sharedPooled.init(current, slice); this.current = getPreallocation0(); SharedPooledSendBuffer sharedPooled = getSharedPooled(channel); dst = sharedPooled.init(current, current.buffer);
private Preallocation getPreallocation() { Preallocation current = this.current; if (current.refCnt == 0) { current.buffer.clear(); return current; } return getPreallocation0(); }
private Preallocation getPreallocation() { Preallocation current = this.current; if (current.refCnt == 0) { current.buffer.clear(); return current; } return getPreallocation0(); }
int nextPos = buffer.position() + size; ByteBuffer slice = buffer.duplicate(); buffer.position(align(nextPos)); slice.limit(nextPos); current.refCnt ++; dst = new PooledSendBuffer(current, slice); } else if (size > remaining) { this.current = current = getPreallocation(); buffer = current.buffer; ByteBuffer slice = buffer.duplicate(); buffer.position(align(size)); slice.limit(size); current.refCnt ++; } else { // size == remaining current.refCnt ++; this.current = getPreallocation0(); dst = new PooledSendBuffer(current, current.buffer);
channel.currentWriteBuffer = buf = sendBufferPool.acquire(evt.getMessage()); } else { future = evt.getFuture();
private Preallocation getPreallocation() { Preallocation current = this.current; if (current.refCnt == 0) { current.buffer.clear(); return current; } return getPreallocation0(); }
@Override public void run() { super.run(); sendBufferPool.releaseExternalResources(); }
channel.currentWriteBuffer = buf = sendBufferPool.acquire(evt.getMessage()); } else { buf = channel.currentWriteBuffer;
SendBuffer acquire(AbstractNioChannel<?> channel, Object message) { if (message instanceof ChannelBuffer) { return acquire(channel, (ChannelBuffer) message); } if (message instanceof FileRegion) { return acquire(channel, (FileRegion) message); } throw new IllegalArgumentException( "unsupported message type: " + message.getClass()); }
channel.currentWriteBuffer = buf = sendBufferPool.acquire(channel, evt.getMessage()); } else { buf = channel.currentWriteBuffer;
channel.currentWriteBuffer = buf = sendBufferPool.acquire(channel, evt.getMessage()); } else { buf = channel.currentWriteBuffer;
channel.currentWriteBuffer = buf = sendBufferPool.acquire(evt.getMessage()); } else { future = evt.getFuture();