Class RpcUtil (3.19.4)

public final class RpcUtil

Grab-bag of utility functions useful when dealing with RPCs.

Inheritance

java.lang.Object > RpcUtil

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
NameDescription
originalCallbackRpcCallback<ParameterType>
Returns
TypeDescription
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
NameDescription
originalCallbackRpcCallback<Type>
originalClassClass<Type>
defaultInstanceType
Returns
TypeDescription
RpcCallback<Message>

<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).

Parameter
NameDescription
originalCallbackRpcCallback<Message>
Returns
TypeDescription
RpcCallback<Type>