[SyncFS] Build indexes from FileTracker entries on disk.
[chromium-blink-merge.git] / sync / test / fake_server / fake_server_entity.h
blobb7c5990ea2e3b2925421f5391a288c59cfba7c98
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.
5 #ifndef SYNC_TEST_FAKE_SERVER_FAKE_SERVER_ENTITY_H_
6 #define SYNC_TEST_FAKE_SERVER_FAKE_SERVER_ENTITY_H_
8 #include <map>
9 #include <string>
11 #include "base/basictypes.h"
12 #include "sync/internal_api/public/base/model_type.h"
13 #include "sync/protocol/sync.pb.h"
15 namespace fake_server {
17 // The representation of a Sync entity for the fake server.
18 class 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|.
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);
29 // Returns the ID string of the top level node for the specified type.
30 static std::string GetTopLevelId(const syncer::ModelType& model_type);
32 virtual ~FakeServerEntity();
33 const std::string& GetId() const;
34 syncer::ModelType GetModelType() const;
35 int64 GetVersion() const;
36 void SetVersion(int64 version);
37 const std::string& GetName() const;
39 // Common data items needed by server
40 virtual std::string GetParentId() const = 0;
41 virtual sync_pb::SyncEntity* SerializeAsProto() = 0;
42 virtual bool IsDeleted() const = 0;
43 virtual bool IsFolder() const = 0;
45 protected:
46 // Extracts the ModelType from |id|. If |id| is malformed or does not contain
47 // a valid ModelType, UNSPECIFIED is returned.
48 static syncer::ModelType GetModelTypeFromId(const std::string& id);
50 FakeServerEntity(const std::string& id,
51 const syncer::ModelType& model_type,
52 int64 version,
53 const std::string& name);
55 void SerializeBaseProtoFields(sync_pb::SyncEntity* sync_entity);
57 // The ModelType that categorizes this entity.
58 syncer::ModelType model_type_;
60 private:
61 // The entity's ID.
62 std::string id_;
64 // The version of this entity.
65 int64 version_;
67 // The name of the entity.
68 std::string name_;
71 } // namespace fake_server
73 #endif // SYNC_TEST_FAKE_SERVER_FAKE_SERVER_ENTITY_H_