| Index: chrome/browser/sync/engine/model_safe_worker.h
|
| diff --git a/chrome/browser/sync/engine/model_safe_worker.h b/chrome/browser/sync/engine/model_safe_worker.h
|
| deleted file mode 100644
|
| index 8ed3448a501df723842d2cdc80ff8c46f4daf48b..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/sync/engine/model_safe_worker.h
|
| +++ /dev/null
|
| @@ -1,112 +0,0 @@
|
| -// Copyright (c) 2012 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 CHROME_BROWSER_SYNC_ENGINE_MODEL_SAFE_WORKER_H_
|
| -#define CHROME_BROWSER_SYNC_ENGINE_MODEL_SAFE_WORKER_H_
|
| -#pragma once
|
| -
|
| -#include <map>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/callback.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "chrome/browser/sync/internal_api/includes/syncer_error.h"
|
| -#include "chrome/browser/sync/syncable/model_type.h"
|
| -
|
| -namespace base {
|
| -class DictionaryValue;
|
| -} // namespace
|
| -
|
| -namespace browser_sync {
|
| -
|
| -typedef base::Callback<enum SyncerError(void)> WorkCallback;
|
| -
|
| -enum ModelSafeGroup {
|
| - GROUP_PASSIVE = 0, // Models that are just "passively" being synced; e.g.
|
| - // changes to these models don't need to be pushed to a
|
| - // native model.
|
| - GROUP_UI, // Models that live on UI thread and are being synced.
|
| - GROUP_DB, // Models that live on DB thread and are being synced.
|
| - GROUP_FILE, // Models that live on FILE thread and are being synced.
|
| - GROUP_HISTORY, // Models that live on history thread and are being
|
| - // synced.
|
| - GROUP_PASSWORD, // Models that live on the password thread and are
|
| - // being synced. On windows and linux, this runs on the
|
| - // DB thread.
|
| - MODEL_SAFE_GROUP_COUNT,
|
| -};
|
| -
|
| -std::string ModelSafeGroupToString(ModelSafeGroup group);
|
| -
|
| -// The Syncer uses a ModelSafeWorker for all tasks that could potentially
|
| -// modify syncable entries (e.g under a WriteTransaction). The ModelSafeWorker
|
| -// only knows how to do one thing, and that is take some work (in a fully
|
| -// pre-bound callback) and have it performed (as in Run()) from a thread which
|
| -// is guaranteed to be "model-safe", where "safe" refers to not allowing us to
|
| -// cause an embedding application model to fall out of sync with the
|
| -// syncable::Directory due to a race.
|
| -class ModelSafeWorker : public base::RefCountedThreadSafe<ModelSafeWorker> {
|
| - public:
|
| - // Any time the Syncer performs model modifications (e.g employing a
|
| - // WriteTransaction), it should be done by this method to ensure it is done
|
| - // from a model-safe thread.
|
| - virtual SyncerError DoWorkAndWaitUntilDone(const WorkCallback& work) = 0;
|
| -
|
| - virtual ModelSafeGroup GetModelSafeGroup() = 0;
|
| -
|
| - protected:
|
| - virtual ~ModelSafeWorker();
|
| -
|
| - private:
|
| - friend class base::RefCountedThreadSafe<ModelSafeWorker>;
|
| -};
|
| -
|
| -// A map that details which ModelSafeGroup each syncable::ModelType
|
| -// belongs to. Routing info can change in response to the user enabling /
|
| -// disabling sync for certain types, as well as model association completions.
|
| -typedef std::map<syncable::ModelType, ModelSafeGroup>
|
| - ModelSafeRoutingInfo;
|
| -
|
| -// Caller takes ownership of return value.
|
| -base::DictionaryValue* ModelSafeRoutingInfoToValue(
|
| - const ModelSafeRoutingInfo& routing_info);
|
| -
|
| -std::string ModelSafeRoutingInfoToString(
|
| - const ModelSafeRoutingInfo& routing_info);
|
| -
|
| -syncable::ModelTypeSet GetRoutingInfoTypes(
|
| - const ModelSafeRoutingInfo& routing_info);
|
| -
|
| -ModelSafeGroup GetGroupForModelType(const syncable::ModelType type,
|
| - const ModelSafeRoutingInfo& routes);
|
| -
|
| -// Maintain the up-to-date state regarding which ModelSafeWorkers exist and
|
| -// which types get routed to which worker. When a sync session begins, it will
|
| -// snapshot the state at that instant, and will use that for the entire
|
| -// session. This means if a model becomes synced (or unsynced) by the user
|
| -// during a sync session, that session will complete and be unaware of this
|
| -// change -- it will only get picked up for the next session.
|
| -// TODO(tim): That's really the only way I can make sense of it in the Syncer
|
| -// HOWEVER, it is awkward for running ModelAssociation. We need to make sure
|
| -// we don't run such a thing until an active session wraps up.
|
| -class ModelSafeWorkerRegistrar {
|
| - public:
|
| - ModelSafeWorkerRegistrar() { }
|
| - // Get the current list of active ModelSafeWorkers. Should be threadsafe.
|
| - virtual void GetWorkers(std::vector<ModelSafeWorker*>* out) = 0;
|
| -
|
| - // Get the current routing information for all enabled model types.
|
| - // If a model type is not enabled (that is, if the syncer should not
|
| - // be trying to sync it), it is not in this map.
|
| - virtual void GetModelSafeRoutingInfo(ModelSafeRoutingInfo* out) = 0;
|
| - protected:
|
| - virtual ~ModelSafeWorkerRegistrar() {}
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(ModelSafeWorkerRegistrar);
|
| -};
|
| -
|
| -} // namespace browser_sync
|
| -
|
| -#endif // CHROME_BROWSER_SYNC_ENGINE_MODEL_SAFE_WORKER_H_
|
|
|