@Override public void flushBuffer(final ByteBuffer buffer, final boolean requestedSync, final List<IOCallback> callbacks) { buffer.flip(); if (buffer.limit() == 0) { factory.releaseBuffer(buffer); } else { writeDirect(buffer, requestedSync, new DelegateCallback(callbacks)); } }
@Override public void flushBuffer(final ByteBuffer buffer, final boolean requestedSync, final List<IOCallback> callbacks) { buffer.flip(); if (buffer.limit() == 0) { factory.releaseBuffer(buffer); } else { writeDirect(buffer, requestedSync, new DelegateCallback(callbacks)); } }
@Override public void write(final EncodingSupport bytes, final boolean sync, final IOCallback callback) { if (timedBuffer != null) { timedBuffer.addBytes(bytes, sync, callback); } else { final int encodedSize = bytes.getEncodeSize(); ByteBuffer buffer = factory.newBuffer(encodedSize); ActiveMQBuffer outBuffer = ActiveMQBuffers.wrappedBuffer(buffer); bytes.encode(outBuffer); buffer.clear(); buffer.limit(encodedSize); writeDirect(buffer, sync, callback); } }
@Override public void write(final EncodingSupport bytes, final boolean sync, final IOCallback callback) { if (timedBuffer != null) { timedBuffer.addBytes(bytes, sync, callback); } else { final int encodedSize = bytes.getEncodeSize(); ByteBuffer buffer = factory.newBuffer(encodedSize); ActiveMQBuffer outBuffer = ActiveMQBuffers.wrappedBuffer(buffer); bytes.encode(outBuffer); buffer.clear(); buffer.limit(encodedSize); writeDirect(buffer, sync, callback); } }
@Override public void write(final ActiveMQBuffer bytes, final boolean sync, final IOCallback callback) throws IOException { if (timedBuffer != null) { bytes.setIndex(0, bytes.capacity()); timedBuffer.addBytes(bytes, sync, callback); } else { final int readableBytes = bytes.readableBytes(); final ByteBuffer buffer = factory.newBuffer(readableBytes); //factory::newBuffer doesn't necessary return a buffer with limit == readableBytes!! buffer.limit(readableBytes); bytes.getBytes(bytes.readerIndex(), buffer); buffer.flip(); writeDirect(buffer, sync, callback); } }
@Override public void write(final ActiveMQBuffer bytes, final boolean sync, final IOCallback callback) throws IOException { if (timedBuffer != null) { bytes.setIndex(0, bytes.capacity()); timedBuffer.addBytes(bytes, sync, callback); } else { final int readableBytes = bytes.readableBytes(); final ByteBuffer buffer = factory.newBuffer(readableBytes); //factory::newBuffer doesn't necessary return a buffer with limit == readableBytes!! buffer.limit(readableBytes); bytes.getBytes(bytes.readerIndex(), buffer); buffer.flip(); writeDirect(buffer, sync, callback); } }