blob: 7ad1fa8fbf826e1717e79313177a0ff828620c18 [file] [log] [blame]
Yuwei Huang192209302017-11-09 00:06:081// Copyright 2017 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef REMOTING_IOS_FACADE_IOS_OAUTH_TOKEN_GETTER_H_
6#define REMOTING_IOS_FACADE_IOS_OAUTH_TOKEN_GETTER_H_
7
8#include "base/macros.h"
Yuwei Huang50afc832018-03-21 22:00:269#include "base/memory/weak_ptr.h"
Yuwei Huang192209302017-11-09 00:06:0810#include "remoting/base/oauth_token_getter.h"
11
12namespace remoting {
13
14// The OAuthTokenGetter implementation on iOS client that uses
Yuwei Huang50afc832018-03-21 22:00:2615// RemotingService.instance.authentication to authenticate. Please use it only
16// on one thread.
Yuwei Huang192209302017-11-09 00:06:0817class IosOauthTokenGetter : public OAuthTokenGetter {
18 public:
19 IosOauthTokenGetter();
20 ~IosOauthTokenGetter() override;
21
22 // OAuthTokenGetter overrides.
23 void CallWithToken(const TokenCallback& on_access_token) override;
24 void InvalidateCache() override;
25
Yuwei Huang50afc832018-03-21 22:00:2626 base::WeakPtr<IosOauthTokenGetter> GetWeakPtr();
27
Yuwei Huang192209302017-11-09 00:06:0828 private:
Yuwei Huang50afc832018-03-21 22:00:2629 base::WeakPtr<IosOauthTokenGetter> weak_ptr_;
30 base::WeakPtrFactory<IosOauthTokenGetter> weak_factory_;
Yuwei Huang192209302017-11-09 00:06:0831 DISALLOW_COPY_AND_ASSIGN(IosOauthTokenGetter);
32};
33
34} // namespace remoting
35
36#endif // REMOTING_IOS_FACADE_IOS_OAUTH_TOKEN_GETTER_H_