1// Copyright (c) 2012 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_PROFILE_SYNC_SERVICE_OBSERVER_H_
6#define CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_OBSERVER_H_
7
8// Various UI components such as the New Tab page can be driven by observing
9// the ProfileSyncService through this interface.
10class ProfileSyncServiceObserver {
11 public:
12  // When one of the following events occurs, OnStateChanged() is called.
13  // Observers should query the service to determine what happened.
14  // - We initialized successfully.
15  // - There was an authentication error and the user needs to reauthenticate.
16  // - The sync servers are unavailable at this time.
17  // - Credentials are now in flight for authentication.
18  virtual void OnStateChanged() = 0;
19
20  // If a client wishes to handle sync cycle completed events in a special way,
21  // they can use this function.  By default, it re-routes to OnStateChanged().
22  virtual void OnSyncCycleCompleted();
23
24 protected:
25  virtual ~ProfileSyncServiceObserver() { }
26};
27
28#endif  // CHROME_BROWSER_SYNC_PROFILE_SYNC_SERVICE_OBSERVER_H_
29