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

x33g5p2x  于2022-01-24 转载在 其他  
字(7.7k)|赞(0)|评价(0)|浏览(152)

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

Message.getParserForType介绍

暂无

代码示例

代码示例来源:origin: org.apache.hadoop/hadoop-common

@SuppressWarnings("unchecked")
 @Override
 <T> T readFrom(ByteBuffer bb) throws IOException {
  // using the parser with a byte[]-backed coded input stream is the
  // most efficient way to deserialize a protobuf.  it has a direct
  // path to the PB ctor that doesn't create multi-layered streams
  // that internally buffer.
  CodedInputStream cis = CodedInputStream.newInstance(
    bb.array(), bb.position() + bb.arrayOffset(), bb.remaining());
  try {
   cis.pushLimit(cis.readRawVarint32());
   message = message.getParserForType().parseFrom(cis);
   cis.checkLastTagWas(0);
  } finally {
   // advance over the bytes read.
   bb.position(bb.position() + cis.getTotalBytesRead());
  }
  return (T)message;
 }
}

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

@java.lang.SuppressWarnings("unchecked")
public <T extends com.google.protobuf.Message> T unpack(
  java.lang.Class<T> clazz)
  throws com.google.protobuf.InvalidProtocolBufferException {
 if (!is(clazz)) {
  throw new com.google.protobuf.InvalidProtocolBufferException(
    "Type of the Any message does not match the given class.");
 }
 if (cachedUnpackValue != null) {
  return (T) cachedUnpackValue;
 }
 T defaultInstance =
   com.google.protobuf.Internal.getDefaultInstance(clazz);
 T result = (T) defaultInstance.getParserForType()
   .parseFrom(getValue());
 cachedUnpackValue = result;
 return result;
}
public static final int TYPE_URL_FIELD_NUMBER = 1;

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

private static void eagerlyMergeMessageSetExtension(
  CodedInputStream input,
  ExtensionRegistry.ExtensionInfo extension,
  ExtensionRegistryLite extensionRegistry,
  Message.Builder builder,
  FieldSet<FieldDescriptor> extensions) throws IOException {
 FieldDescriptor field = extension.descriptor;
 Message value = null;
 if (hasOriginalMessage(builder, extensions, field)) {
  Message originalMessage =
    getOriginalMessage(builder, extensions, field);
  Message.Builder subBuilder = originalMessage.toBuilder();
  input.readMessage(subBuilder, extensionRegistry);
  value = subBuilder.buildPartial();
 } else {
  value = input.readMessage(extension.defaultInstance.getParserForType(),
   extensionRegistry);
 }
 if (builder != null) {
  builder.setField(field, value);
 } else {
  extensions.setField(field, value);
 }
}

代码示例来源:origin: line/armeria

final Message msg = prototype.getParserForType().parseFrom(stream);
try {
  stream.checkLastTagWas(0);

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

value = subBuilder.buildPartial();
} else {
 value = extension.defaultInstance.getParserForType()
   .parsePartialFrom(rawBytes, extensionRegistry);

代码示例来源:origin: baidu/brpc-java

public static Message parseFrom(byte[] input, Message defaultInstance) throws IOException {
  return defaultInstance.getParserForType().parseFrom(input);
}

代码示例来源:origin: com.baidu/brpc-java

public static Message parseFrom(byte[] input, Message defaultInstance) throws IOException {
  return defaultInstance.getParserForType().parseFrom(input);
}

代码示例来源:origin: com.baidu/brpc-java

public Object inputDecode(byte[] input) throws IOException {
  return inputInstance.getParserForType().parseFrom(input);
}

代码示例来源:origin: com.baidu/brpc-java

public Object inputDecode(byte[] input, int offset, int len) throws IOException {
  return inputInstance.getParserForType().parseFrom(input, offset, len);
}

代码示例来源:origin: baidu/brpc-java

public Object inputDecode(byte[] input) throws IOException {
  return inputInstance.getParserForType().parseFrom(input);
}

代码示例来源:origin: baidu/brpc-java

public Object inputDecode(byte[] input, int offset, int len) throws IOException {
  return inputInstance.getParserForType().parseFrom(input, offset, len);
}

代码示例来源:origin: com.baidu/brpc-java

/**
 * parse proto from netty {@link ByteBuf}
 * @param input netty ByteBuf
 * @param defaultInstance default instance for proto
 * @return proto message
 * @throws IOException read io exception
 */
public static Message parseFrom(ByteBuf input, Message defaultInstance) throws IOException {
  final int length = input.readableBytes();
  byte[] array = new byte[length];
  input.readBytes(array, 0, length);
  return defaultInstance.getParserForType().parseFrom(array);
}

代码示例来源:origin: baidu/brpc-java

/**
 * parse proto from netty {@link ByteBuf}
 * @param input netty ByteBuf
 * @param defaultInstance default instance for proto
 * @return proto message
 * @throws IOException read io exception
 */
public static Message parseFrom(ByteBuf input, Message defaultInstance) throws IOException {
  final int length = input.readableBytes();
  byte[] array = new byte[length];
  input.readBytes(array, 0, length);
  return defaultInstance.getParserForType().parseFrom(array);
}

代码示例来源:origin: org.apache.beam/beam-sdks-java-extensions-protobuf

/** Get the memoized {@link Parser}, possibly initializing it lazily. */
private Parser<T> getParser() {
 if (memoizedParser == null) {
  try {
   @SuppressWarnings("unchecked")
   T protoMessageInstance = (T) protoMessageClass.getMethod("getDefaultInstance").invoke(null);
   @SuppressWarnings("unchecked")
   Parser<T> tParser = (Parser<T>) protoMessageInstance.getParserForType();
   memoizedParser = tParser;
  } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
   throw new IllegalArgumentException(e);
  }
 }
 return memoizedParser;
}

代码示例来源:origin: ks-no/eventstore2

public static void registerDeserializeMethod(Message message, String type) {
  deserializeMethods.put(type, message.getParserForType());
  deserializeClasses.put(type, message.getClass());
  classToType.put(message.getClass(), type);
}

代码示例来源:origin: baidu/brpc-java

public static Message parseFrom(DynamicCompositeByteBuf input, Message defaultInstance) throws IOException {
    final byte[] array;
    final int offset;
    final int length = input.readableBytes();
    array = new byte[length];
    input.readBytes(array, 0, length);
    offset = 0;
    return defaultInstance.getParserForType().parseFrom(array, offset, length);
  }
}

代码示例来源:origin: com.baidu/brpc-java

public static Message parseFrom(DynamicCompositeByteBuf input, Message defaultInstance) throws IOException {
    final byte[] array;
    final int offset;
    final int length = input.readableBytes();
    array = new byte[length];
    input.readBytes(array, 0, length);
    offset = 0;
    return defaultInstance.getParserForType().parseFrom(array, offset, length);
  }
}

代码示例来源:origin: io.hops/hadoop-common

@SuppressWarnings("unchecked")
 @Override
 <T> T readFrom(ByteBuffer bb) throws IOException {
  // using the parser with a byte[]-backed coded input stream is the
  // most efficient way to deserialize a protobuf.  it has a direct
  // path to the PB ctor that doesn't create multi-layered streams
  // that internally buffer.
  CodedInputStream cis = CodedInputStream.newInstance(
    bb.array(), bb.position() + bb.arrayOffset(), bb.remaining());
  try {
   cis.pushLimit(cis.readRawVarint32());
   message = message.getParserForType().parseFrom(cis);
   cis.checkLastTagWas(0);
  } finally {
   // advance over the bytes read.
   bb.position(bb.position() + cis.getTotalBytesRead());
  }
  return (T)message;
 }
}

代码示例来源:origin: ks-no/eventstore2

public static void registerDeserializeMethod(Message message) {
  deserializeMethods.put(message.getDescriptorForType().getFullName(), message.getParserForType());
  deserializeClasses.put(message.getDescriptorForType().getFullName(), message.getClass());
  classToType.put(message.getClass(), message.getDescriptorForType().getFullName());
}

代码示例来源:origin: com.github.infogen7/infogen_soa

@Override
public void channelRead0(ChannelHandlerContext ctx, FullHttpResponse response) {
  HttpHeaders headers = response.headers();
  String sequence = headers.get(X_HttpHeaderNames.x_sequence.key);
  HttpResponseStatus status = response.status();
  int code = status.code();
  if (code == 100) {
    return;
  }
  if (sequence != null) {
    SimpleStatus simplestatus = map.get(Long.valueOf(sequence));
    if (simplestatus != null) {
      ByteBuf buf = response.content();
      byte[] resp = new byte[buf.readableBytes()];
      buf.readBytes(resp);
      try {
        simplestatus.callback.run(simplestatus.responsePrototype.getParserForType().parseFrom(resp));
      } catch (InvalidProtocolBufferException e) {
        LOGGER.error(e.getMessage(), e);
        simplestatus.controller.setFailed(e.getMessage());
      }
    }
  }
}

相关文章