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

Unified Diff: components/sync/driver/model_type_controller.h

Issue 2384153004: [Sync] Merge NBDTC and subclasses into ModelTypeController. (Closed)
Patch Set: Fix bad rebase. Created 4 years, 2 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
Index: components/sync/driver/model_type_controller.h
diff --git a/components/sync/driver/non_blocking_data_type_controller.h b/components/sync/driver/model_type_controller.h
similarity index 74%
rename from components/sync/driver/non_blocking_data_type_controller.h
rename to components/sync/driver/model_type_controller.h
index 8c6d1dd4471403e1ff6901df87e2de6e8c0a54a9..91fd88745c469002a1ff271e736a342c9c1cb055 100644
--- a/components/sync/driver/non_blocking_data_type_controller.h
+++ b/components/sync/driver/model_type_controller.h
@@ -2,14 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef COMPONENTS_SYNC_DRIVER_NON_BLOCKING_DATA_TYPE_CONTROLLER_H_
-#define COMPONENTS_SYNC_DRIVER_NON_BLOCKING_DATA_TYPE_CONTROLLER_H_
+#ifndef COMPONENTS_SYNC_DRIVER_MODEL_TYPE_CONTROLLER_H_
+#define COMPONENTS_SYNC_DRIVER_MODEL_TYPE_CONTROLLER_H_
#include <memory>
#include <string>
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
+#include "base/single_thread_task_runner.h"
#include "components/sync/base/model_type.h"
#include "components/sync/driver/data_type_controller.h"
#include "components/sync/driver/sync_prefs.h"
@@ -19,17 +20,16 @@ namespace syncer {
class SyncClient;
struct ActivationContext;
-// Base class for DataType controllers for Unified Sync and Storage datatypes.
-// Derived types must implement the following methods:
-// - RunOnModelThread
-// - RunOnUIThread
-class NonBlockingDataTypeController : public DataTypeController {
+// DataTypeController implementation for Unified Sync and Storage model types.
+class ModelTypeController : public DataTypeController {
public:
// |dump_stack| is called when an unrecoverable error occurs.
- NonBlockingDataTypeController(ModelType type,
- const base::Closure& dump_stack,
- SyncClient* sync_client);
- ~NonBlockingDataTypeController() override;
+ ModelTypeController(
+ ModelType type,
+ const base::Closure& dump_stack,
+ SyncClient* sync_client,
+ const scoped_refptr<base::SingleThreadTaskRunner>& model_thread);
+ ~ModelTypeController() override;
// DataTypeController implementation.
bool ShouldLoadModelBeforeConfigure() const override;
@@ -48,12 +48,6 @@ class NonBlockingDataTypeController : public DataTypeController {
State state() const override;
protected:
- // Posts the given task to the model thread, i.e. the thread the
- // datatype lives on. Return value: True if task posted successfully,
- // false otherwise.
- virtual bool RunOnModelThread(const tracked_objects::Location& from_here,
- const base::Closure& task) = 0;
-
std::unique_ptr<DataTypeErrorHandler> CreateErrorHandler() override;
private:
@@ -72,9 +66,12 @@ class NonBlockingDataTypeController : public DataTypeController {
SyncError error,
std::unique_ptr<ActivationContext> activation_context);
- // Sync client
+ // The sync client, which provides access to this type's ModelTypeService.
SyncClient* const sync_client_;
+ // The thread the model type lives on.
+ scoped_refptr<base::SingleThreadTaskRunner> model_thread_;
+
// Sync prefs. Used for determinig if DisableSync should be called during call
// to Stop().
SyncPrefs sync_prefs_;
@@ -95,9 +92,9 @@ class NonBlockingDataTypeController : public DataTypeController {
// TODO(crbug.com/647505): Remove this once the DTM handles things better.
bool activated_ = false;
- DISALLOW_COPY_AND_ASSIGN(NonBlockingDataTypeController);
+ DISALLOW_COPY_AND_ASSIGN(ModelTypeController);
};
} // namespace syncer
-#endif // COMPONENTS_SYNC_DRIVER_NON_BLOCKING_DATA_TYPE_CONTROLLER_H_
+#endif // COMPONENTS_SYNC_DRIVER_MODEL_TYPE_CONTROLLER_H_
« no previous file with comments | « components/sync/core/shared_model_type_processor.cc ('k') | components/sync/driver/model_type_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698