// 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_SYNC_SERVICE_MODEL_LOAD_MANAGER_H_ #define COMPONENTS_SYNC_SERVICE_MODEL_LOAD_MANAGER_H_ #include <memory> #include <optional> #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "base/timer/timer.h" #include "components/sync/base/sync_stop_metadata_fate.h" #include "components/sync/service/configure_context.h" #include "components/sync/service/data_type_controller.h" namespace base { class ElapsedTimer; } // namespace base namespace syncer { // Timeout duration for loading data types in ModelLoadManager. Exposed for // testing. extern const base::TimeDelta kSyncLoadModelsTimeoutDuration; // Interface for ModelLoadManager to pass the results of async operations // back to DataTypeManager. class ModelLoadManagerDelegate { … }; // `ModelLoadManager` instructs DataTypeControllers to load models and to stop // (DataTypeManager is responsible for activating/deactivating data types). // Since the operations are async it uses an interface to inform DataTypeManager // of the results of the operations. // This class is owned by DataTypeManager, and lives on the UI thread. class ModelLoadManager { … }; } // namespace syncer #endif // COMPONENTS_SYNC_SERVICE_MODEL_LOAD_MANAGER_H_