public static ByteBuffer toBuffer(Resource resource,boolean direct) throws IOException { int len=(int)resource.length(); if (len<0) throw new IllegalArgumentException("invalid resource: "+String.valueOf(resource)+" len="+len); ByteBuffer buffer = direct?BufferUtil.allocateDirect(len):BufferUtil.allocate(len); int pos=BufferUtil.flipToFill(buffer); if (resource.getFile()!=null) BufferUtil.readFrom(resource.getFile(),buffer); else { try (InputStream is = resource.getInputStream();) { BufferUtil.readFrom(is,len,buffer); } } BufferUtil.flipToFlush(buffer,pos); return buffer; }
default ByteBuffer newByteBuffer(int capacity, boolean direct) { return direct ? BufferUtil.allocateDirect(capacity) : BufferUtil.allocate(capacity); }
protected ByteBuffer newByteBuffer(int capacity, boolean direct) { return direct ? BufferUtil.allocateDirect(capacity) : BufferUtil.allocate(capacity); }
protected ByteBuffer newByteBuffer(int capacity, boolean direct) { return direct ? BufferUtil.allocateDirect(capacity) : BufferUtil.allocate(capacity); }
public ByteBuffer acquire(boolean direct) { ByteBuffer buffer = _queue.poll(); if (buffer == null) return direct ? BufferUtil.allocateDirect(_capacity) : BufferUtil.allocate(_capacity); if (_space!=null) _space.incrementAndGet(); return buffer; }
default ByteBuffer newByteBuffer(int capacity, boolean direct) { return direct ? BufferUtil.allocateDirect(capacity) : BufferUtil.allocate(capacity); }
@Override public ByteBuffer acquire(int size, boolean direct) { Bucket bucket = bucketFor(size,direct); ByteBuffer buffer = bucket==null?null:bucket._queue.poll(); if (buffer == null) { int capacity = bucket==null?size:bucket._size; buffer = direct ? BufferUtil.allocateDirect(capacity) : BufferUtil.allocate(capacity); } return buffer; }
@Override public ByteBuffer acquire(int size, boolean direct) { Bucket bucket = bucketFor(size,direct); ByteBuffer buffer = bucket==null?null:bucket._queue.poll(); if (buffer == null) { int capacity = bucket==null?size:bucket._size; buffer = direct ? BufferUtil.allocateDirect(capacity) : BufferUtil.allocate(capacity); } return buffer; }
@Override public ByteBuffer acquire(int size, boolean direct) { Bucket bucket = bucketFor(size,direct); ByteBuffer buffer = bucket==null?null:bucket._queue.poll(); if (buffer == null) { int capacity = bucket==null?size:bucket._size; buffer = direct ? BufferUtil.allocateDirect(capacity) : BufferUtil.allocate(capacity); } return buffer; }
@Override public ByteBuffer acquire(int size, boolean direct) { ByteBufferPool.Bucket bucket = bucketFor(size,direct); if (bucket==null) return direct ? BufferUtil.allocateDirect(size) : BufferUtil.allocate(size); return bucket.acquire(direct); }
@Override public ByteBuffer acquire(int size, boolean direct) { int bucket = bucketFor(size); ConcurrentMap<Integer, Queue<ByteBuffer>> buffers = buffersFor(direct); ByteBuffer result = null; Queue<ByteBuffer> byteBuffers = buffers.get(bucket); if (byteBuffers != null) result = byteBuffers.poll(); if (result == null) { int capacity = bucket * factor; result = direct ? BufferUtil.allocateDirect(capacity) : BufferUtil.allocate(capacity); } BufferUtil.clear(result); return result; }
@Override public ByteBuffer acquire(int size, boolean direct) { int bucket = bucketFor(size); ConcurrentMap<Integer, Queue<ByteBuffer>> buffers = buffersFor(direct); ByteBuffer result = null; Queue<ByteBuffer> byteBuffers = buffers.get(bucket); if (byteBuffers != null) result = byteBuffers.poll(); if (result == null) { int capacity = bucket * factor; result = direct ? BufferUtil.allocateDirect(capacity) : BufferUtil.allocate(capacity); } BufferUtil.clear(result); return result; }
public static ByteBuffer toBuffer(Resource resource,boolean direct) throws IOException { int len=(int)resource.length(); if (len<0) throw new IllegalArgumentException("invalid resource: "+String.valueOf(resource)+" len="+len); ByteBuffer buffer = direct?BufferUtil.allocateDirect(len):BufferUtil.allocate(len); int pos=BufferUtil.flipToFill(buffer); if (resource.getFile()!=null) BufferUtil.readFrom(resource.getFile(),buffer); else { try (InputStream is = resource.getInputStream();) { BufferUtil.readFrom(is,len,buffer); } } BufferUtil.flipToFlush(buffer,pos); return buffer; }
public static ByteBuffer toBuffer(Resource resource,boolean direct) throws IOException { int len=(int)resource.length(); if (len<0) throw new IllegalArgumentException("invalid resource: "+String.valueOf(resource)+" len="+len); ByteBuffer buffer = direct?BufferUtil.allocateDirect(len):BufferUtil.allocate(len); int pos=BufferUtil.flipToFill(buffer); if (resource.getFile()!=null) BufferUtil.readFrom(resource.getFile(),buffer); else { try (InputStream is = resource.getInputStream();) { BufferUtil.readFrom(is,len,buffer); } } BufferUtil.flipToFlush(buffer,pos); return buffer; }
return null; ByteBuffer buffer = BufferUtil.allocateDirect(len);
return null; ByteBuffer buffer = BufferUtil.allocateDirect(len);