blob: cb1398dcadd7528b496c399cfaf2f759b1dcd7ac [file] [log] [blame]
// Copyright 2015 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 COMPONENTS_SYNC_DRIVER_SIGNIN_MANAGER_WRAPPER_H_
#define COMPONENTS_SYNC_DRIVER_SIGNIN_MANAGER_WRAPPER_H_
#include <string>
#include "base/macros.h"
class SigninManagerBase;
// Wraps SigninManager so subclasses can support different ways of getting
// account information if necessary. Currently exists for supervised users;
// the subclass SupervisedUserSigninManagerWrapper may be merged back into
// this class once supervised users are componentized.
class SigninManagerWrapper {
public:
explicit SigninManagerWrapper(SigninManagerBase* original);
virtual ~SigninManagerWrapper();
// Get the email address to use for this account.
virtual std::string GetEffectiveUsername() const;
// Get the unique ID used to represent this account.
virtual std::string GetAccountIdToUse() const;
// Get the OAuth2 scope to use for this account.
virtual std::string GetSyncScopeToUse() const;
// Return the original SigninManagerBase object that was passed in.
SigninManagerBase* GetOriginal();
private:
SigninManagerBase* original_;
DISALLOW_COPY_AND_ASSIGN(SigninManagerWrapper);
};
#endif // COMPONENTS_SYNC_DRIVER_SIGNIN_MANAGER_WRAPPER_H_