js_sync_manager_observer.h revision ddb351dbec246cf1fab5ec20d2d5520909041de1
1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_SYNC_JS_SYNC_MANAGER_OBSERVER_H_
6#define CHROME_BROWSER_SYNC_JS_SYNC_MANAGER_OBSERVER_H_
7#pragma once
8
9#include <string>
10
11#include "base/basictypes.h"
12#include "chrome/browser/sync/engine/syncapi.h"
13
14namespace browser_sync {
15
16class JsEventRouter;
17
18// Routes SyncManager events to a JsEventRouter.
19class JsSyncManagerObserver : public sync_api::SyncManager::Observer {
20 public:
21  // |parent_router| must be non-NULL and must outlive this object.
22  explicit JsSyncManagerObserver(JsEventRouter* parent_router);
23
24  virtual ~JsSyncManagerObserver();
25
26  // sync_api::SyncManager::Observer implementation.
27  virtual void OnChangesApplied(
28      syncable::ModelType model_type,
29      const sync_api::BaseTransaction* trans,
30      const sync_api::SyncManager::ChangeRecord* changes,
31      int change_count);
32  virtual void OnChangesComplete(syncable::ModelType model_type);
33  virtual void OnSyncCycleCompleted(
34      const sessions::SyncSessionSnapshot* snapshot);
35  virtual void OnAuthError(const GoogleServiceAuthError& auth_error);
36  virtual void OnUpdatedToken(const std::string& token);
37  virtual void OnPassphraseRequired(bool for_decryption);
38  virtual void OnPassphraseFailed();
39  virtual void OnPassphraseAccepted(const std::string& bootstrap_token);
40  virtual void OnEncryptionComplete(
41      const syncable::ModelTypeSet& encrypted_types);
42  virtual void OnInitializationComplete();
43  virtual void OnStopSyncingPermanently();
44  virtual void OnClearServerDataSucceeded();
45  virtual void OnClearServerDataFailed();
46  virtual void OnMigrationNeededForTypes(const syncable::ModelTypeSet& types);
47
48 private:
49  JsEventRouter* parent_router_;
50
51  DISALLOW_COPY_AND_ASSIGN(JsSyncManagerObserver);
52};
53
54}  // namespace browser_sync
55
56#endif  // CHROME_BROWSER_SYNC_JS_SYNC_MANAGER_OBSERVER_H_
57