// Copyright 2013 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_POLICY_CORE_COMMON_CLOUD_CLOUD_EXTERNAL_DATA_STORE_H_ #define COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_EXTERNAL_DATA_STORE_H_ #include <stddef.h> #include <string> #include "base/files/file_path.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "components/policy/core/common/cloud/cloud_external_data_manager.h" #include "components/policy/policy_export.h" namespace base { class SequencedTaskRunner; } namespace policy { class ResourceCache; // Stores external data referenced by policies. Data is keyed by (key, hash), // where |key| is an opaque string that comes from the policy referencing the // data, and |hash| is the data's SHA256 hash. Outdated entries are removed by // calling Prune() with the list of (key, hash) entries that are to be kept. // Instances of this class may be created on any thread and may share the same // cache, however: // * After creation, the cache and all stores using it must always be accessed // via the same |task_runner| only. // * Stores sharing a cache must use different cache_keys to avoid namespace // overlaps. // * The cache must outlive all stores using it. class POLICY_EXPORT CloudExternalDataStore { … }; } // namespace policy #endif // COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_EXTERNAL_DATA_STORE_H_