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 12 class Profile; 13 14 // Represents something that knows how to load profiles asynchronously. 15 class 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