// Copyright (c) 2011 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_JS_SYNC_MANAGER_OBSERVER_H_ #define CHROME_BROWSER_SYNC_JS_SYNC_MANAGER_OBSERVER_H_ #pragma once #include <string> #include "base/basictypes.h" #include "chrome/browser/sync/engine/syncapi.h" namespace browser_sync { class JsEventRouter; // Routes SyncManager events to a JsEventRouter. class JsSyncManagerObserver : public sync_api::SyncManager::Observer { public: // |parent_router| must be non-NULL and must outlive this object. explicit JsSyncManagerObserver(JsEventRouter* parent_router); virtual ~JsSyncManagerObserver(); // sync_api::SyncManager::Observer implementation. virtual void OnChangesApplied( syncable::ModelType model_type, const sync_api::BaseTransaction* trans, const sync_api::SyncManager::ChangeRecord* changes, int change_count); virtual void OnChangesComplete(syncable::ModelType model_type); virtual void OnSyncCycleCompleted( const sessions::SyncSessionSnapshot* snapshot); virtual void OnAuthError(const GoogleServiceAuthError& auth_error); virtual void OnUpdatedToken(const std::string& token); virtual void OnPassphraseRequired(bool for_decryption); virtual void OnPassphraseFailed(); virtual void OnPassphraseAccepted(const std::string& bootstrap_token); virtual void OnEncryptionComplete( const syncable::ModelTypeSet& encrypted_types); virtual void OnInitializationComplete(); virtual void OnStopSyncingPermanently(); virtual void OnClearServerDataSucceeded(); virtual void OnClearServerDataFailed(); virtual void OnMigrationNeededForTypes(const syncable::ModelTypeSet& types); private: JsEventRouter* parent_router_; DISALLOW_COPY_AND_ASSIGN(JsSyncManagerObserver); }; } // namespace browser_sync #endif // CHROME_BROWSER_SYNC_JS_SYNC_MANAGER_OBSERVER_H_