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_ |