| // 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 COMPONENTS_SYNC_DRIVER_SYNC_SERVICE_OBSERVER_H_ |
| #define COMPONENTS_SYNC_DRIVER_SYNC_SERVICE_OBSERVER_H_ |
| |
| namespace syncer { |
| |
| class SyncService; |
| |
| // Various UI components such as the New Tab page can be driven by observing |
| // the SyncService through this interface. |
| class SyncServiceObserver { |
| public: |
| // When one of the following events occurs, OnStateChanged() is called. |
| // Observers should query the service to determine what happened. |
| // - We initialized successfully. |
| // - The sync servers are unavailable at this time. |
| // - Credentials are now in flight for authentication. |
| // - The data type configuration has started or ended. |
| // - Sync shut down. |
| // - Sync errors (passphrase, auth, unrecoverable, actionable, etc.). |
| // - Encryption changes. |
| virtual void OnStateChanged(SyncService* sync) {} |
| |
| // If a client wishes to handle sync cycle completed events in a special way, |
| // they can use this function. By default, it re-routes to OnStateChanged(). |
| virtual void OnSyncCycleCompleted(SyncService* sync); |
| |
| // Called when the sync service has finished the datatype configuration |
| // process. |
| virtual void OnSyncConfigurationCompleted(SyncService* sync) {} |
| |
| // Called when the sync service is being shutdown permanently, so that |
| // longer-lived observers can drop references to it. |
| virtual void OnSyncShutdown(SyncService* sync) {} |
| |
| protected: |
| virtual ~SyncServiceObserver() {} |
| }; |
| |
| } // namespace syncer |
| |
| #endif // COMPONENTS_SYNC_DRIVER_SYNC_SERVICE_OBSERVER_H_ |