#ifndef REMOTING_BASE_OAUTH_TOKEN_GETTER_PROXY_H_
#define REMOTING_BASE_OAUTH_TOKEN_GETTER_PROXY_H_
#include "base/functional/callback.h"
#include "base/memory/scoped_refptr.h"
#include "base/memory/weak_ptr.h"
#include "remoting/base/oauth_token_getter.h"
namespace base {
class SequencedTaskRunner;
}
namespace remoting {
class OAuthTokenGetterProxy : public OAuthTokenGetter {
public:
OAuthTokenGetterProxy(base::WeakPtr<OAuthTokenGetter> token_getter,
scoped_refptr<base::SequencedTaskRunner> task_runner);
explicit OAuthTokenGetterProxy(base::WeakPtr<OAuthTokenGetter> token_getter);
OAuthTokenGetterProxy(const OAuthTokenGetterProxy&) = delete;
OAuthTokenGetterProxy& operator=(const OAuthTokenGetterProxy&) = delete;
~OAuthTokenGetterProxy() override;
void CallWithToken(TokenCallback on_access_token) override;
void InvalidateCache() override;
private:
base::WeakPtr<OAuthTokenGetter> token_getter_;
scoped_refptr<base::SequencedTaskRunner> task_runner_;
};
}
#endif