com.google.flatbuffers.FlatBufferBuilder.pad()方法的使用及代码示例

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

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

FlatBufferBuilder.pad介绍

[英]Add zero valued bytes to prepare a new entry to be added
[中]添加零值字节以准备要添加的新条目

代码示例

代码示例来源:origin: objectbox/objectbox-java

public static int createIdUid(FlatBufferBuilder builder, long id, long uid) {
  builder.prep(8, 16);
  builder.putLong(uid);
  builder.pad(4);
  builder.putInt((int)id);
  return builder.offset();
 }
}

代码示例来源:origin: flipkart-incubator/kafka-filtering

/**
* Prepare to write an element of {@code size} after {@code additional_bytes}
* have been written, e.g. if you write a string, you need to align such
* the int length field is aligned to {@link com.google.flatbuffers.Constants#SIZEOF_INT}, and
* the string data follows it directly.  If all you need to do is alignment, {@code additional_bytes}
* will be 0.
*
* @param size This is the of the new element to write
* @param additional_bytes The padding size
*/
public void prep(int size, int additional_bytes) {
  // Track the biggest thing we've ever aligned to.
  if (size > minalign) minalign = size;
  // Find the amount of alignment needed such that `size` is properly
  // aligned after `additional_bytes`
  int align_size = ((~(bb.capacity() - space + additional_bytes)) + 1) & (size - 1);
  // Reallocate the buffer if needed.
  while (space < align_size + size + additional_bytes) {
    int old_buf_size = bb.capacity();
    bb = growByteBuffer(bb);
    space += bb.capacity() - old_buf_size;
  }
  pad(align_size);
}

代码示例来源:origin: com.vlkan/flatbuffers

/**
* Prepare to write an element of {@code size} after {@code additional_bytes}
* have been written, e.g. if you write a string, you need to align such
* the int length field is aligned to {@link com.google.flatbuffers.Constants#SIZEOF_INT}, and
* the string data follows it directly.  If all you need to do is alignment, {@code additional_bytes}
* will be 0.
*
* @param size This is the of the new element to write
* @param additional_bytes The padding size
*/
public void prep(int size, int additional_bytes) {
  // Track the biggest thing we've ever aligned to.
  if (size > minalign) minalign = size;
  // Find the amount of alignment needed such that `size` is properly
  // aligned after `additional_bytes`
  int align_size = ((~(bb.capacity() - space + additional_bytes)) + 1) & (size - 1);
  // Reallocate the buffer if needed.
  while (space < align_size + size + additional_bytes) {
    int old_buf_size = bb.capacity();
    bb = growByteBuffer(bb);
    space += bb.capacity() - old_buf_size;
  }
  pad(align_size);
}

代码示例来源:origin: davidmoten/flatbuffers

/**
* Prepare to write an element of `size` after `additional_bytes`
* have been written, e.g. if you write a string, you need to align such
* the int length field is aligned to {@link com.google.flatbuffers.Constants#SIZEOF_INT}, and
* the string data follows it directly.  If all you need to do is alignment, `additional_bytes`
* will be 0.
*
* @param size This is the of the new element to write.
* @param additional_bytes The padding size.
*/
public void prep(int size, int additional_bytes) {
  // Track the biggest thing we've ever aligned to.
  if (size > minalign) minalign = size;
  // Find the amount of alignment needed such that `size` is properly
  // aligned after `additional_bytes`
  int align_size = ((~(bb.capacity() - space + additional_bytes)) + 1) & (size - 1);
  // Reallocate the buffer if needed.
  while (space < align_size + size + additional_bytes) {
    int old_buf_size = bb.capacity();
    ByteBuffer old = bb;
    bb = growByteBuffer(old, bb_factory);
    if (old != bb) {
      bb_factory.releaseByteBuffer(old);
    }
    space += bb.capacity() - old_buf_size;
  }
  pad(align_size);
}

代码示例来源:origin: com.github.davidmoten/flatbuffers-java

/**
* Prepare to write an element of `size` after `additional_bytes`
* have been written, e.g. if you write a string, you need to align such
* the int length field is aligned to {@link com.google.flatbuffers.Constants#SIZEOF_INT}, and
* the string data follows it directly.  If all you need to do is alignment, `additional_bytes`
* will be 0.
*
* @param size This is the of the new element to write.
* @param additional_bytes The padding size.
*/
public void prep(int size, int additional_bytes) {
  // Track the biggest thing we've ever aligned to.
  if (size > minalign) minalign = size;
  // Find the amount of alignment needed such that `size` is properly
  // aligned after `additional_bytes`
  int align_size = ((~(bb.capacity() - space + additional_bytes)) + 1) & (size - 1);
  // Reallocate the buffer if needed.
  while (space < align_size + size + additional_bytes) {
    int old_buf_size = bb.capacity();
    ByteBuffer old = bb;
    bb = growByteBuffer(old, bb_factory);
    if (old != bb) {
      bb_factory.releaseByteBuffer(old);
    }
    space += bb.capacity() - old_buf_size;
  }
  pad(align_size);
}

代码示例来源:origin: com.google.flatbuffers/flatbuffers-java

/**
* Prepare to write an element of `size` after `additional_bytes`
* have been written, e.g. if you write a string, you need to align such
* the int length field is aligned to {@link com.google.flatbuffers.Constants#SIZEOF_INT}, and
* the string data follows it directly.  If all you need to do is alignment, `additional_bytes`
* will be 0.
*
* @param size This is the of the new element to write.
* @param additional_bytes The padding size.
*/
public void prep(int size, int additional_bytes) {
  // Track the biggest thing we've ever aligned to.
  if (size > minalign) minalign = size;
  // Find the amount of alignment needed such that `size` is properly
  // aligned after `additional_bytes`
  int align_size = ((~(bb.capacity() - space + additional_bytes)) + 1) & (size - 1);
  // Reallocate the buffer if needed.
  while (space < align_size + size + additional_bytes) {
    int old_buf_size = bb.capacity();
    ByteBuffer old = bb;
    bb = growByteBuffer(old, bb_factory);
    if (old != bb) {
      bb_factory.releaseByteBuffer(old);
    }
    space += bb.capacity() - old_buf_size;
  }
  pad(align_size);
}

代码示例来源:origin: locationtech/geogig

public static int createSHA(FlatBufferBuilder builder, int h1, long h2, long h3) {
  builder.prep(8, 24);
  builder.putLong(h3);
  builder.putLong(h2);
  builder.pad(4);
  builder.putInt(h1);
  return builder.offset();
 }
}

代码示例来源:origin: org.apache.arrow/arrow-format

public static int createBlock(FlatBufferBuilder builder, long offset, int metaDataLength, long bodyLength) {
  builder.prep(8, 24);
  builder.putLong(bodyLength);
  builder.pad(4);
  builder.putInt(metaDataLength);
  builder.putLong(offset);
  return builder.offset();
 }
}

相关文章

微信公众号

最新文章

更多