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

Unified Diff: chrome/browser/sync/glue/data_type_manager.h

Issue 1128012: Rewrite DTM to support dynamic data type configuration (Closed)
Patch Set: Address review comments and fix a leak. Created 10 years, 9 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 | « no previous file | chrome/browser/sync/glue/data_type_manager_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/glue/data_type_manager.h
diff --git a/chrome/browser/sync/glue/data_type_manager.h b/chrome/browser/sync/glue/data_type_manager.h
index 401af568fd07caf1a39585654f60884d896293db..0a0b1f1ecf11324edf42d4cb12a735e236b0cded 100644
--- a/chrome/browser/sync/glue/data_type_manager.h
+++ b/chrome/browser/sync/glue/data_type_manager.h
@@ -5,6 +5,8 @@
#ifndef CHROME_BROWSER_SYNC_GLUE_DATA_TYPE_MANAGER_H__
#define CHROME_BROWSER_SYNC_GLUE_DATA_TYPE_MANAGER_H__
+#include <set>
+
#include "base/task.h"
#include "chrome/browser/sync/glue/data_type_controller.h"
#include "chrome/browser/sync/syncable/model_type.h"
@@ -16,49 +18,51 @@ namespace browser_sync {
class DataTypeManager {
public:
enum State {
- STOPPED, // No data types are currently running.
- PAUSE_PENDING, // Waiting for the sync backend to pause.
- STARTING, // Data types are being started.
- RESUME_PENDING, // Waiting for the sync backend to resume.
- STARTED, // All enabled data types are running.
- STOPPING // Data types are being stopped.
+ STOPPED, // No data types are currently running.
+ RESTARTING, // Configuration has been changed...
+ DOWNLOAD_PENDING, // Not implemented yet: Waiting for the syncer to
+ // complete the initial download of new data
+ // types.
+ PAUSE_PENDING, // Waiting for the sync backend to pause.
+ CONFIGURING, // Data types are being started.
+ RESUME_PENDING, // Waiting for the sync backend to resume.
+ CONFIGURED, // All enabled data types are running.
+ STOPPING // Data types are being stopped.
};
- enum StartResult {
- OK, // All enabled data types were started normally.
- BUSY, // Start() was called while start is already
- // in progress.
- ASSOCIATION_FAILED, // An error occurred during model association.
- ABORTED, // Start was aborted by calling Stop() before
- // all types were started.
- UNRECOVERABLE_ERROR // A data type experienced an unrecoverable error
- // during startup.
+ enum ConfigureResult {
+ OK, // Configuration finished without error.
+ ASSOCIATION_FAILED, // An error occurred during model association.
+ ABORTED, // Start was aborted by calling Stop() before
+ // all types were started.
+ UNRECOVERABLE_ERROR // A data type experienced an unrecoverable error
+ // during startup.
};
- typedef Callback1<StartResult>::Type StartCallback;
+ typedef std::set<syncable::ModelType> TypeSet;
virtual ~DataTypeManager() {}
- // Begins asynchronous start up of all registered data types. Upon
- // successful completion or failure, the start_callback will be
- // invoked with the corresponding StartResult. This is an all or
- // nothing process -- if any of the registered data types fail to
- // start, the startup process will halt and any data types that have
- // been started will be stopped.
- virtual void Start(StartCallback* start_callback) = 0;
+ // Begins asynchronous configuration of data types. Any currently
+ // running data types that are not in the desired_types set will be
+ // stopped. Any stopped data types that are in the desired_types
+ // set will be started. All other data types are left in their
+ // current state. A SYNC_CONFIGURE_START notification will be sent
+ // to the UI thread when configuration is started and a
+ // SYNC_CONFIGURE_DONE notification will be sent (with a
+ // ConfigurationResult detail) when configuration is complete.
+ //
+ // Note that you may call Configure() while configuration is in
+ // progress. Configuration will be complete only when the
+ // desired_types supplied in the last call to Configure is achieved.
+ virtual void Configure(const TypeSet& desired_types) = 0;
// Synchronously stops all registered data types. If called after
- // Start() is called but before it finishes, it will abort the start
- // and any data types that have been started will be stopped.
+ // Configure() is called but before it finishes, it will abort the
+ // configure and any data types that have been started will be
+ // stopped.
virtual void Stop() = 0;
- // Returns true if the given data type has been registered.
- virtual bool IsRegistered(syncable::ModelType type) = 0;
-
- // Returns true if the given data type has been registered and is
- // enabled.
- virtual bool IsEnabled(syncable::ModelType type) = 0;
-
// Reference to map of data type controllers.
virtual const DataTypeController::TypeMap& controllers() = 0;
« no previous file with comments | « no previous file | chrome/browser/sync/glue/data_type_manager_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698