blob: a4e5e31e0c7cfd124ee7fa0d2a39624b5a0ad2ee [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SRC_LEDGER_CLOUD_PROVIDER_FIRESTORE_BIN_APP_CREDENTIALS_PROVIDER_H_
#define SRC_LEDGER_CLOUD_PROVIDER_FIRESTORE_BIN_APP_CREDENTIALS_PROVIDER_H_
#include <grpc++/grpc++.h>
#include <lib/fit/function.h>
#include <functional>
#include <memory>
#include "src/lib/fxl/macros.h"
namespace cloud_provider_firestore {
// Interface for a provider of gRPC call credentials that can be used to make
// Firestore requests.
class CredentialsProvider {
public:
CredentialsProvider() = default;
virtual ~CredentialsProvider() = default;
// Retrieves call credentials.
virtual void GetCredentials(
fit::function<void(std::shared_ptr<grpc::CallCredentials>)> callback) = 0;
private:
FXL_DISALLOW_COPY_AND_ASSIGN(CredentialsProvider);
};
} // namespace cloud_provider_firestore
#endif // SRC_LEDGER_CLOUD_PROVIDER_FIRESTORE_BIN_APP_CREDENTIALS_PROVIDER_H_