// 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_ASYNC_POLICY_LOADER_H_ #define COMPONENTS_POLICY_CORE_COMMON_ASYNC_POLICY_LOADER_H_ #include <optional> #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "build/build_config.h" #include "components/policy/core/common/management/management_service.h" #include "components/policy/core/common/schema_map.h" #include "components/policy/policy_export.h" namespace base { class SequencedTaskRunner; } namespace policy { class ManagementService; class PolicyBundle; // Base implementation for platform-specific policy loaders. Together with the // AsyncPolicyProvider, this base implementation takes care of the initial load, // refreshing policies and object lifetime. Also if the object has // |period_updates_| set to true it takes care of periodic reloads and watching // file changes. // // All methods are invoked on the background |task_runner_|, including the // destructor. The only exceptions are the constructor (which may be called on // any thread), InitialLoad() which is called on the thread that owns the // provider and the calls of Load() and LastModificationTime() during the // initial load. // Also, during tests the destructor may be called on the main thread. class POLICY_EXPORT AsyncPolicyLoader { … }; } // namespace policy #endif // COMPONENTS_POLICY_CORE_COMMON_ASYNC_POLICY_LOADER_H_