本文整理了Java中com.google.protobuf.Message.getParserForType()
方法的一些代码示例,展示了Message.getParserForType()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Message.getParserForType()
方法的具体详情如下:
包路径:com.google.protobuf.Message
类名称: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());
}
}
}
}
内容来源于网络,如有侵权,请联系作者删除!