summaryrefslogtreecommitdiffstats
path: root/sync/internal_api/public/sync_auth_provider.h
blob: 77980ba33b2672c28b3d1d4fc97d1c2b1a2c9de3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright 2014 The Chromium 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 SYNC_INTERNAL_API_PUBLIC_SYNC_AUTH_PROVIDER_H_
#define SYNC_INTERNAL_API_PUBLIC_SYNC_AUTH_PROVIDER_H_

#include "base/callback.h"

class GoogleServiceAuthError;

namespace syncer {

// SyncAuthProvider is interface to access token related functions from sync
// engine.
class SyncAuthProvider {
 public:
  typedef base::Callback<void(const GoogleServiceAuthError& error,
                              const std::string& token)> RequestTokenCallback;

  virtual ~SyncAuthProvider() {}

  // Request access token for sync. Callback will be called with error and
  // access token. If error is anything other than NONE then token is invalid.
  virtual void RequestAccessToken(const RequestTokenCallback& callback) = 0;

  // Invalidate access token that was rejected by sync server.
  virtual void InvalidateAccessToken(const std::string& token) = 0;
};

}  // namespace syncer

#endif  // SYNC_INTERNAL_API_PUBLIC_SYNC_AUTH_PROVIDER_H_