Home | History | Annotate | Download | only in app_list
      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