Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(601)

Unified Diff: components/sync_driver/data_type_controller.h

Issue 2203673002: [Sync] Move //components/sync_driver to //components/sync/driver. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@sd-a
Patch Set: Full change rebased on static lib. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/sync_driver/change_processor_mock.cc ('k') | components/sync_driver/data_type_controller.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/sync_driver/data_type_controller.h
diff --git a/components/sync_driver/data_type_controller.h b/components/sync_driver/data_type_controller.h
deleted file mode 100644
index 2d9f70b36ac420352ad048174e893ce264a9cd71..0000000000000000000000000000000000000000
--- a/components/sync_driver/data_type_controller.h
+++ /dev/null
@@ -1,179 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_SYNC_DRIVER_DATA_TYPE_CONTROLLER_H__
-#define COMPONENTS_SYNC_DRIVER_DATA_TYPE_CONTROLLER_H__
-
-#include <map>
-#include <string>
-
-#include "base/callback.h"
-#include "base/location.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/ref_counted_delete_on_message_loop.h"
-#include "base/sequenced_task_runner_helpers.h"
-#include "components/sync/base/model_type.h"
-#include "components/sync/base/unrecoverable_error_handler.h"
-#include "components/sync/core/data_type_error_handler.h"
-
-namespace base {
-class SingleThreadTaskRunner;
-}
-
-namespace syncer {
-class SyncError;
-class SyncMergeResult;
-}
-
-namespace sync_driver {
-class BackendDataTypeConfigurer;
-
-// Data type controllers need to be refcounted threadsafe, as they may
-// need to run model associator or change processor on other threads.
-class DataTypeController
- : public base::RefCountedDeleteOnMessageLoop<DataTypeController>,
- public syncer::DataTypeErrorHandler {
- public:
- enum State {
- NOT_RUNNING, // The controller has never been started or has previously
- // been stopped. Must be in this state to start.
- MODEL_STARTING, // The controller is waiting on dependent services
- // that need to be available before model
- // association.
- MODEL_LOADED, // The model has finished loading and can start
- // associating now.
- ASSOCIATING, // Model association is in progress.
- RUNNING, // The controller is running and the data type is
- // in sync with the cloud.
- STOPPING, // The controller is in the process of stopping
- // and is waiting for dependent services to stop.
- DISABLED // The controller was started but encountered an error
- // so it is disabled waiting for it to be stopped.
- };
-
- // This enum is used for "Sync.*ConfigureFailre" histograms so the order
- // of is important. Any changes need to be reflected in histograms.xml.
- enum ConfigureResult {
- OK, // The data type has started normally.
- OK_FIRST_RUN, // Same as OK, but sent on first successful
- // start for this type for this user as
- // determined by cloud state.
- ASSOCIATION_FAILED, // An error occurred during model association.
- ABORTED, // Start was aborted by calling Stop().
- UNRECOVERABLE_ERROR, // An unrecoverable error occured.
- NEEDS_CRYPTO, // The data type cannot be started yet because it
- // depends on the cryptographer.
- RUNTIME_ERROR, // After starting, a runtime error was encountered.
- MAX_CONFIGURE_RESULT
- };
-
- typedef base::Callback<void(ConfigureResult,
- const syncer::SyncMergeResult&,
- const syncer::SyncMergeResult&)> StartCallback;
-
- typedef base::Callback<void(syncer::ModelType,
- syncer::SyncError)> ModelLoadCallback;
-
- typedef std::map<syncer::ModelType,
- scoped_refptr<DataTypeController> > TypeMap;
- typedef std::map<syncer::ModelType, DataTypeController::State> StateMap;
-
- // Returns true if the start result should trigger an unrecoverable error.
- // Public so unit tests can use this function as well.
- static bool IsUnrecoverableResult(ConfigureResult result);
-
- // Returns true if the datatype started successfully.
- static bool IsSuccessfulResult(ConfigureResult result);
-
- // Returns true if DataTypeManager should wait for LoadModels to complete
- // successfully before starting configuration. Directory based types should
- // return false while USS datatypes should return true.
- virtual bool ShouldLoadModelBeforeConfigure() const = 0;
-
- // Begins asynchronous operation of loading the model to get it ready for
- // model association. Once the models are loaded the callback will be invoked
- // with the result. If the models are already loaded it is safe to call the
- // callback right away. Else the callback needs to be stored and called when
- // the models are ready.
- virtual void LoadModels(const ModelLoadCallback& model_load_callback) = 0;
-
- // Registers with sync backend if needed. This function is called by
- // DataTypeManager before downloading initial data. Non-blocking types need to
- // pass activation context containing progress marker to sync backend before
- // initial download starts.
- virtual void RegisterWithBackend(BackendDataTypeConfigurer* configurer) = 0;
-
- // Will start a potentially asynchronous operation to perform the
- // model association. Once the model association is done the callback will
- // be invoked.
- virtual void StartAssociating(const StartCallback& start_callback) = 0;
-
- // Called by DataTypeManager to activate the controlled data type using
- // one of the implementation specific methods provided by the |configurer|.
- // This is called (on UI thread) after the data type configuration has
- // completed successfully.
- virtual void ActivateDataType(BackendDataTypeConfigurer* configurer) = 0;
-
- // Called by DataTypeManager to deactivate the controlled data type.
- // See comments for ModelAssociationManager::OnSingleDataTypeWillStop.
- virtual void DeactivateDataType(BackendDataTypeConfigurer* configurer) = 0;
-
- // Synchronously stops the data type. If StartAssociating has already been
- // called but is not done yet it will be aborted. Similarly if LoadModels
- // has not completed it will also be aborted.
- // NOTE: Stop() should be called after sync backend machinery has stopped
- // routing changes to this data type. Stop() should ensure the data type
- // logic shuts down gracefully by flushing remaining changes and calling
- // StopSyncing on the SyncableService. This assumes no changes will ever
- // propagate from sync again from point where Stop() is called.
- virtual void Stop() = 0;
-
- // Unique model type for this data type controller.
- virtual syncer::ModelType type() const = 0;
-
- // Name of this data type. For logging purposes only.
- virtual std::string name() const = 0;
-
- // Current state of the data type controller.
- virtual State state() const = 0;
-
- // Partial implementation of DataTypeErrorHandler.
- // This is thread safe.
- syncer::SyncError CreateAndUploadError(
- const tracked_objects::Location& location,
- const std::string& message,
- syncer::ModelType type) override;
-
- // Whether the DataTypeController is ready to start. This is useful if the
- // datatype itself must make the decision about whether it should be enabled
- // at all (and therefore whether the initial download of the sync data for
- // the type should be performed).
- // Returns true by default.
- virtual bool ReadyForStart() const;
-
- protected:
- friend class base::RefCountedDeleteOnMessageLoop<DataTypeController>;
- friend class base::DeleteHelper<DataTypeController>;
-
- DataTypeController(
- const scoped_refptr<base::SingleThreadTaskRunner>& ui_thread,
- const base::Closure& error_callback);
-
- ~DataTypeController() override;
-
- const scoped_refptr<base::SingleThreadTaskRunner>& ui_thread() const {
- return ui_thread_;
- }
-
- // The callback that will be invoked when an unrecoverable error occurs.
- // TODO(sync): protected for use by legacy controllers.
- base::Closure error_callback_;
-
- private:
- const scoped_refptr<base::SingleThreadTaskRunner> ui_thread_;
-};
-
-} // namespace sync_driver
-
-#endif // COMPONENTS_SYNC_DRIVER_DATA_TYPE_CONTROLLER_H__
« no previous file with comments | « components/sync_driver/change_processor_mock.cc ('k') | components/sync_driver/data_type_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698