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 CHROME_BROWSER_PROFILES_PROFILE_ATTRIBUTES_STORAGE_H_
6 #define CHROME_BROWSER_PROFILES_PROFILE_ATTRIBUTES_STORAGE_H_
8 class ProfileAttributesEntry
;
10 class ProfileAttributesStorage
{
12 ProfileAttributesStorage() {}
13 ~ProfileAttributesStorage() {}
15 // If the |supervised_user_id| is non-empty, the profile will be marked to be
16 // omitted from the avatar-menu list on desktop versions. This is used while a
17 // supervised user is in the process of being registered with the server. Use
18 // ProfileAttributesEntry::SetIsOmitted() to clear the flag when the profile
19 // is ready to be shown in the menu.
20 virtual void AddProfile(const base::FilePath
& profile_path
,
21 const base::string16
& name
,
22 const std::string
& gaia_id
,
23 const base::string16
& user_name
,
25 const std::string
& supervised_user_id
) = 0;
26 // Removes the profile at |profile_path| from this storage. Does not delete or
27 // affect the actual profile's data.
28 virtual void RemoveProfile(const base::FilePath
& profile_path
) = 0;
30 // Returns a vector containing one attributes entry per known profile. They
31 // are not sorted in any particular order.
32 virtual std::vector
<ProfileAttributesEntry
*> GetAllProfilesAttributes() = 0;
34 // Populates |entry| with the data for the profile at |path| and returns true
35 // if the operation is successful and |entry| can be used. Returns false
37 // |entry| should not be cached as it may not reflect subsequent changes to
38 // the profile's metadata.
39 virtual bool GetProfileAttributesWithPath(
40 const base::FilePath
& path
, ProfileAttributesEntry
** entry
) = 0;
42 // Returns the count of known profiles.
43 virtual size_t GetNumberOfProfiles() const = 0;
45 DISALLOW_COPY_AND_ASSIGN(ProfileAttributesStorage
);
48 #endif // CHROME_BROWSER_PROFILES_PROFILE_ATTRIBUTES_STORAGE_H_