// Copyright 2014 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_PREFS_SEGREGATED_PREF_STORE_H_ #define COMPONENTS_PREFS_SEGREGATED_PREF_STORE_H_ #include <stdint.h> #include <memory> #include <optional> #include <set> #include <string_view> #include "base/compiler_specific.h" #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/observer_list.h" #include "components/prefs/persistent_pref_store.h" #include "components/prefs/pref_name_set.h" #include "components/prefs/prefs_export.h" // Provides a unified PersistentPrefStore implementation that splits its storage // and retrieval between two underlying PersistentPrefStore instances: a set of // preference names is used to partition the preferences. // // Combines properties of the two stores as follows: // * The unified read error will be: // Selected Store Error // Default Store Error | NO_ERROR | NO_FILE | other selected | // NO_ERROR | NO_ERROR | NO_ERROR | other selected | // NO_FILE | NO_FILE | NO_FILE | NO_FILE | // other default | other default | other default | other default | // * The unified initialization success, initialization completion, and // read-only state are the boolean OR of the underlying stores' properties. class COMPONENTS_PREFS_EXPORT SegregatedPrefStore : public PersistentPrefStore { … }; #endif // COMPONENTS_PREFS_SEGREGATED_PREF_STORE_H_