• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 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 SYNC_ENGINE_SYNC_CYCLE_EVENT_H_
6 #define SYNC_ENGINE_SYNC_CYCLE_EVENT_H_
7 
8 #include "sync/base/sync_export.h"
9 #include "sync/internal_api/public/sessions/sync_session_snapshot.h"
10 
11 namespace syncer {
12 
13 struct SyncProtocolError;
14 
15 struct SYNC_EXPORT_PRIVATE SyncCycleEvent {
16   enum EventCause {
17     ////////////////////////////////////////////////////////////////
18     // Sent on entry of Syncer state machine
19     SYNC_CYCLE_BEGIN,
20 
21     // Sent any time progress is made during a sync cycle.
22     STATUS_CHANGED,
23 
24     // We have reached the SYNCER_END state in the main sync loop.
25     SYNC_CYCLE_ENDED,
26   };
27 
28   explicit SyncCycleEvent(EventCause cause);
29   ~SyncCycleEvent();
30 
31   EventCause what_happened;
32 
33   // The last session used for syncing.
34   sessions::SyncSessionSnapshot snapshot;
35 };
36 
37 }  // namespace syncer
38 
39 #endif  // SYNC_ENGINE_SYNC_CYCLE_EVENT_H_
40