Chromium Code Reviews| Index: chrome/browser/sync/api/sync_event.h |
| diff --git a/chrome/browser/sync/api/sync_event.h b/chrome/browser/sync/api/sync_event.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e0276ef833a37ae9cdf75a2ab714517681eff2aa |
| --- /dev/null |
| +++ b/chrome/browser/sync/api/sync_event.h |
| @@ -0,0 +1,59 @@ |
| +// 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_API_SYNC_EVENT_H_ |
| +#define CHROME_BROWSER_SYNC_API_SYNC_EVENT_H_ |
| +#pragma once |
| + |
| +#include <string> |
| +#include <vector> |
| + |
| +#include "chrome/browser/sync/api/sync_data.h" |
| + |
| +// A SyncEvent object reflects a change to a piece of synced data. The change |
| +// can be either a delete, add, or an update. All data relevant to the change |
| +// is encapsulated within the SyncEvent, which, once created, is immutable. |
| +// Note: it is safe and cheap to pass these by value or make copies, as they do |
| +// not create deep copies of their internal data. |
| +class SyncEvent { |
|
akalin
2011/05/19 00:58:45
As we discussed, SyncEvent -> SyncChange, etc.
Nicolas Zea
2011/05/19 21:17:45
Done.
|
| + public: |
| + enum SyncEventType { |
| + ACTION_INVALID, |
| + ACTION_ADD, |
| + ACTION_UPDATE, |
| + ACTION_DELETE |
| + }; |
| + |
| + // Default constructor creates an invalid event. |
| + SyncEvent(); |
| + // Create a new event with the specified sync data. |
| + SyncEvent(SyncEventType event_type, const SyncData& sync_data); |
| + ~SyncEvent(); |
| + |
| + // Copy constructor and assignment operator welcome. |
| + |
| + // Whether this event is valid. This must be true before attempting to access |
| + // the data. |
| + // Deletes: Requires valid tag when going to the syncer. Requires valid |
| + // specifics when coming from the syncer. |
| + // Adds, Updates: Require valid tag and specifics when going to the syncer. |
| + // Require only valid specifics when coming from the syncer. |
| + bool IsValid() const; |
| + |
| + // Getters. |
| + SyncEventType event_type() const; |
| + SyncData sync_data() const; |
| + |
| + private: |
| + SyncEventType event_type_; |
| + |
| + // An immutable container for the data of this SyncEvent. Whenever |
| + // SyncEvents are copied, they copy references to this data. |
| + SyncData sync_data_; |
| +}; |
| + |
| +// Ordered list of SyncEvent's. |
| +typedef std::vector<SyncEvent> SyncEventList; |
|
akalin
2011/05/19 00:58:45
Remove this (already in sync_event_processor.h)
Nicolas Zea
2011/05/19 21:17:45
Done.
|
| + |
| +#endif // CHROME_BROWSER_SYNC_API_SYNC_EVENT_H_ |