Class ProtoLiteUtils
Note that this class will remain experimental for the foreseeable future as the proto lite API, which this class depends on, is not guaranteed to be stable. This is explained in protobuf documentation at: https://github.com/protocolbuffers/protobuf/blob/main/java/lite.md
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
ProtoLiteUtils.MessageMarshaller<T extends com.google.protobuf.MessageLite>
private static final class
ProtoLiteUtils.MetadataMarshaller<T extends com.google.protobuf.MessageLite>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int
(package private) static final int
The same value asGrpcUtil.DEFAULT_MAX_MESSAGE_SIZE
.(package private) static com.google.protobuf.ExtensionRegistryLite
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static long
copy
(InputStream from, OutputStream to) Copies the data from input stream to output stream.static <T extends com.google.protobuf.MessageLite>
MethodDescriptor.Marshaller<T> marshaller
(T defaultInstance) Creates aMethodDescriptor.Marshaller
for protos of the same type asdefaultInstance
.static <T extends com.google.protobuf.MessageLite>
MethodDescriptor.Marshaller<T> marshallerWithRecursionLimit
(T defaultInstance, int recursionLimit) Creates aMethodDescriptor.Marshaller
for protos of the same type asdefaultInstance
and a custom limit for the recursion depth.static <T extends com.google.protobuf.MessageLite>
Metadata.BinaryMarshaller<T> metadataMarshaller
(T defaultInstance) Produce a metadata marshaller for a protobuf type.static void
setExtensionRegistry
(com.google.protobuf.ExtensionRegistryLite newRegistry) Sets the global registry for proto marshalling shared across all servers and clients.
-
Field Details
-
globalRegistry
static volatile com.google.protobuf.ExtensionRegistryLite globalRegistry -
BUF_SIZE
private static final int BUF_SIZE- See Also:
-
DEFAULT_MAX_MESSAGE_SIZE
static final int DEFAULT_MAX_MESSAGE_SIZEThe same value asGrpcUtil.DEFAULT_MAX_MESSAGE_SIZE
.- See Also:
-
-
Constructor Details
-
ProtoLiteUtils
private ProtoLiteUtils()
-
-
Method Details
-
setExtensionRegistry
public static void setExtensionRegistry(com.google.protobuf.ExtensionRegistryLite newRegistry) Sets the global registry for proto marshalling shared across all servers and clients.Warning: This API will likely change over time. It is not possible to have separate registries per Process, Server, Channel, Service, or Method. This is intentional until there is a more appropriate API to set them.
Warning: Do NOT modify the extension registry after setting it. It is thread safe to call
setExtensionRegistry(com.google.protobuf.ExtensionRegistryLite)
, but not to modify the underlying object.If you need custom parsing behavior for protos, you will need to make your own
MethodDescriptor.Marshaller
for the time being.- Since:
- 1.0.0
-
marshaller
public static <T extends com.google.protobuf.MessageLite> MethodDescriptor.Marshaller<T> marshaller(T defaultInstance) Creates aMethodDescriptor.Marshaller
for protos of the same type asdefaultInstance
.- Since:
- 1.0.0
-
marshallerWithRecursionLimit
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/10108") public static <T extends com.google.protobuf.MessageLite> MethodDescriptor.Marshaller<T> marshallerWithRecursionLimit(T defaultInstance, int recursionLimit) Creates aMethodDescriptor.Marshaller
for protos of the same type asdefaultInstance
and a custom limit for the recursion depth. Any negative number will leave the limit to its default value as defined by the protobuf library.- Since:
- 1.56.0
-
metadataMarshaller
public static <T extends com.google.protobuf.MessageLite> Metadata.BinaryMarshaller<T> metadataMarshaller(T defaultInstance) Produce a metadata marshaller for a protobuf type.- Since:
- 1.0.0
-
copy
Copies the data from input stream to output stream.- Throws:
IOException
-