Chromium Code Reviews| Index: sync/api/sync_data.h |
| diff --git a/sync/api/sync_data.h b/sync/api/sync_data.h |
| index 43f64f9185b10f798abe3086aec60fd85310d11e..d4072db298b87dc8e1295e41ef4989bf48a9ab8a 100644 |
| --- a/sync/api/sync_data.h |
| +++ b/sync/api/sync_data.h |
| @@ -17,11 +17,12 @@ |
| namespace sync_pb { |
| class EntitySpecifics; |
| -class SyncEntity; |
| } // namespace sync_pb |
| namespace syncer { |
| +struct SyncDataCore; |
| + |
| // A light-weight container for immutable sync data. Pass-by-value and storage |
| // in STL containers are supported and encouraged if helpful. |
| class SYNC_EXPORT SyncData { |
| @@ -55,6 +56,10 @@ class SYNC_EXPORT SyncData { |
| const sync_pb::EntitySpecifics& specifics, |
| const base::Time& last_modified_time); |
| + // For datatype context changes: |datatype| specifies the type whose context |
| + // is being updated. |
| + static SyncData CreateContext(ModelType datatype, const std::string& context); |
|
maniscalco
2014/03/31 23:59:16
Any reason not to pass datatype by const ref? The
maniscalco
2014/03/31 23:59:16
Are SyncData created by this method "local" or "re
Nicolas Zea
2014/04/02 18:34:36
ModelType is just an enum, so passing by ref is ac
Nicolas Zea
2014/04/02 18:34:36
Neither. I was actually planning to get rid of the
maniscalco
2014/04/02 21:13:09
Pass by value SGTM.
|
| + |
| // Whether this SyncData holds valid data. The only way to have a SyncData |
| // without valid data is to use the default constructor. |
| bool IsValid() const; |
| @@ -74,6 +79,10 @@ class SYNC_EXPORT SyncData { |
| // going TO the syncer, not from. |
| const std::string& GetTitle() const; |
| + // Returns the datatype context, if one exists. Returns empty string |
| + // otherwise. |
| + const std::string& GetContext() const; |
| + |
| // Returns the last motification time according to the server. This is |
| // only valid if IsLocal() is false, and may be null if the SyncData |
| // represents a deleted item. |
| @@ -83,6 +92,7 @@ class SYNC_EXPORT SyncData { |
| int64 GetRemoteId() const; |
| // Whether this sync data is for local data or data coming from the syncer. |
| + // TODO(zea): remove this. |
| bool IsLocal() const; |
| std::string ToString() const; |
| @@ -90,42 +100,33 @@ class SYNC_EXPORT SyncData { |
| // TODO(zea): Query methods for other sync properties: parent, successor, etc. |
| private: |
| - // Necessary since we forward-declare sync_pb::SyncEntity; see |
| + // Necessary since we forward-declare SyncDataCore; see |
| // comments in immutable.h. |
| - struct ImmutableSyncEntityTraits { |
| - typedef sync_pb::SyncEntity* Wrapper; |
| + struct ImmutableSyncDataCoreTraits { |
| + typedef SyncDataCore* Wrapper; |
| static void InitializeWrapper(Wrapper* wrapper); |
| static void DestroyWrapper(Wrapper* wrapper); |
| - static const sync_pb::SyncEntity& Unwrap(const Wrapper& wrapper); |
| + static const SyncDataCore& Unwrap(const Wrapper& wrapper); |
| - static sync_pb::SyncEntity* UnwrapMutable(Wrapper* wrapper); |
| + static SyncDataCore* UnwrapMutable(Wrapper* wrapper); |
| - static void Swap(sync_pb::SyncEntity* t1, sync_pb::SyncEntity* t2); |
| + static void Swap(SyncDataCore* t1, SyncDataCore* t2); |
| }; |
| - typedef Immutable<sync_pb::SyncEntity, ImmutableSyncEntityTraits> |
| - ImmutableSyncEntity; |
| + typedef Immutable<SyncDataCore, ImmutableSyncDataCoreTraits> |
| + ImmutableSyncDataCore; |
| - // Clears |entity|. |
| - SyncData(int64 id, |
| - sync_pb::SyncEntity* entity, |
| - const base::Time& remote_modification_time); |
| + // Clears |data|. |
| + SyncData(SyncDataCore* data); |
| // Whether this SyncData holds valid data. |
| bool is_valid_; |
| - // Equal to kInvalidId iff this is local. |
| - int64 id_; |
| - |
| - // This is only valid if IsLocal() is false, and may be null if the |
| - // SyncData represents a deleted item. |
| - base::Time remote_modification_time_; |
| - |
| - // The actual shared sync entity being held. |
| - ImmutableSyncEntity immutable_entity_; |
| + // The actual sync data being held. |
| + ImmutableSyncDataCore immutable_data_; |
| }; |
| // gmock printer helper. |