io.airlift.slice.Slice.getAddress()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(5.7k)|赞(0)|评价(0)|浏览(150)

本文整理了Java中io.airlift.slice.Slice.getAddress()方法的一些代码示例,展示了Slice.getAddress()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Slice.getAddress()方法的具体详情如下:
包路径:io.airlift.slice.Slice
类名称:Slice
方法名:getAddress

Slice.getAddress介绍

[英]Return the address offset of this Slice. This is appropriate for use with Unsafe if you wish to avoid all the safety belts e.g. bounds checks.
[中]返回此片的地址偏移量。如果您希望避免所有安全带,例如边界检查,这适用于不安全的情况。

代码示例

代码示例来源:origin: prestodb/presto

  1. private static int getRawInt(Slice decimal, int index)
  2. {
  3. return unsafe.getInt(decimal.getBase(), decimal.getAddress() + SIZE_OF_INT * index);
  4. }

代码示例来源:origin: prestodb/presto

  1. private static void setRawInt(Slice decimal, int index, int value)
  2. {
  3. unsafe.putInt(decimal.getBase(), decimal.getAddress() + SIZE_OF_INT * index, value);
  4. }

代码示例来源:origin: prestodb/presto

  1. private static void setRawLong(Slice decimal, int index, long value)
  2. {
  3. unsafe.putLong(decimal.getBase(), decimal.getAddress() + SIZE_OF_LONG * index, value);
  4. }

代码示例来源:origin: prestodb/presto

  1. private static long getRawLong(Slice decimal, int index)
  2. {
  3. return unsafe.getLong(decimal.getBase(), decimal.getAddress() + SIZE_OF_LONG * index);
  4. }

代码示例来源:origin: prestodb/presto

  1. private static int decompress(Decompressor decompressor, Slice input, int inputOffset, int inputLength, byte[] output, int outputOffset)
  2. {
  3. byte[] byteArray = (byte[]) input.getBase();
  4. int byteArrayOffset = inputOffset + (int) (input.getAddress() - ARRAY_BYTE_BASE_OFFSET);
  5. int size = decompressor.decompress(byteArray, byteArrayOffset, inputLength, output, outputOffset, output.length - outputOffset);
  6. return size;
  7. }
  8. }

代码示例来源:origin: prestodb/presto

  1. @Override
  2. public void writeBytes(Slice source, int sourceIndex, int length)
  3. {
  4. // Write huge chunks direct to OutputStream
  5. if (length >= DIRECT_FLUSH_SIZE) {
  6. flushBufferToOutputStream();
  7. writeDirectlyToOutputStream((byte[]) source.getBase(), sourceIndex + (int) (source.getAddress() - ARRAY_BYTE_BASE_OFFSET), length);
  8. bufferOffset += length;
  9. }
  10. else {
  11. ensureWritableBytes(length);
  12. slice.setBytes(bufferPosition, source, sourceIndex, length);
  13. bufferPosition += length;
  14. }
  15. }

代码示例来源:origin: prestodb/presto

  1. int uncompressedSize = decompressor.get().decompress((byte[]) chunk.getBase(), (int) (chunk.getAddress() - ARRAY_BYTE_BASE_OFFSET), chunk.length(), output);
  2. current = Slices.wrappedBuffer(buffer, 0, uncompressedSize).getInput();

代码示例来源:origin: prestosql/presto

  1. private static void setRawLong(Slice decimal, int index, long value)
  2. {
  3. unsafe.putLong(decimal.getBase(), decimal.getAddress() + SIZE_OF_LONG * index, value);
  4. }

代码示例来源:origin: com.facebook.presto/presto-spi

  1. private static int getRawInt(Slice decimal, int index)
  2. {
  3. return unsafe.getInt(decimal.getBase(), decimal.getAddress() + SIZE_OF_INT * index);
  4. }

代码示例来源:origin: com.facebook.presto/presto-spi

  1. private static void setRawInt(Slice decimal, int index, int value)
  2. {
  3. unsafe.putInt(decimal.getBase(), decimal.getAddress() + SIZE_OF_INT * index, value);
  4. }

代码示例来源:origin: prestosql/presto

  1. private static int getRawInt(Slice decimal, int index)
  2. {
  3. return unsafe.getInt(decimal.getBase(), decimal.getAddress() + SIZE_OF_INT * index);
  4. }

代码示例来源:origin: prestosql/presto

  1. private static void setRawInt(Slice decimal, int index, int value)
  2. {
  3. unsafe.putInt(decimal.getBase(), decimal.getAddress() + SIZE_OF_INT * index, value);
  4. }

代码示例来源:origin: prestosql/presto

  1. private static int decompress(Decompressor decompressor, Slice input, int inputOffset, int inputLength, byte[] output, int outputOffset)
  2. {
  3. byte[] byteArray = (byte[]) input.getBase();
  4. int byteArrayOffset = inputOffset + (int) (input.getAddress() - ARRAY_BYTE_BASE_OFFSET);
  5. int size = decompressor.decompress(byteArray, byteArrayOffset, inputLength, output, outputOffset, output.length - outputOffset);
  6. return size;
  7. }
  8. }

代码示例来源:origin: com.teradata/re2j-td

  1. MachineInput(Slice slice) {
  2. this.slice = slice;
  3. this.base = slice.getBase();
  4. this.address = slice.getAddress();
  5. this.length = slice.length();
  6. }

代码示例来源:origin: io.prestosql/presto-parquet

  1. private static int decompress(Decompressor decompressor, Slice input, int inputOffset, int inputLength, byte[] output, int outputOffset)
  2. {
  3. byte[] byteArray = (byte[]) input.getBase();
  4. int byteArrayOffset = inputOffset + (int) (input.getAddress() - ARRAY_BYTE_BASE_OFFSET);
  5. int size = decompressor.decompress(byteArray, byteArrayOffset, inputLength, output, outputOffset, output.length - outputOffset);
  6. return size;
  7. }
  8. }

代码示例来源:origin: uk.co.nichesolutions.presto/presto-orc

  1. private int decompressSnappy(Slice in)
  2. throws IOException
  3. {
  4. byte[] inArray = (byte[]) in.getBase();
  5. int inOffset = (int) (in.getAddress() - ARRAY_BYTE_BASE_OFFSET);
  6. int inLength = in.length();
  7. int uncompressedLength = Snappy.getUncompressedLength(inArray, inOffset);
  8. checkArgument(uncompressedLength <= maxBufferSize, "Snappy requires buffer (%s) larger than max size (%s)", uncompressedLength, maxBufferSize);
  9. allocateOrGrowBuffer(uncompressedLength, false);
  10. return Snappy.uncompress(inArray, inOffset, inLength, buffer, 0);
  11. }

代码示例来源:origin: airlift/slice

  1. public XxHash64 update(Slice data, int offset, int length)
  2. {
  3. checkPositionIndexes(0, offset + length, data.length());
  4. updateHash(data.getBase(), data.getAddress() + offset, length);
  5. return this;
  6. }

代码示例来源:origin: airlift/slice

  1. @Override
  2. public void doCopy(Slice data, long srcOffset, long destOffset, int length)
  3. {
  4. Object base = data.getBase();
  5. srcOffset += data.getAddress();
  6. destOffset += data.getAddress();
  7. int bytesToCopy = length - (length % 8);
  8. unsafe.copyMemory(base, srcOffset, base, destOffset, bytesToCopy);
  9. unsafe.copyMemory(base, srcOffset + bytesToCopy, base, destOffset + bytesToCopy, length - bytesToCopy);
  10. }
  11. };

代码示例来源:origin: io.airlift/slice

  1. public XxHash64 update(Slice data, int offset, int length)
  2. {
  3. checkPositionIndexes(0, offset + length, data.length());
  4. updateHash(data.getBase(), data.getAddress() + offset, length);
  5. return this;
  6. }

代码示例来源:origin: io.airlift/slice

  1. @Override
  2. public void doCopy(Slice data, long srcOffset, long destOffset, int length)
  3. {
  4. Object base = data.getBase();
  5. srcOffset += data.getAddress();
  6. destOffset += data.getAddress();
  7. int bytesToCopy = length - (length % 8);
  8. unsafe.copyMemory(base, srcOffset, base, destOffset, bytesToCopy);
  9. unsafe.copyMemory(base, srcOffset + bytesToCopy, base, destOffset + bytesToCopy, length - bytesToCopy);
  10. }
  11. };

相关文章