@Override public Block readBlock(SliceInput input) { // read the encoding name String encodingName = readLengthPrefixedString(input); // look up the encoding factory BlockEncoding blockEncoding = blockEncodings.get(encodingName); checkArgument(blockEncoding != null, "Unknown block encoding %s", encodingName); // load read the encoding factory from the output stream return blockEncoding.readBlock(this, input); }
@Override public void writeBlock(SliceOutput output, Block block) { while (true) { // get the encoding name String encodingName = block.getEncodingName(); // look up the BlockEncoding BlockEncoding blockEncoding = blockEncodings.get(encodingName); // see if a replacement block should be written instead Optional<Block> replacementBlock = blockEncoding.replacementBlockForWrite(block); if (replacementBlock.isPresent()) { block = replacementBlock.get(); continue; } // write the name to the output writeLengthPrefixedString(output, encodingName); // write the block to the output blockEncoding.writeBlock(this, output, block); break; } }
public void addBlockEncoding(BlockEncoding blockEncoding) { requireNonNull(blockEncoding, "blockEncoding is null"); BlockEncoding existingEntry = blockEncodings.putIfAbsent(blockEncoding.getName(), blockEncoding); checkArgument(existingEntry == null, "Encoding %s is already registered", blockEncoding.getName()); }
private static Block copyBlock(Block block) { DynamicSliceOutput sliceOutput = new DynamicSliceOutput(1024); BlockEncoding blockEncoding = block.getEncoding(); blockEncoding.writeBlock(sliceOutput, block); return blockEncoding.readBlock(sliceOutput.slice().getInput()); }
public static void writeBlock(BlockEncodingSerde blockEncodingSerde, SliceOutput output, Block block) { BlockEncoding encoding = block.getEncoding(); blockEncodingSerde.writeBlockEncoding(output, encoding); encoding.writeBlock(output, block); }
@Override public void writeBlockEncoding(SliceOutput output, BlockEncoding encoding) { // get the encoding name String encodingName = encoding.getName(); // look up the encoding factory BlockEncodingFactory<BlockEncoding> blockEncoding = encoding.getFactory(); // write the name to the output writeLengthPrefixedString(output, encodingName); // write the encoding to the output blockEncoding.writeEncoding(this, output, encoding); } }
public static void writeBlock(SliceOutput output, Block block) { BlockEncoding encoding = block.getEncoding(); BlockEncodingManager.writeBlockEncodingInternal(output, encoding); encoding.writeBlock(output, block); } }
@Override public void writeBlock(SliceOutput output, Block block) { while (true) { // get the encoding name String encodingName = block.getEncodingName(); // look up the encoding factory BlockEncoding blockEncoding = blockEncodings.get(encodingName); // see if a replacement block should be written instead Optional<Block> replacementBlock = blockEncoding.replacementBlockForWrite(block); if (replacementBlock.isPresent()) { block = replacementBlock.get(); continue; } // write the name to the output writeLengthPrefixedString(output, encodingName); // write the block to the output blockEncoding.writeBlock(this, output, block); break; } }
@Override public Block readBlock(SliceInput input) { // read the encoding name String encodingName = readLengthPrefixedString(input); // look up the encoding factory BlockEncoding blockEncoding = blockEncodings.get(encodingName); checkArgument(blockEncoding != null, "Unknown block encoding %s", encodingName); // load read the encoding factory from the output stream return blockEncoding.readBlock(this, input); }
public void addBlockEncoding(BlockEncoding blockEncoding) { requireNonNull(blockEncoding, "blockEncoding is null"); BlockEncoding existingEntry = blockEncodings.putIfAbsent(blockEncoding.getName(), blockEncoding); checkArgument(existingEntry == null, "Encoding %s is already registered", blockEncoding.getName()); }
public static Block readBlock(BlockEncodingSerde blockEncodingSerde, SliceInput input) { BlockEncoding blockEncoding = blockEncodingSerde.readBlockEncoding(input); return blockEncoding.readBlock(input); }
public void installPlugin(Plugin plugin) log.info("Registering block encoding %s", blockEncoding.getName()); blockEncodingManager.addBlockEncoding(blockEncoding);