net.openhft.chronicle.bytes.Bytes.underlyingObject()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(1.5k)|赞(0)|评价(0)|浏览(88)

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

Bytes.underlyingObject介绍

暂无

代码示例

代码示例来源:origin: net.openhft/chronicle-engine

private Bytes getFileContentsFromDisk0(@NotNull Path path, Bytes using) throws IOException {
  if (!Files.exists(path)) return null;
  File file = path.toFile();
  Buffers b = Buffers.BUFFERS.get();
  Bytes<ByteBuffer> readingBytes = b.valueBuffer;
  try (FileChannel fc = new FileInputStream(file).getChannel()) {
    readingBytes.ensureCapacity(fc.size());
    @Nullable ByteBuffer dst = readingBytes.underlyingObject();
    dst.clear();
    fc.read(dst);
    readingBytes.readPositionRemaining(0, dst.position());
    dst.flip();
  }
  readingBytes.reserve();
  return readingBytes;
}

代码示例来源:origin: net.openhft/chronicle-bytes

@Override
  protected void setValue(Object o, @NotNull BytesIn read) throws IllegalAccessException, IORuntimeException {
    @NotNull Bytes bytes = (Bytes) field.get(o);
    long stopBit = read.readStopBit();
    if (stopBit == -1) {
      if (bytes != null)
        bytes.release();
      field.set(o, null);
      return;
    }
    int length = Maths.toUInt31(stopBit);
    @NotNull Bytes bs;
    if (bytes == null) {
      bs = Bytes.elasticHeapByteBuffer(length);
    } else {
      bs = bytes;
    }
    Object uo = bs.underlyingObject();
    if (uo instanceof ByteBuffer && !(bs.bytesStore() instanceof NativeBytesStore)) {
      read.read(((ByteBuffer) uo).array(), 0, length);
    } else {
      bs.clear();
      read.read(bs, length);
    }
    bs.readLimit(length);
    field.set(o, bs);
  }
}

相关文章

微信公众号

最新文章

更多