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_TEST_FAKE_SERVER_UNIQUE_CLIENT_ENTITY_H_ 6 #define SYNC_TEST_FAKE_SERVER_UNIQUE_CLIENT_ENTITY_H_ 7 8 #include <string> 9 10 #include "base/basictypes.h" 11 #include "sync/internal_api/public/base/model_type.h" 12 #include "sync/protocol/sync.pb.h" 13 #include "sync/test/fake_server/fake_server_entity.h" 14 15 namespace fake_server { 16 17 // An entity that is unique per client account. 18 class UniqueClientEntity : public FakeServerEntity { 19 public: 20 virtual ~UniqueClientEntity(); 21 22 // Factory function for UniqueClientEntity. 23 static FakeServerEntity* CreateNew(const sync_pb::SyncEntity& client_entity); 24 25 // Factory function for creating a new version of an existing 26 // UniqueClientEntity. 27 static FakeServerEntity* CreateUpdatedVersion( 28 const sync_pb::SyncEntity& client_entity, 29 FakeServerEntity* current_server_entity); 30 31 // FakeServerEntity implementation. 32 virtual std::string GetParentId() const OVERRIDE; 33 virtual sync_pb::SyncEntity* SerializeAsProto() OVERRIDE; 34 virtual bool IsDeleted() const OVERRIDE; 35 virtual bool IsFolder() const OVERRIDE; 36 37 private: 38 UniqueClientEntity(const std::string& id, 39 const syncer::ModelType& model_type, 40 int64 version, 41 const std::string& name, 42 const std::string& parent_id, 43 const std::string& client_defined_unique_tag, 44 const sync_pb::EntitySpecifics& specifics, 45 int64 creation_time, 46 int64 last_modified_time); 47 48 // All member values have equivalent fields in SyncEntity. 49 std::string parent_id_; 50 std::string client_defined_unique_tag_; 51 sync_pb::EntitySpecifics specifics_; 52 int64 creation_time_; 53 int64 last_modified_time_; 54 }; 55 56 } // namespace fake_server 57 58 #endif // SYNC_TEST_FAKE_SERVER_UNIQUE_CLIENT_ENTITY_H_ 59