| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef SYNC_API_SYNC_DATA_H_ | 5 #ifndef SYNC_API_SYNC_DATA_H_ |
| 6 #define SYNC_API_SYNC_DATA_H_ | 6 #define SYNC_API_SYNC_DATA_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <iosfwd> | 9 #include <iosfwd> |
| 10 #include <string> | 10 #include <string> |
| 11 #include <vector> | 11 #include <vector> |
| 12 | 12 |
| 13 #include "base/basictypes.h" | 13 #include "base/basictypes.h" |
| 14 #include "sync/internal_api/public/base/model_type.h" | 14 #include "sync/internal_api/public/base/model_type.h" |
| 15 #include "sync/internal_api/public/util/immutable.h" | 15 #include "sync/internal_api/public/util/immutable.h" |
| 16 | 16 |
| 17 namespace sync_pb { | 17 namespace sync_pb { |
| 18 class EntitySpecifics; | 18 class EntitySpecifics; |
| 19 class SyncEntity; | 19 class SyncEntity; |
| 20 } // namespace sync_pb | 20 } // namespace sync_pb |
| 21 | 21 |
| 22 namespace syncer { | 22 namespace syncer { |
| 23 | 23 |
| 24 typedef syncable::ModelType SyncDataType; | 24 typedef syncer::ModelType SyncDataType; |
| 25 | 25 |
| 26 // A light-weight container for immutable sync data. Pass-by-value and storage | 26 // A light-weight container for immutable sync data. Pass-by-value and storage |
| 27 // in STL containers are supported and encouraged if helpful. | 27 // in STL containers are supported and encouraged if helpful. |
| 28 class SyncData { | 28 class SyncData { |
| 29 public: | 29 public: |
| 30 // Creates an empty and invalid SyncData. | 30 // Creates an empty and invalid SyncData. |
| 31 SyncData(); | 31 SyncData(); |
| 32 ~SyncData(); | 32 ~SyncData(); |
| 33 | 33 |
| 34 // Default copy and assign welcome. | 34 // Default copy and assign welcome. |
| 35 | 35 |
| 36 // Helper methods for creating SyncData objects for local data. | 36 // Helper methods for creating SyncData objects for local data. |
| 37 // The sync tag must be a string unique to this datatype and is used as a node | 37 // The sync tag must be a string unique to this datatype and is used as a node |
| 38 // identifier server-side. | 38 // identifier server-side. |
| 39 // For deletes: |datatype| must specify the datatype who node is being | 39 // For deletes: |datatype| must specify the datatype who node is being |
| 40 // deleted. | 40 // deleted. |
| 41 // For adds/updates: the specifics must be valid and the non-unique title (can | 41 // For adds/updates: the specifics must be valid and the non-unique title (can |
| 42 // be the same as sync tag) must be specfied. | 42 // be the same as sync tag) must be specfied. |
| 43 // Note: the non_unique_title is primarily for debug purposes, and will be | 43 // Note: the non_unique_title is primarily for debug purposes, and will be |
| 44 // overwritten if the datatype is encrypted. | 44 // overwritten if the datatype is encrypted. |
| 45 static SyncData CreateLocalDelete( | 45 static SyncData CreateLocalDelete( |
| 46 const std::string& sync_tag, | 46 const std::string& sync_tag, |
| 47 syncable::ModelType datatype); | 47 syncer::ModelType datatype); |
| 48 static SyncData CreateLocalData( | 48 static SyncData CreateLocalData( |
| 49 const std::string& sync_tag, | 49 const std::string& sync_tag, |
| 50 const std::string& non_unique_title, | 50 const std::string& non_unique_title, |
| 51 const sync_pb::EntitySpecifics& specifics); | 51 const sync_pb::EntitySpecifics& specifics); |
| 52 | 52 |
| 53 // Helper method for creating SyncData objects originating from the syncer. | 53 // Helper method for creating SyncData objects originating from the syncer. |
| 54 static SyncData CreateRemoteData( | 54 static SyncData CreateRemoteData( |
| 55 int64 id, const sync_pb::EntitySpecifics& specifics); | 55 int64 id, const sync_pb::EntitySpecifics& specifics); |
| 56 | 56 |
| 57 // Whether this SyncData holds valid data. The only way to have a SyncData | 57 // Whether this SyncData holds valid data. The only way to have a SyncData |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 // The actual shared sync entity being held. | 116 // The actual shared sync entity being held. |
| 117 ImmutableSyncEntity immutable_entity_; | 117 ImmutableSyncEntity immutable_entity_; |
| 118 }; | 118 }; |
| 119 | 119 |
| 120 // gmock printer helper. | 120 // gmock printer helper. |
| 121 void PrintTo(const SyncData& sync_data, std::ostream* os); | 121 void PrintTo(const SyncData& sync_data, std::ostream* os); |
| 122 | 122 |
| 123 } // namespace syncer | 123 } // namespace syncer |
| 124 | 124 |
| 125 #endif // SYNC_API_SYNC_DATA_H_ | 125 #endif // SYNC_API_SYNC_DATA_H_ |
| OLD | NEW |