Class RpcUtil (3.19.4)
public final class RpcUtil
Grab-bag of utility functions useful when dealing with RPCs.
Static Methods
<ParameterType>newOneTimeCallback(RpcCallback<ParameterType> originalCallback)
public static RpcCallback<ParameterType> <ParameterType>newOneTimeCallback(RpcCallback<ParameterType> originalCallback)
Creates a callback which can only be called once. This may be useful for security, when passing
a callback to untrusted code: most callbacks do not expect to be called more than once, so
doing so may expose bugs if it is not prevented.
Parameter |
Name |
Description |
originalCallback |
RpcCallback<ParameterType>
|
<Type>generalizeCallback(RpcCallback<Type> originalCallback, Class<Type> originalClass, Type defaultInstance)
public static RpcCallback<Message> <Type>generalizeCallback(RpcCallback<Type> originalCallback, Class<Type> originalClass, Type defaultInstance)
Take an RpcCallback
accepting a specific message type and convert it to an
RpcCallback<Message>
. The generalized callback will accept any message object which has the
same descriptor, and will convert it to the correct class before calling the original callback.
However, if the generalized callback is given a message with a different descriptor, an
exception will be thrown.
Parameters |
Name |
Description |
originalCallback |
RpcCallback<Type>
|
originalClass |
Class<Type>
|
defaultInstance |
Type
|
<Type>specializeCallback(RpcCallback<Message> originalCallback)
public static RpcCallback<Type> <Type>specializeCallback(RpcCallback<Message> originalCallback)
Take an RpcCallback<Message>
and convert it to an RpcCallback
accepting a
specific message type. This is always type-safe (parameter type contravariance).
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-10-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-10-10 UTC."],[],[]]