Chromium Code Reviews| Index: chrome/browser/sync/test/integration/migration_watcher.h |
| diff --git a/chrome/browser/sync/test/integration/migration_watcher.h b/chrome/browser/sync/test/integration/migration_watcher.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..692682b15294a36c357db3b0ce3aa7e329c09eb5 |
| --- /dev/null |
| +++ b/chrome/browser/sync/test/integration/migration_watcher.h |
| @@ -0,0 +1,53 @@ |
| +// 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 CHROME_BROWSER_SYNC_TEST_INTEGRATION_MIGRATION_WATCHER_H_ |
| +#define CHROME_BROWSER_SYNC_TEST_INTEGRATION_MIGRATION_WATCHER_H_ |
| + |
| +#include "base/macros.h" |
| +#include "chrome/browser/sync/backend_migrator.h" |
| +#include "sync/internal_api/public/base/model_type.h" |
| + |
| +class ProfileSyncServiceHarness; |
| +class MigrationWaiter; |
| + |
| +// Helper class to observe and record migration state. |
| +class MigrationWatcher : public browser_sync::MigrationObserver { |
| + public: |
| + explicit MigrationWatcher(ProfileSyncServiceHarness* harness); |
| + virtual ~MigrationWatcher(); |
| + |
| + // Returns true if the observed profile has a migration in progress. |
| + bool HasPendingBackendMigration() const; |
| + |
| + // Returns the set of types this class has observed being migrated. |
| + syncer::ModelTypeSet GetMigratedTypes() const; |
| + |
| + // Implementation of browser_sync::MigrationObserver. |
| + virtual void OnMigrationStateChange() OVERRIDE; |
| + |
| + // Registers the |waiter| to receive callbacks on migration state change. |
| + void set_migration_waiter(MigrationWaiter* waiter); |
| + |
| + // Unregisters the current MigrationWaiter, if any. |
| + void clear_migration_waiter(); |
| + |
| + private: |
| + // The ProfileSyncServiceHarness to watch. |
| + ProfileSyncServiceHarness* harness_; |
|
Nicolas Zea
2014/08/20 22:24:10
nit: make these three const?
rlarocque
2014/08/21 00:41:20
pending_types_, migrated_types_, and MigrationWait
|
| + |
| + // The set of data types currently undergoing migration. |
| + syncer::ModelTypeSet pending_types_; |
| + |
| + // The set of data types for which migration is complete. Accumulated by |
| + // successive calls to OnMigrationStateChanged. |
| + syncer::ModelTypeSet migrated_types_; |
| + |
| + // The MigrationWatier that is waiting for this migration to complete. |
| + MigrationWaiter* migration_waiter_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(MigrationWatcher); |
| +}; |
| + |
| +#endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_MIGRATION_WATCHER_H_ |