| // 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 SYNC_ENGINE_SYNC_ENGINE_EVENT_LISTENER_H_ |
| #define SYNC_ENGINE_SYNC_ENGINE_EVENT_LISTENER_H_ |
| |
| #include "base/time/time.h" |
| #include "sync/base/sync_export.h" |
| #include "sync/internal_api/public/base/model_type.h" |
| |
| namespace syncer { |
| |
| struct SyncProtocolError; |
| struct SyncCycleEvent; |
| class ProtocolEvent; |
| |
| class SYNC_EXPORT SyncEngineEventListener { |
| public: |
| SyncEngineEventListener(); |
| |
| // Generated at various points during the sync cycle. |
| virtual void OnSyncCycleEvent(const SyncCycleEvent& event) = 0; |
| |
| // This event is sent when we receive an actionable error. It is up to |
| // the listeners to figure out the action to take using the error sent. |
| virtual void OnActionableError(const SyncProtocolError& error) = 0; |
| |
| // This event is sent when scheduler decides to wait before next request |
| // either because it gets throttled by server or because it backs off after |
| // request failure. Retry time is passed in retry_time field of event. |
| virtual void OnRetryTimeChanged(base::Time retry_time) = 0; |
| |
| // This event is sent when types are throttled or unthrottled. |
| virtual void OnThrottledTypesChanged(ModelTypeSet throttled_types) = 0; |
| |
| // This event is sent when the server requests a migration. |
| virtual void OnMigrationRequested(ModelTypeSet migration_types) = 0; |
| |
| // Emits events when sync communicates with the server. |
| virtual void OnProtocolEvent(const ProtocolEvent& event) = 0; |
| |
| protected: |
| virtual ~SyncEngineEventListener(); |
| }; |
| |
| } // namespace syncer |
| |
| #endif // SYNC_ENGINE_SYNC_ENGINE_EVENT_LISTENER_H_ |