1// Copyright 2013 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 CHROME_BROWSER_UI_APP_LIST_PROFILE_STORE_H_ 6#define CHROME_BROWSER_UI_APP_LIST_PROFILE_STORE_H_ 7 8#include "base/callback_forward.h" 9#include "base/files/file_path.h" 10#include "chrome/browser/profiles/profile_info_cache_observer.h" 11 12class Profile; 13 14// Represents something that knows how to load profiles asynchronously. 15class ProfileStore { 16 public: 17 virtual ~ProfileStore() {} 18 virtual void AddProfileObserver(ProfileInfoCacheObserver* observer) = 0; 19 20 // Loads the profile at |path| and calls |callback| when its done. A NULL 21 // Profile* represents an error. 22 virtual void LoadProfileAsync(const base::FilePath& path, 23 base::Callback<void(Profile*)> callback) = 0; 24 25 // Returns the profile at |path| if it is already loaded. 26 virtual Profile* GetProfileByPath(const base::FilePath& path) = 0; 27 28 // The user data directory that profiles are stored under in this instance of 29 // Chrome. 30 virtual base::FilePath GetUserDataDir() = 0; 31 32 // Returns true if the profile at |path| is supervised. 33 virtual bool IsProfileSupervised(const base::FilePath& path) = 0; 34}; 35 36#endif // CHROME_BROWSER_UI_APP_LIST_PROFILE_STORE_H_ 37