- Direct Known Subclasses:
@ThreadSafe public abstract class Channel extends java.lang.ObjectA virtual connection to a conceptual endpoint, to perform RPCs. A channel is free to have zero or many actual connections to the endpoint based on configuration, load, etc. A channel is also free to determine which actual endpoints to use and may change it every RPC, permitting client-side load balancing. Applications are generally expected to use stubs instead of calling this class directly.
Applications can add common cross-cutting behaviors to stubs by decorating Channel implementations using
ClientInterceptor. It is expected that most application code will not use this class directly but rather work with stubs that have been bound to a Channel that was decorated during application initialization.
Constructors Constructor Description
All Methods Instance Methods Abstract Methods Modifier and Type Method Description
authority()The authority of the destination this channel connects to.
newCall(MethodDescriptor<RequestT,ResponseT> methodDescriptor, CallOptions callOptions)
public abstract <RequestT,ResponseT> ClientCall<RequestT,ResponseT> newCall(MethodDescriptor<RequestT,ResponseT> methodDescriptor, CallOptions callOptions)Create a
ClientCallto the remote operation specified by the given
MethodDescriptor. The returned
ClientCalldoes not trigger any remote behavior until
ClientCall.start(ClientCall.Listener, Metadata)is invoked.
methodDescriptor- describes the name and parameter types of the operation to call.
callOptions- runtime options to be applied to this call.
ClientCallbound to the specified method.
public abstract java.lang.String authority()The authority of the destination this channel connects to. Typically this is in the format