正在查看: 逼多多 v3.6.2 应用的 ProtoLiteUtils.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 逼多多 v3.6.2 应用的 ProtoLiteUtils.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package io.grpc.protobuf.lite;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.ExtensionRegistryLite;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.MessageLite;
import com.google.protobuf.Parser;
import io.grpc.ExperimentalApi;
import io.grpc.Metadata;
import io.grpc.MethodDescriptor;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.ref.Reference;
import q.l;
@ExperimentalApi("Will remain experimental as protobuf lite API is not stable")
public final class ProtoLiteUtils {
private static final int BUF_SIZE = 8192;
static final int DEFAULT_MAX_MESSAGE_SIZE = 4194304;
static volatile ExtensionRegistryLite globalRegistry = ExtensionRegistryLite.getEmptyRegistry();
private static final class MessageMarshaller<T extends MessageLite> implements MethodDescriptor.PrototypeMarshaller<T> {
private static final ThreadLocal<Reference<byte[]>> bufs = new ThreadLocal<>();
private final T defaultInstance;
private final Parser<T> parser;
private final int recursionLimit;
MessageMarshaller(T t, int i) {
this.defaultInstance = (T) l.o(t, "defaultInstance cannot be null");
this.parser = t.getParserForType();
this.recursionLimit = i;
}
private T parseFrom(CodedInputStream codedInputStream) throws InvalidProtocolBufferException {
T t = (T) this.parser.parseFrom(codedInputStream, ProtoLiteUtils.globalRegistry);
try {
codedInputStream.checkLastTagWas(0);
return t;
} catch (InvalidProtocolBufferException e) {
e.setUnfinishedMessage(t);
throw e;
}
}
@Override
public Class<T> getMessageClass() {
return (Class<T>) this.defaultInstance.getClass();
}
@Override
public T getMessagePrototype() {
return this.defaultInstance;
}
@Override
public T parse(java.io.InputStream r6) {
throw new UnsupportedOperationException("Method not decompiled: io.grpc.protobuf.lite.ProtoLiteUtils.MessageMarshaller.parse(java.io.InputStream):com.google.protobuf.MessageLite");
}
@Override
public InputStream stream(T t) {
return new ProtoInputStream(t, this.parser);
}
}
private static final class MetadataMarshaller<T extends MessageLite> implements Metadata.BinaryMarshaller<T> {
private final T defaultInstance;
MetadataMarshaller(T t) {
this.defaultInstance = t;
}
@Override
public T parseBytes(byte[] bArr) {
try {
return (T) this.defaultInstance.getParserForType().parseFrom(bArr, ProtoLiteUtils.globalRegistry);
} catch (InvalidProtocolBufferException e) {
throw new IllegalArgumentException((Throwable) e);
}
}
@Override
public byte[] toBytes(T t) {
return t.toByteArray();
}
}
private ProtoLiteUtils() {
}
static long copy(InputStream inputStream, OutputStream outputStream) throws IOException {
l.o(inputStream, "inputStream cannot be null!");
l.o(outputStream, "outputStream cannot be null!");
byte[] bArr = new byte[8192];
long j = 0;
while (true) {
int read = inputStream.read(bArr);
if (read == -1) {
return j;
}
outputStream.write(bArr, 0, read);
j += read;
}
}
public static <T extends MessageLite> MethodDescriptor.Marshaller<T> marshaller(T t) {
return new MessageMarshaller(t, -1);
}
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/10108")
public static <T extends MessageLite> MethodDescriptor.Marshaller<T> marshallerWithRecursionLimit(T t, int i) {
return new MessageMarshaller(t, i);
}
public static <T extends MessageLite> Metadata.BinaryMarshaller<T> metadataMarshaller(T t) {
return new MetadataMarshaller(t);
}
public static void setExtensionRegistry(ExtensionRegistryLite extensionRegistryLite) {
globalRegistry = (ExtensionRegistryLite) l.o(extensionRegistryLite, "newRegistry");
}
}