diff options
Diffstat (limited to 'include/grpc++/credentials.h')
-rw-r--r-- | include/grpc++/credentials.h | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/include/grpc++/credentials.h b/include/grpc++/credentials.h index 61c4094691..7a40cd199d 100644 --- a/include/grpc++/credentials.h +++ b/include/grpc++/credentials.h @@ -47,17 +47,18 @@ class SecureCredentials; class Credentials : public GrpcLibrary { public: ~Credentials() GRPC_OVERRIDE; + virtual bool ApplyToCall(grpc_call* call) = 0; protected: - friend std::unique_ptr<Credentials> CompositeCredentials( - const std::unique_ptr<Credentials>& creds1, - const std::unique_ptr<Credentials>& creds2); + friend std::shared_ptr<Credentials> CompositeCredentials( + const std::shared_ptr<Credentials>& creds1, + const std::shared_ptr<Credentials>& creds2); virtual SecureCredentials* AsSecureCredentials() = 0; private: friend std::shared_ptr<ChannelInterface> CreateChannel( - const grpc::string& target, const std::unique_ptr<Credentials>& creds, + const grpc::string& target, const std::shared_ptr<Credentials>& creds, const ChannelArguments& args); virtual std::shared_ptr<ChannelInterface> CreateChannel( @@ -80,20 +81,20 @@ struct SslCredentialsOptions { }; // Factories for building different types of Credentials -// The functions may return empty unique_ptr when credentials cannot be created. +// The functions may return empty shared_ptr when credentials cannot be created. // If a Credentials pointer is returned, it can still be invalid when used to // create a channel. A lame channel will be created then and all rpcs will // fail on it. // Builds credentials with reasonable defaults. -std::unique_ptr<Credentials> GoogleDefaultCredentials(); +std::shared_ptr<Credentials> GoogleDefaultCredentials(); // Builds SSL Credentials given SSL specific options -std::unique_ptr<Credentials> SslCredentials( +std::shared_ptr<Credentials> SslCredentials( const SslCredentialsOptions& options); // Builds credentials for use when running in GCE -std::unique_ptr<Credentials> ComputeEngineCredentials(); +std::shared_ptr<Credentials> ComputeEngineCredentials(); // Builds service account credentials. // json_key is the JSON key string containing the client's private key. @@ -101,7 +102,7 @@ std::unique_ptr<Credentials> ComputeEngineCredentials(); // token_lifetime_seconds is the lifetime in seconds of each token acquired // through this service account credentials. It should be positive and should // not exceed grpc_max_auth_token_lifetime or will be cropped to this value. -std::unique_ptr<Credentials> ServiceAccountCredentials( +std::shared_ptr<Credentials> ServiceAccountCredentials( const grpc::string& json_key, const grpc::string& scope, long token_lifetime_seconds); @@ -110,27 +111,27 @@ std::unique_ptr<Credentials> ServiceAccountCredentials( // token_lifetime_seconds is the lifetime in seconds of each Json Web Token // (JWT) created with this credentials. It should not exceed // grpc_max_auth_token_lifetime or will be cropped to this value. -std::unique_ptr<Credentials> JWTCredentials( - const grpc::string& json_key, long token_lifetime_seconds); +std::shared_ptr<Credentials> JWTCredentials(const grpc::string& json_key, + long token_lifetime_seconds); // Builds refresh token credentials. // json_refresh_token is the JSON string containing the refresh token along // with a client_id and client_secret. -std::unique_ptr<Credentials> RefreshTokenCredentials( +std::shared_ptr<Credentials> RefreshTokenCredentials( const grpc::string& json_refresh_token); // Builds IAM credentials. -std::unique_ptr<Credentials> IAMCredentials( +std::shared_ptr<Credentials> IAMCredentials( const grpc::string& authorization_token, const grpc::string& authority_selector); // Combines two credentials objects into a composite credentials -std::unique_ptr<Credentials> CompositeCredentials( - const std::unique_ptr<Credentials>& creds1, - const std::unique_ptr<Credentials>& creds2); +std::shared_ptr<Credentials> CompositeCredentials( + const std::shared_ptr<Credentials>& creds1, + const std::shared_ptr<Credentials>& creds2); // Credentials for an unencrypted, unauthenticated channel -std::unique_ptr<Credentials> InsecureCredentials(); +std::shared_ptr<Credentials> InsecureCredentials(); } // namespace grpc |