@Override public void get(ByteBuffer key, ReaderResult result) throws IOException { if (key.equals(ByteBuffer.wrap("nullKey".getBytes()))) { result.notFound(); } else { result.requiresBufferSize(returnValue.length); result.getBuffer().position(0).limit(returnValue.length); result.getBuffer().put(returnValue); result.getBuffer().flip(); result.found(); } }
@Override public void get(ByteBuffer key, ReaderResult result) throws IOException { byte[] v = map.get(key); if (v == null) { result.notFound(); } else { result.found(); result.requiresBufferSize(v.length); System.arraycopy(v, 0, result.getBuffer().array(), 0, v.length); result.getBuffer().limit(v.length); result.getBuffer().rewind(); } }
@Override public void get(ByteBuffer key, ReaderResult result) throws IOException { StringBuilder sb = new StringBuilder(); sb.append("Original value: "); sb.append(BytesUtils.bytesToHexString(key)); sb.append(" Assigned to partition number: "); sb.append(partNum); byte[] bytes = sb.toString().getBytes(); result.requiresBufferSize(bytes.length); System.arraycopy(bytes, 0, result.getBuffer().array(), 0, bytes.length); result.found(); }
private void readRecordAtOffset(long recordFileOffset, ReaderResult result) throws IOException { result.getBuffer().rewind(); result.getBuffer().limit(readBufferSize); recordFile.read(result.getBuffer(), recordFileOffset); result.getBuffer().rewind(); int recordSize = EncodingHelper.decodeLittleEndianVarInt(result.getBuffer()); int bytesInRecordSize = result.getBuffer().position(); if (result.getBuffer().remaining() < recordSize) { result.getBuffer().position(0); result.getBuffer().limit(recordSize); int bytesReadTemp = recordFile.read(result.getBuffer(), recordFileOffset + bytesInRecordSize + bytesRead); result.getBuffer().position(0); result.getBuffer().limit(recordSize + result.getBuffer().position());
@Override public HankResponse get(int domainId, ByteBuffer key) { ReaderResult result = readerResultThreadLocal.get(); // If buffer exceeds limit, reset it if (result.getBuffer() != null && result.getBuffer().capacity() > bufferReuseMaxSize) { readerResultThreadLocal.remove(); result = readerResultThreadLocal.get(); } result.clear(); return _get(this, domainId, key, result); }
public HankResponse get(ByteBuffer key, ReaderResult result) throws IOException { // Increment requests counter LOG.trace("Partition GET"); reader.get(key, result); int l1CacheHit = result.getL1CacheHit() ? 1 : 0; int l2CacheHit = result.getL2CacheHit() ? 1 : 0; if (result.isFound()) { countersWindow.increment(1, 1, result.getBuffer().remaining(), l1CacheHit, l2CacheHit); return HankResponse.value(result.getBuffer()); } else { countersWindow.increment(1, 0, 0, l1CacheHit, l2CacheHit); return NOT_FOUND; } }
decompressedBlockByteBuffer = decompressBlock(result.getBuffer()); result.getBuffer().clear(); result.getBuffer().put( decompressedBlockByteBuffer.array(), decompressedBlockByteBuffer.arrayOffset() + decompressedBlockByteBuffer.position(), valueSize); result.getBuffer().flip(); addValueToCache(locationDeepCopy, result.getBuffer());
@Override public void get(ByteBuffer key, ReaderResult result) throws IOException { // we want at least readBufferSize bytes of available space. we might resize // again later. result.requiresBufferSize(readBufferSize); // ask the keyfile for this key keyFileReader.get(key, result); // if the key is found, then we are prepared to do the second lookup. if (result.isFound()) { // now we know where to look readRecord(result.getBuffer(), result); } }
ByteBuffer buffer = result.getBuffer(); buffer.rewind(); buffer.limit(maxCompressedBufferSize);
@Test public void testIt() throws Exception { EchoReader r = new EchoReader(57); ReaderResult result = new ReaderResult(); r.get(ByteBuffer.wrap(new byte[]{1, 2, 3}), result); assertTrue(result.isFound()); assertEquals("Original value: 01 02 03 Assigned to partition number: 57", new String(result.getBuffer().array())); } }
ByteBuffer value = readerResult.getBuffer();