当前位置: 首页>>代码示例>>Java>>正文


Java ByteBufferUtils.readLong方法代码示例

本文整理汇总了Java中org.apache.hadoop.hbase.util.ByteBufferUtils.readLong方法的典型用法代码示例。如果您正苦于以下问题:Java ByteBufferUtils.readLong方法的具体用法?Java ByteBufferUtils.readLong怎么用?Java ByteBufferUtils.readLong使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.hadoop.hbase.util.ByteBufferUtils的用法示例。


在下文中一共展示了ByteBufferUtils.readLong方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getFirstKeyInBlock

import org.apache.hadoop.hbase.util.ByteBufferUtils; //导入方法依赖的package包/类
@Override
public ByteBuffer getFirstKeyInBlock(ByteBuffer block) {
  block.mark();
  block.position(Bytes.SIZEOF_INT);
  byte familyLength = block.get();
  ByteBufferUtils.skip(block, familyLength);
  byte flag = block.get();
  int keyLength = ByteBufferUtils.readCompressedInt(block);
  ByteBufferUtils.readCompressedInt(block); // valueLength
  ByteBufferUtils.readCompressedInt(block); // commonLength
  ByteBuffer result = ByteBuffer.allocate(keyLength);

  // copy row
  int pos = result.arrayOffset();
  block.get(result.array(), pos, Bytes.SIZEOF_SHORT);
  pos += Bytes.SIZEOF_SHORT;
  short rowLength = result.getShort();
  block.get(result.array(), pos, rowLength);
  pos += rowLength;

  // copy family
  int savePosition = block.position();
  block.position(Bytes.SIZEOF_INT);
  block.get(result.array(), pos, familyLength + Bytes.SIZEOF_BYTE);
  pos += familyLength + Bytes.SIZEOF_BYTE;

  // copy qualifier
  block.position(savePosition);
  int qualifierLength =
      keyLength - pos + result.arrayOffset() - KeyValue.TIMESTAMP_TYPE_SIZE;
  block.get(result.array(), pos, qualifierLength);
  pos += qualifierLength;

  // copy the timestamp and type
  int timestampFitInBytes =
      ((flag & MASK_TIMESTAMP_LENGTH) >>> SHIFT_TIMESTAMP_LENGTH) + 1;
  long timestamp = ByteBufferUtils.readLong(block, timestampFitInBytes);
  if ((flag & FLAG_TIMESTAMP_SIGN) != 0) {
    timestamp = -timestamp;
  }
  result.putLong(pos, timestamp);
  pos += Bytes.SIZEOF_LONG;
  block.get(result.array(), pos, Bytes.SIZEOF_BYTE);

  block.reset();
  return result;
}
 
开发者ID:fengchen8086,项目名称:LCIndex-HBase-0.94.16,代码行数:48,代码来源:DiffKeyDeltaEncoder.java


注:本文中的org.apache.hadoop.hbase.util.ByteBufferUtils.readLong方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。