1 // Copyright 2015 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.
5 #ifndef COMPONENTS_SYNC_DRIVER_SIGNIN_MANAGER_WRAPPER_H_
6 #define COMPONENTS_SYNC_DRIVER_SIGNIN_MANAGER_WRAPPER_H_
10 #include "base/basictypes.h"
12 class SigninManagerBase
;
14 // Wraps SigninManager so subclasses can support different ways of getting
15 // account information if necessary. Currently exists for supervised users;
16 // the subclass SupervisedUserSigninManagerWrapper may be merged back into
17 // this class once supervised users are componentized.
18 class SigninManagerWrapper
{
20 explicit SigninManagerWrapper(SigninManagerBase
* original
);
21 virtual ~SigninManagerWrapper();
23 // Get the email address to use for this account.
24 virtual std::string
GetEffectiveUsername() const;
26 // Get the unique ID used to represent this account.
27 virtual std::string
GetAccountIdToUse() const;
29 // Get the OAuth2 scope to use for this account.
30 virtual std::string
GetSyncScopeToUse() const;
32 // Return the original SigninManagerBase object that was passed in.
33 SigninManagerBase
* GetOriginal();
36 SigninManagerBase
* original_
;
37 DISALLOW_COPY_AND_ASSIGN(SigninManagerWrapper
);
40 #endif // COMPONENTS_SYNC_DRIVER_SIGNIN_MANAGER_WRAPPER_H_