fake_server_entity.h revision 010d83a9304c5a91596085d917d248abff47903a
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_FAKE_SERVER_ENTITY_H_ 6#define SYNC_TEST_FAKE_SERVER_FAKE_SERVER_ENTITY_H_ 7 8#include <map> 9#include <string> 10 11#include "base/basictypes.h" 12#include "sync/internal_api/public/base/model_type.h" 13#include "sync/protocol/sync.pb.h" 14 15namespace fake_server { 16 17// The representation of a Sync entity for the fake server. 18class FakeServerEntity { 19 public: 20 // Creates an ID of the form <type><separator><inner-id> where 21 // <type> is the EntitySpecifics field number for |model_type|, <separator> 22 // is kIdSeparator, and <inner-id> is |inner_id|. 23 // 24 // If |inner_id| is globally unique, then the returned ID will also be 25 // globally unique. 26 static std::string CreateId(const syncer::ModelType& model_type, 27 const std::string& inner_id); 28 29 virtual ~FakeServerEntity(); 30 const std::string& GetId() const; 31 syncer::ModelType GetModelType() const; 32 int64 GetVersion() const; 33 void SetVersion(int64 version); 34 const std::string& GetName() const; 35 36 // Common data items needed by server 37 virtual std::string GetParentId() const = 0; 38 virtual sync_pb::SyncEntity* SerializeAsProto() = 0; 39 virtual bool IsDeleted() const = 0; 40 virtual bool IsFolder() const = 0; 41 42 protected: 43 // Extracts the ModelType from |id|. If |id| is malformed or does not contain 44 // a valid ModelType, UNSPECIFIED is returned. 45 static syncer::ModelType GetModelTypeFromId(const std::string& id); 46 47 FakeServerEntity(const std::string& id, 48 const syncer::ModelType& model_type, 49 int64 version, 50 const std::string& name); 51 52 void SerializeBaseProtoFields(sync_pb::SyncEntity* sync_entity); 53 54 private: 55 // The entity's ID. 56 std::string id_; 57 58 // The ModelType that categorizes this entity. 59 syncer::ModelType model_type_; 60 61 // The version of this entity. 62 int64 version_; 63 64 // The name of the entity. 65 std::string name_; 66}; 67 68} // namespace fake_server 69 70#endif // SYNC_TEST_FAKE_SERVER_FAKE_SERVER_ENTITY_H_ 71