public abstract class CallCredentials extends Object
This is used by CallOptions.withCallCredentials(io.grpc.CallCredentials) and withCallCredentials() on
 the generated stub, for example:
 
FooGrpc.FooStub stub = FooGrpc.newStub(channel); response = stub.withCallCredentials(creds).bar(request);
The contents and nature of this class (and whether it remains an abstract class) is
 experimental, in that it can change. However, we are guaranteeing stability for the
 name. That is, we are guaranteeing stability for code to be returned a reference and
 pass that reference to gRPC for usage. However, code may not call or implement the CallCredentials itself if it wishes to only use stable APIs.
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
CallCredentials.MetadataApplier
The outlet of the produced headers. 
 | 
static class  | 
CallCredentials.RequestInfo
The request-related information passed to  
CallCredentials.applyRequestMetadata(). | 
| Constructor and Description | 
|---|
CallCredentials()  | 
| Modifier and Type | Method and Description | 
|---|---|
abstract void | 
applyRequestMetadata(CallCredentials.RequestInfo requestInfo,
                    Executor appExecutor,
                    CallCredentials.MetadataApplier applier)
Pass the credential data to the given  
CallCredentials.MetadataApplier, which will
 propagate it to the request metadata. | 
abstract void | 
thisUsesUnstableApi()
Should be a noop but never called; tries to make it clearer to implementors that they may break
 in the future. 
 | 
public abstract void applyRequestMetadata(CallCredentials.RequestInfo requestInfo, Executor appExecutor, CallCredentials.MetadataApplier applier)
CallCredentials.MetadataApplier, which will
 propagate it to the request metadata.
 It is called for each individual RPC, within the Context of the call, before the
 stream is about to be created on a transport. Implementations should not block in this
 method. If metadata is not immediately available, e.g., needs to be fetched from network, the
 implementation may give the applier to an asynchronous task which will eventually call
 the applier. The RPC proceeds only after the applier is called.
requestInfo - request-related informationappExecutor - The application thread-pool. It is provided to the implementation in case it
        needs to perform blocking operations.applier - The outlet of the produced headers. It can be called either before or after this
        method returns.@ExperimentalApi(value="https://github.com/grpc/grpc-java/issues/1914") public abstract void thisUsesUnstableApi()