Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(517)

Side by Side Diff: chrome/browser/policy/policy_status_map.h

Issue 7585036: First CL for the about:policy page. This only implements the policy section of the page. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 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_POLICY_POLICY_STATUS_MAP_H_
6 #define CHROME_BROWSER_POLICY_POLICY_STATUS_MAP_H_
7
8 #include <map>
9
10 #include "base/scoped_ptr.h"
11 #include "base/values.h"
12 #include "policy/configuration_policy_type.h"
13
14 namespace policy {
15
16 // Describes a policy's status on the client.
17 struct PolicyStatusInfo {
18
19 // Defines the possible sources a policy can have (user, device or none if the
20 // policy wasn't actually set).
Mattias Nissler (ping if slow) 2011/08/09 13:20:40 The description in parentheses is actually redunda
simo 2011/08/10 14:28:19 Done.
21 enum PolicySourceType {
22 USER,
23 DEVICE,
24 SOURCE_TYPE_UNDEFINED,
25 };
26
27 // Defines the possible levels a policy can be operating on (mandatory,
28 // recommended or none).
Mattias Nissler (ping if slow) 2011/08/09 13:20:40 same here.
simo 2011/08/10 14:28:19 Done.
29 enum PolicyLevel {
30 MANDATORY,
31 RECOMMENDED,
32 LEVEL_UNDEFINED,
33 };
34
35 // Defines the possible statuses a policy can have (successfully enforced, not
36 // enforced or undefined).
Mattias Nissler (ping if slow) 2011/08/09 13:20:40 same here
simo 2011/08/10 14:28:19 Done.
37 enum PolicyStatus {
38 ENFORCED,
39 FAILED,
40 STATUS_UNDEFINED,
41 };
42
43 PolicyStatusInfo();
44 PolicyStatusInfo(string16 name,
Mattias Nissler (ping if slow) 2011/08/09 13:20:40 you should include the string16 header, since you'
simo 2011/08/10 14:28:19 Done.
45 PolicySourceType source_type,
46 PolicyLevel level,
47 Value* value,
48 PolicyStatus status,
49 string16 error_message);
50 ~PolicyStatusInfo();
51
52 // Returns a DictionaryValue pointer containing the information in the object
53 // for UI purposes. The caller acquires ownership of the returned value.
54 DictionaryValue* GetDictionaryValue() const;
55
56 // Returns true if this PolicyStatusInfo object and |other_info| have equal
57 // contents and false otherwise.
58 bool Equals(const PolicyStatusInfo* other_info) const;
59
60 // This creates a deep copy of the PolicyStatusInfo object (only needed to
61 // get a deep copy of the Value object the PolicyStatusInfo contains).
62 PolicyStatusInfo* DeepCopy() const;
63
64 //
Mattias Nissler (ping if slow) 2011/08/09 13:20:40 missing comment?
simo 2011/08/10 14:28:19 Done.
65 static string16 getSourceTypeString(PolicySourceType source_type);
66
67 static string16 getPolicyLevelString(PolicyLevel level);
68
69 // The name of the policy.
70 string16 name;
71
72 // The source type of the policy (user, device or undefined).
73 PolicySourceType source_type;
74
75 // The level of the policy (mandatory, recommended or undefined).
76 PolicyLevel level;
77
78 // The policy value.
79 scoped_ptr<Value> value;
80
81 // The policy status (details whether the policy was successfully enforced).
82 PolicyStatus status;
83
84 // An error message in cases where the policy could not be enforced.
85 string16 error_message;
86
Mattias Nissler (ping if slow) 2011/08/09 13:20:40 no newline here
Mattias Nissler (ping if slow) 2011/08/09 13:20:40 If you intentionally left out the DISALLOW_COPY_AN
simo 2011/08/10 14:28:19 I didn't intentionally leave it out but on rethink
simo 2011/08/10 14:28:19 Done.
87 };
88
Mattias Nissler (ping if slow) 2011/08/09 13:20:40 only one newline
simo 2011/08/10 14:28:19 Done.
89
90 // Wrapper class around an std::map<ConfigurationPolicyType, PolicyStatusInfo*>
Mattias Nissler (ping if slow) 2011/08/09 13:20:40 What benefit do we get from using a wrapper?
simo 2011/08/09 21:03:02 I did this because I think it makes the Configurat
91 class PolicyStatusMap {
92
Mattias Nissler (ping if slow) 2011/08/09 13:20:40 no newline
93 public:
Mattias Nissler (ping if slow) 2011/08/09 13:20:40 indentation
94 typedef std::map<ConfigurationPolicyType, PolicyStatusInfo*>
95 PolicyStatusMapType;
96 typedef PolicyStatusMapType::const_iterator const_iterator;
97
98 PolicyStatusMap();
99 ~PolicyStatusMap();
100
101 // Returns the value stored for key |policy|. Retains ownership of the
102 // returned |PolicyStatusInfo| pointer. Call PolicyStatusInfo::DeepCopy()
103 // for your own copy. Returns NULL if the map does not contain a value for
104 // the given key.
105 const PolicyStatusInfo* Get(ConfigurationPolicyType policy) const;
106
107 // Overwrites any exisiting value stored in the map for the key |policy| and
108 // takes ownership of |info|.
109 void Set(ConfigurationPolicyType policy, PolicyStatusInfo* info);
110
111 bool empty() const;
112 size_t size() const;
113
114 const_iterator begin() const;
115 const_iterator end() const;
116
117 void Clear();
118
119 private:
120 PolicyStatusMapType map_;
121
122 DISALLOW_COPY_AND_ASSIGN(PolicyStatusMap);
123 };
124
125 } // policy
Mattias Nissler (ping if slow) 2011/08/09 13:20:40 namespace policy
simo 2011/08/10 14:28:19 Done.
126
127 #endif // CHROME_BROWSER_POLICY_POLICY_STATUS_MAP_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698