com.google.protobuf.ByteString.byteAt()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(10.2k)|赞(0)|评价(0)|浏览(135)

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

ByteString.byteAt介绍

[英]Gets the byte at the given index. This method should be used only for random access to individual bytes. To access bytes sequentially, use the ByteIterator returned by #iterator(), and call #substring(int,int) first if necessary.
[中]获取给定索引处的字节。此方法应仅用于对单个字节的随机访问。要按顺序访问字节,请使用#iterator()返回的ByteIterator,必要时首先调用#substring(int,int)。

代码示例

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

@Override
 public byte byteAt(int offset) {
  return input.byteAt(offset);
 }
});

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

/**
 * Gets the byte at the given index.
 * Throws {@link ArrayIndexOutOfBoundsException} for backwards-compatibility
 * reasons although it would more properly be {@link
 * IndexOutOfBoundsException}.
 *
 * @param index index of byte
 * @return the value
 * @throws ArrayIndexOutOfBoundsException {@code index} is < 0 or >= size
 */
@Override
public byte byteAt(int index) {
 checkIndex(index, totalLength);
 // Find the relevant piece by recursive descent
 if (index < leftLength) {
  return left.byteAt(index);
 }
 return right.byteAt(index - leftLength);
}

代码示例来源:origin: osmandapp/Osmand

/**
 * Gets the byte at the given index.
 * Throws {@link ArrayIndexOutOfBoundsException} for backwards-compatibility
 * reasons although it would more properly be {@link
 * IndexOutOfBoundsException}.
 *
 * @param index index of byte
 * @return the value
 * @throws ArrayIndexOutOfBoundsException {@code index} is < 0 or >= size
 */
@Override
public byte byteAt(int index) {
 if (index < 0) {
  throw new ArrayIndexOutOfBoundsException("Index < 0: " + index);
 }
 if (index > totalLength) {
  throw new ArrayIndexOutOfBoundsException(
    "Index > length: " + index + ", " + totalLength);
 }
 byte result;
 // Find the relevant piece by recursive descent
 if (index < leftLength) {
  result = left.byteAt(index);
 } else {
  result = right.byteAt(index - leftLength);
 }
 return result;
}

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

@Override
public byte nextByte() {
 try {
  return byteAt(position++);
 } catch (IndexOutOfBoundsException e) {
  throw new NoSuchElementException(e.getMessage());
 }
}

代码示例来源:origin: googleapis/google-cloud-java

@Override
public String toString() {
 ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 StringBuilder stBuilder = new StringBuilder();
 for (int i = 0; i < byteString.size(); i++) {
  stBuilder.append(String.format("%02x", byteString.byteAt(i)));
 }
 return toStringHelper.add("bytes", stBuilder.toString()).toString();
}

代码示例来源:origin: googleapis/google-cloud-java

@Override
public String toString() {
 ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 StringBuilder stBuilder = new StringBuilder();
 for (int i = 0; i < Math.min(256, byteString.size()); i++) {
  stBuilder.append(String.format("%02x", byteString.byteAt(i)));
 }
 if (byteString.size() > 256) {
  stBuilder.append("...");
 }
 return toStringHelper.add("bytes", stBuilder.toString()).toString();
}

代码示例来源:origin: googleapis/google-cloud-java

@Override
public String toString() {
 ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 StringBuilder stBuilder = new StringBuilder();
 for (int i = 0; i < Math.min(256, byteString.size()); i++) {
  stBuilder.append(String.format("%02x", byteString.byteAt(i)));
 }
 if (byteString.size() > 256) {
  stBuilder.append("...");
 }
 return toStringHelper.add("bytes", stBuilder.toString()).toString();
}

代码示例来源:origin: googleapis/google-cloud-java

@Override
 public int compare(ByteString o1, ByteString o2) {
  int sizeA = o1.size();
  int sizeB = o2.size();
  int shortestSize = Math.min(sizeA, sizeB);
  for (int i = 0; i < shortestSize; i++) {
   int byteA = o1.byteAt(i) & 0xff;
   int byteB = o2.byteAt(i) & 0xff;

   if (byteA != byteB) {
    return byteA < byteB ? -1 : 1;
   }
  }
  if (sizeA == sizeB) {
   return 0;
  }
  return sizeA < sizeB ? -1 : 1;
 }
}

代码示例来源:origin: osmandapp/Osmand

final StringBuilder builder = new StringBuilder(input.size());
for (int i = 0; i < input.size(); i++) {
 final byte b = input.byteAt(i);
 switch (b) {

代码示例来源:origin: googleapis/google-cloud-java

private int compareBlobs(Value left, Value right) {
 ByteString leftBytes = left.getBytesValue();
 ByteString rightBytes = right.getBytesValue();
 int size = Math.min(leftBytes.size(), rightBytes.size());
 for (int i = 0; i < size; i++) {
  // Make sure the bytes are unsigned
  int thisByte = leftBytes.byteAt(i) & 0xff;
  int otherByte = rightBytes.byteAt(i) & 0xff;
  if (thisByte < otherByte) {
   return -1;
  } else if (thisByte > otherByte) {
   return 1;
  }
  // Byte values are equal, continue with comparison
 }
 return Integer.compare(leftBytes.size(), rightBytes.size());
}

代码示例来源:origin: googleapis/google-cloud-java

/** Lexicographically compares this row's key to another row's key. */
 @Override
 public int compareTo(@Nonnull Row row) {
  int sizeA = getKey().size();
  int sizeB = row.getKey().size();
  int size = Math.min(sizeA, sizeB);

  for (int i = 0; i < size; i++) {
   int byteA = getKey().byteAt(i) & 0xff;
   int byteB = row.getKey().byteAt(i) & 0xff;
   if (byteA == byteB) {
    continue;
   } else {
    return byteA < byteB ? -1 : 1;
   }
  }
  if (sizeA == sizeB) {
   return 0;
  }
  return sizeA < sizeB ? -1 : 1;
 }
}

代码示例来源:origin: osmandapp/Osmand

int pos = 0;
for (int i = 0; i < input.size(); i++) {
 byte c = input.byteAt(i);
 if (c == '\\') {
  if (i + 1 < input.size()) {
   ++i;
   c = input.byteAt(i);
   if (isOctal(c)) {
    if (i + 1 < input.size() && isOctal(input.byteAt(i + 1))) {
     ++i;
     code = code * 8 + digitValue(input.byteAt(i));
    if (i + 1 < input.size() && isOctal(input.byteAt(i + 1))) {
     ++i;
     code = code * 8 + digitValue(input.byteAt(i));
      if (i + 1 < input.size() && isHex(input.byteAt(i + 1))) {
       ++i;
       code = digitValue(input.byteAt(i));
      } else {
       throw new InvalidEscapeSequenceException(
         "Invalid escape sequence: '\\x' with no digits");
      if (i + 1 < input.size() && isHex(input.byteAt(i + 1))) {
       ++i;
       code = code * 16 + digitValue(input.byteAt(i));

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

int pos = 0;
for (int i = 0; i < input.size(); i++) {
 byte c = input.byteAt(i);
 if (c == '\\') {
  if (i + 1 < input.size()) {
   ++i;
   c = input.byteAt(i);
   if (isOctal(c)) {
    if (i + 1 < input.size() && isOctal(input.byteAt(i + 1))) {
     ++i;
     code = code * 8 + digitValue(input.byteAt(i));
    if (i + 1 < input.size() && isOctal(input.byteAt(i + 1))) {
     ++i;
     code = code * 8 + digitValue(input.byteAt(i));
      if (i + 1 < input.size() && isHex(input.byteAt(i + 1))) {
       ++i;
       code = digitValue(input.byteAt(i));
      } else {
       throw new InvalidEscapeSequenceException(
         "Invalid escape sequence: '\\x' with no digits");
      if (i + 1 < input.size() && isHex(input.byteAt(i + 1))) {
       ++i;
       code = code * 16 + digitValue(input.byteAt(i));

代码示例来源:origin: MovingBlocks/Terasology

private <T> Map<Class<? extends T>, Integer> applySerializationInfo(List<NetData.SerializationInfo> infoList, ClassLibrary<T> classLibrary) {
  Map<Class<? extends T>, Integer> idTable = Maps.newHashMap();
  for (NetData.SerializationInfo info : infoList) {
    ClassMetadata<? extends T, ?> metadata = classLibrary.getMetadata(new SimpleUri(info.getName()));
    if (metadata != null) {
      idTable.put(metadata.getType(), info.getId());
      for (int i = 0; i < info.getFieldIds().size(); ++i) {
        FieldMetadata<?, ?> field = metadata.getField(info.getFieldName(i));
        if (field != null) {
          field.setId(info.getFieldIds().byteAt(i));
        } else {
          logger.error("Server has unknown field '{}' on '{}'", info.getFieldName(i), info.getName());
        }
      }
    } else {
      logger.error("Server has unknown class '{}'", info.getName());
    }
  }
  return idTable;
}

代码示例来源:origin: MovingBlocks/Terasology

private Event deserializeOnto(Event targetEvent, EntityData.Event eventData, EventMetadata<? extends Event> eventMetadata) {
  Serializer serializer = typeSerializationLibrary.getSerializerFor(eventMetadata);
  for (int i = 0; i < eventData.getFieldIds().size(); ++i) {
    byte fieldId = eventData.getFieldIds().byteAt(i);
    ReplicatedFieldMetadata<?, ?> fieldInfo = eventMetadata.getField(fieldId);
    if (fieldInfo == null) {
      logger.error("Unable to serialize field {}, out of bounds", fieldId);
      continue;
    }
    if (fieldInfo.isReplicated()) {
      serializer.deserializeOnto(targetEvent, fieldInfo, new ProtobufPersistedData(eventData.getFieldValue(i)), deserializationContext);
    }
  }
  return targetEvent;
}

代码示例来源:origin: MovingBlocks/Terasology

if (metadata == null) {
  logger.warn("Skipping unknown component {}", componentId);
  fieldPos += UnsignedBytes.toInt(entityData.getComponentFieldCounts().byteAt(componentIndex));
  continue;
  fieldPos += UnsignedBytes.toInt(entityData.getComponentFieldCounts().byteAt(componentIndex));
  continue;
for (int fieldIndex = 0; fieldIndex < UnsignedBytes.toInt(entityData.getComponentFieldCounts().byteAt(componentIndex)); ++fieldIndex) {
  byte fieldId = entityData.getFieldIds().byteAt(fieldPos);
  ReplicatedFieldMetadata fieldMetadata = metadata.getField(fieldId);
  if (fieldMetadata != null && fieldCheck.shouldDeserialize(metadata, fieldMetadata)) {

代码示例来源:origin: googleapis/google-cloud-java

public static ByteStringRange prefix(ByteString prefix) {
 if (prefix.isEmpty()) {
  return unbounded();
 }
 int offset = prefix.size() - 1;
 int curByte = 0xFF;
 while (offset >= 0) {
  curByte = prefix.byteAt(offset) & 0xFF;
  if (curByte != 0xFF) {
   break;
  }
  offset--;
 }
 if (offset < 0) {
  // We got an 0xFFFF... (only FFs) stopRow value which is
  // the last possible prefix before the end of the table.
  // So set it to stop at the 'end of the table'
  return unbounded().startClosed(prefix);
 }
 ByteString endPrefix = offset == 0 ? ByteString.EMPTY : prefix.substring(0, offset);
 ByteString endSuffix = UnsafeByteOperations.unsafeWrap(new byte[] {(byte) (curByte + 1)});
 ByteString end = endPrefix.concat(endSuffix);
 ByteStringRange range = ByteStringRange.unbounded().startClosed(prefix);
 if (!end.isEmpty()) {
  range.endOpen(end);
 }
 return range;
}

代码示例来源:origin: yeriomin/play-store-api

@Override
 public byte byteAt(int offset) {
  return input.byteAt(offset);
 }
});

代码示例来源:origin: com.google.cloud/google-cloud-core

@Override
public String toString() {
 ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 StringBuilder stBuilder = new StringBuilder();
 for (int i = 0; i < Math.min(256, byteString.size()); i++) {
  stBuilder.append(String.format("%02x", byteString.byteAt(i)));
 }
 if (byteString.size() > 256) {
  stBuilder.append("...");
 }
 return toStringHelper.add("bytes", stBuilder.toString()).toString();
}

代码示例来源:origin: com.google.cloud/gcloud-java-core

@Override
public String toString() {
 ToStringHelper toStringHelper = MoreObjects.toStringHelper(this);
 StringBuilder stBuilder = new StringBuilder();
 for (int i = 0; i < Math.min(256, byteString.size()); i++) {
  stBuilder.append(String.format("%02x", byteString.byteAt(i)));
 }
 if (byteString.size() > 256) {
  stBuilder.append("...");
 }
 return toStringHelper.add("bytes", stBuilder.toString()).toString();
}

相关文章