xref: /aosp_15_r20/external/cronet/components/prefs/pref_registry_simple.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2012 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #ifndef COMPONENTS_PREFS_PREF_REGISTRY_SIMPLE_H_
6*6777b538SAndroid Build Coastguard Worker #define COMPONENTS_PREFS_PREF_REGISTRY_SIMPLE_H_
7*6777b538SAndroid Build Coastguard Worker 
8*6777b538SAndroid Build Coastguard Worker #include <stdint.h>
9*6777b538SAndroid Build Coastguard Worker 
10*6777b538SAndroid Build Coastguard Worker #include <memory>
11*6777b538SAndroid Build Coastguard Worker #include <string>
12*6777b538SAndroid Build Coastguard Worker 
13*6777b538SAndroid Build Coastguard Worker #include "base/time/time.h"
14*6777b538SAndroid Build Coastguard Worker #include "base/values.h"
15*6777b538SAndroid Build Coastguard Worker #include "components/prefs/pref_registry.h"
16*6777b538SAndroid Build Coastguard Worker #include "components/prefs/prefs_export.h"
17*6777b538SAndroid Build Coastguard Worker 
18*6777b538SAndroid Build Coastguard Worker namespace base {
19*6777b538SAndroid Build Coastguard Worker class FilePath;
20*6777b538SAndroid Build Coastguard Worker }
21*6777b538SAndroid Build Coastguard Worker 
22*6777b538SAndroid Build Coastguard Worker // A simple implementation of PrefRegistry.
23*6777b538SAndroid Build Coastguard Worker class COMPONENTS_PREFS_EXPORT PrefRegistrySimple : public PrefRegistry {
24*6777b538SAndroid Build Coastguard Worker  public:
25*6777b538SAndroid Build Coastguard Worker   PrefRegistrySimple();
26*6777b538SAndroid Build Coastguard Worker 
27*6777b538SAndroid Build Coastguard Worker   PrefRegistrySimple(const PrefRegistrySimple&) = delete;
28*6777b538SAndroid Build Coastguard Worker   PrefRegistrySimple& operator=(const PrefRegistrySimple&) = delete;
29*6777b538SAndroid Build Coastguard Worker 
30*6777b538SAndroid Build Coastguard Worker   // For each of these registration methods, |flags| is an optional bitmask of
31*6777b538SAndroid Build Coastguard Worker   // PrefRegistrationFlags.
32*6777b538SAndroid Build Coastguard Worker   void RegisterBooleanPref(const std::string& path,
33*6777b538SAndroid Build Coastguard Worker                            bool default_value,
34*6777b538SAndroid Build Coastguard Worker                            uint32_t flags = NO_REGISTRATION_FLAGS);
35*6777b538SAndroid Build Coastguard Worker 
36*6777b538SAndroid Build Coastguard Worker   void RegisterIntegerPref(const std::string& path,
37*6777b538SAndroid Build Coastguard Worker                            int default_value,
38*6777b538SAndroid Build Coastguard Worker                            uint32_t flags = NO_REGISTRATION_FLAGS);
39*6777b538SAndroid Build Coastguard Worker 
40*6777b538SAndroid Build Coastguard Worker   void RegisterDoublePref(const std::string& path,
41*6777b538SAndroid Build Coastguard Worker                           double default_value,
42*6777b538SAndroid Build Coastguard Worker                           uint32_t flags = NO_REGISTRATION_FLAGS);
43*6777b538SAndroid Build Coastguard Worker 
44*6777b538SAndroid Build Coastguard Worker   void RegisterStringPref(const std::string& path,
45*6777b538SAndroid Build Coastguard Worker                           const std::string& default_value,
46*6777b538SAndroid Build Coastguard Worker                           uint32_t flags = NO_REGISTRATION_FLAGS);
47*6777b538SAndroid Build Coastguard Worker 
48*6777b538SAndroid Build Coastguard Worker   void RegisterFilePathPref(const std::string& path,
49*6777b538SAndroid Build Coastguard Worker                             const base::FilePath& default_value,
50*6777b538SAndroid Build Coastguard Worker                             uint32_t flags = NO_REGISTRATION_FLAGS);
51*6777b538SAndroid Build Coastguard Worker 
52*6777b538SAndroid Build Coastguard Worker   void RegisterListPref(const std::string& path,
53*6777b538SAndroid Build Coastguard Worker                         uint32_t flags = NO_REGISTRATION_FLAGS);
54*6777b538SAndroid Build Coastguard Worker 
55*6777b538SAndroid Build Coastguard Worker   void RegisterListPref(const std::string& path,
56*6777b538SAndroid Build Coastguard Worker                         base::Value::List default_value,
57*6777b538SAndroid Build Coastguard Worker                         uint32_t flags = NO_REGISTRATION_FLAGS);
58*6777b538SAndroid Build Coastguard Worker 
59*6777b538SAndroid Build Coastguard Worker   void RegisterDictionaryPref(const std::string& path,
60*6777b538SAndroid Build Coastguard Worker                               uint32_t flags = NO_REGISTRATION_FLAGS);
61*6777b538SAndroid Build Coastguard Worker 
62*6777b538SAndroid Build Coastguard Worker   void RegisterDictionaryPref(const std::string& path,
63*6777b538SAndroid Build Coastguard Worker                               base::Value::Dict default_value,
64*6777b538SAndroid Build Coastguard Worker                               uint32_t flags = NO_REGISTRATION_FLAGS);
65*6777b538SAndroid Build Coastguard Worker 
66*6777b538SAndroid Build Coastguard Worker   void RegisterInt64Pref(const std::string& path,
67*6777b538SAndroid Build Coastguard Worker                          int64_t default_value,
68*6777b538SAndroid Build Coastguard Worker                          uint32_t flags = NO_REGISTRATION_FLAGS);
69*6777b538SAndroid Build Coastguard Worker 
70*6777b538SAndroid Build Coastguard Worker   void RegisterUint64Pref(const std::string& path,
71*6777b538SAndroid Build Coastguard Worker                           uint64_t default_value,
72*6777b538SAndroid Build Coastguard Worker                           uint32_t flags = NO_REGISTRATION_FLAGS);
73*6777b538SAndroid Build Coastguard Worker 
74*6777b538SAndroid Build Coastguard Worker   void RegisterTimePref(const std::string& path,
75*6777b538SAndroid Build Coastguard Worker                         base::Time default_value,
76*6777b538SAndroid Build Coastguard Worker                         uint32_t flags = NO_REGISTRATION_FLAGS);
77*6777b538SAndroid Build Coastguard Worker 
78*6777b538SAndroid Build Coastguard Worker   void RegisterTimeDeltaPref(const std::string& path,
79*6777b538SAndroid Build Coastguard Worker                              base::TimeDelta default_value,
80*6777b538SAndroid Build Coastguard Worker                              uint32_t flags = NO_REGISTRATION_FLAGS);
81*6777b538SAndroid Build Coastguard Worker 
82*6777b538SAndroid Build Coastguard Worker  protected:
83*6777b538SAndroid Build Coastguard Worker   ~PrefRegistrySimple() override;
84*6777b538SAndroid Build Coastguard Worker };
85*6777b538SAndroid Build Coastguard Worker 
86*6777b538SAndroid Build Coastguard Worker #endif  // COMPONENTS_PREFS_PREF_REGISTRY_SIMPLE_H_
87