@Override public ByteBuffer get() { final ResourceHolder<ByteBuffer> mergeBufferHolder = resource.getMergeBuffer(); closeOnExit.add(mergeBufferHolder); return mergeBufferHolder.get(); } },
@Override protected Object getAggVal(BufferAggregator agg, int rowOffset, int aggPosition) { int[] indexAndOffset = indexAndOffsets.get(rowOffset); ByteBuffer bb = aggBuffers.get(indexAndOffset[0]).get(); return agg.get(bb, indexAndOffset[1] + aggOffsetInBuffer[aggPosition]); }
protected void loadBuffer(int bufferNum) { CloseQuietly.close(holder); holder = singleThreadedBuffers.get(bufferNum); ByteBuffer bb = holder.get(); ByteOrder byteOrder = bb.order(); // slice() makes the buffer's position = 0 buffer = bb.slice().order(byteOrder); currBufferNum = bufferNum; bigEndian = byteOrder.equals(ByteOrder.BIG_ENDIAN); }
@Override public double getMetricDoubleValue(int rowOffset, int aggOffset) { BufferAggregator agg = getAggs()[aggOffset]; int[] indexAndOffset = indexAndOffsets.get(rowOffset); ByteBuffer bb = aggBuffers.get(indexAndOffset[0]).get(); return agg.getDouble(bb, indexAndOffset[1] + aggOffsetInBuffer[aggOffset]); }
@Override public long getMetricLongValue(int rowOffset, int aggOffset) { BufferAggregator agg = getAggs()[aggOffset]; int[] indexAndOffset = indexAndOffsets.get(rowOffset); ByteBuffer bb = aggBuffers.get(indexAndOffset[0]).get(); return agg.getLong(bb, indexAndOffset[1] + aggOffsetInBuffer[aggOffset]); }
@Override public boolean isNull(int rowOffset, int aggOffset) { BufferAggregator agg = getAggs()[aggOffset]; int[] indexAndOffset = indexAndOffsets.get(rowOffset); ByteBuffer bb = aggBuffers.get(indexAndOffset[0]).get(); return agg.isNull(bb, indexAndOffset[1] + aggOffsetInBuffer[aggOffset]); }
@Override public float getMetricFloatValue(int rowOffset, int aggOffset) { BufferAggregator agg = getAggs()[aggOffset]; int[] indexAndOffset = indexAndOffsets.get(rowOffset); ByteBuffer bb = aggBuffers.get(indexAndOffset[0]).get(); return agg.getFloat(bb, indexAndOffset[1] + aggOffsetInBuffer[aggOffset]); }
@Override public void decompress(ByteBuffer in, int numBytes, ByteBuffer out) { final byte[] bytes = new byte[numBytes]; in.get(bytes); try (final ResourceHolder<byte[]> outputBytesHolder = CompressedPools.getOutputBytes()) { final byte[] outputBytes = outputBytesHolder.get(); final int numDecompressedBytes = LZFDecoder.decode(bytes, outputBytes); out.put(outputBytes, 0, numDecompressedBytes); out.flip(); } catch (IOException e) { throw new RuntimeException(e); } }
@Override public Object getMetricObjectValue(int rowOffset, int aggOffset) { BufferAggregator agg = getAggs()[aggOffset]; int[] indexAndOffset = indexAndOffsets.get(rowOffset); ByteBuffer bb = aggBuffers.get(indexAndOffset[0]).get(); return agg.get(bb, indexAndOffset[1] + aggOffsetInBuffer[aggOffset]); }
protected void loadBuffer(int bufferNum) { CloseQuietly.close(holder); holder = singleThreadedDoubleBuffers.get(bufferNum); // asDoubleBuffer() makes the doubleBuffer's position = 0 doubleBuffer = holder.get().asDoubleBuffer(); currBufferNum = bufferNum; }
protected void loadBuffer(int bufferNum) { CloseQuietly.close(holder); holder = singleThreadedFloatBuffers.get(bufferNum); // asFloatBuffer() makes the floatBuffer's position = 0 floatBuffer = holder.get().asFloatBuffer(); currBufferNum = bufferNum; }
protected void loadBuffer(int bufferNum) { CloseQuietly.close(holder); holder = singleThreadedIntBuffers.get(bufferNum); // asIntBuffer() makes the buffer's position = 0 buffer = holder.get().asIntBuffer(); currBufferNum = bufferNum; }
@Override protected void loadBuffer(int bufferNum) { CloseQuietly.close(holder); holder = singleThreadedLongBuffers.get(bufferNum); buffer = holder.get(); // asLongBuffer() makes the longBuffer's position = 0 longBuffer = buffer.asLongBuffer(); currBufferNum = bufferNum; } };
@Override public void cleanup(PooledTopNParams params) { if (params != null) { ResourceHolder<ByteBuffer> resultsBufHolder = params.getResultsBufHolder(); if (resultsBufHolder != null) { resultsBufHolder.get().clear(); } CloseQuietly.close(resultsBufHolder); } }
protected void loadBuffer(int bufferNum) { CloseQuietly.close(holder); holder = singleThreadedLongBuffers.get(bufferNum); buffer = holder.get(); currBufferNum = bufferNum; reader.setBuffer(buffer); }
@Override public void put(NamedKey key, byte[] value) { try (final ResourceHolder<MemcachedClientIF> clientHolder = client.get()) { clientHolder.get().set( computeKeyHash(memcachedPrefix, key), expiration, serializeValue(key, value) ); } catch (IllegalStateException e) { // operation did not get queued in time (queue is full) errorCount.incrementAndGet(); log.warn(e, "Unable to queue cache operation"); } }
private String createDanglingObjectHandler() { return poolOfString.take().get(); } }
@Test(expected = ISE.class) public void testExceptionInResourceHolderGet() { resourceHolderObj.close(); resourceHolderObj.get(); }
@Test public void cleanup() { PooledTopNAlgorithm pooledTopNAlgorithm = new PooledTopNAlgorithm(EasyMock.mock(StorageAdapter.class), null, null); PooledTopNAlgorithm.PooledTopNParams params = EasyMock.createMock(PooledTopNAlgorithm.PooledTopNParams.class); ResourceHolder<ByteBuffer> resourceHolder = EasyMock.createMock(ResourceHolder.class); EasyMock.expect(params.getResultsBufHolder()).andReturn(resourceHolder).times(1); EasyMock.expect(resourceHolder.get()).andReturn(ByteBuffer.allocate(1)).times(1); resourceHolder.close(); EasyMock.expectLastCall().once(); EasyMock.replay(params); EasyMock.replay(resourceHolder); pooledTopNAlgorithm.cleanup(params); EasyMock.verify(params); EasyMock.verify(resourceHolder); } }
@Test public void testTake() { Assert.assertThat(resourceHolderObj, new IsInstanceOf(ResourceHolder.class)); Object expectedObject = resourceHolderObj.get(); Assert.assertEquals(expectedObject, defaultString); }