OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 COMPONENTS_SYNC_SYNCABLE_MUTABLE_ENTRY_H_ | 5 #ifndef COMPONENTS_SYNC_SYNCABLE_MUTABLE_ENTRY_H_ |
6 #define COMPONENTS_SYNC_SYNCABLE_MUTABLE_ENTRY_H_ | 6 #define COMPONENTS_SYNC_SYNCABLE_MUTABLE_ENTRY_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
| 10 #include <memory> |
10 #include <string> | 11 #include <string> |
11 | 12 |
12 #include "base/macros.h" | 13 #include "base/macros.h" |
13 #include "components/sync/base/model_type.h" | 14 #include "components/sync/base/model_type.h" |
14 #include "components/sync/syncable/entry.h" | 15 #include "components/sync/syncable/entry.h" |
15 #include "components/sync/syncable/metahandle_set.h" | 16 #include "components/sync/syncable/metahandle_set.h" |
16 #include "components/sync/syncable/model_neutral_mutable_entry.h" | 17 #include "components/sync/syncable/model_neutral_mutable_entry.h" |
17 | 18 |
18 namespace syncer { | 19 namespace syncer { |
19 | 20 |
20 namespace syncable { | 21 namespace syncable { |
21 | 22 |
22 enum Create { CREATE }; | 23 enum Create { CREATE }; |
23 | 24 |
24 class WriteTransaction; | 25 class WriteTransaction; |
25 | 26 |
26 // A mutable meta entry. Changes get committed to the database when the | 27 // A mutable meta entry. Changes get committed to the database when the |
27 // WriteTransaction is destroyed. | 28 // WriteTransaction is destroyed. |
28 class MutableEntry : public ModelNeutralMutableEntry { | 29 class MutableEntry : public ModelNeutralMutableEntry { |
29 void Init(WriteTransaction* trans, | |
30 ModelType model_type, | |
31 const Id& parent_id, | |
32 const std::string& name); | |
33 | |
34 public: | 30 public: |
35 MutableEntry(WriteTransaction* trans, CreateNewUpdateItem, const Id& id); | 31 MutableEntry(WriteTransaction* trans, CreateNewUpdateItem, const Id& id); |
36 MutableEntry(WriteTransaction* trans, | 32 MutableEntry(WriteTransaction* trans, |
37 Create, | 33 Create, |
38 ModelType model_type, | 34 ModelType model_type, |
39 const std::string& name); | 35 const std::string& name); |
40 MutableEntry(WriteTransaction* trans, | 36 MutableEntry(WriteTransaction* trans, |
41 Create, | 37 Create, |
42 ModelType model_type, | 38 ModelType model_type, |
43 const Id& parent_id, | 39 const Id& parent_id, |
(...skipping 26 matching lines...) Expand all Loading... |
70 bool PutPredecessor(const Id& predecessor_id); | 66 bool PutPredecessor(const Id& predecessor_id); |
71 | 67 |
72 void PutAttachmentMetadata(const sync_pb::AttachmentMetadata& value); | 68 void PutAttachmentMetadata(const sync_pb::AttachmentMetadata& value); |
73 | 69 |
74 // Update attachment metadata for |attachment_id| to indicate that this | 70 // Update attachment metadata for |attachment_id| to indicate that this |
75 // attachment has been uploaded to the sync server. | 71 // attachment has been uploaded to the sync server. |
76 void MarkAttachmentAsOnServer( | 72 void MarkAttachmentAsOnServer( |
77 const sync_pb::AttachmentIdProto& attachment_id); | 73 const sync_pb::AttachmentIdProto& attachment_id); |
78 | 74 |
79 private: | 75 private: |
| 76 static std::unique_ptr<EntryKernel> CreateEntryKernel( |
| 77 WriteTransaction* trans, |
| 78 ModelType model_type, |
| 79 const Id& parent_id, |
| 80 const std::string& name); |
| 81 |
80 // Kind of redundant. We should reduce the number of pointers | 82 // Kind of redundant. We should reduce the number of pointers |
81 // floating around if at all possible. Could we store this in Directory? | 83 // floating around if at all possible. Could we store this in Directory? |
82 // Scope: Set on construction, never changed after that. | 84 // Scope: Set on construction, never changed after that. |
83 WriteTransaction* const write_transaction_; | 85 WriteTransaction* const write_transaction_; |
84 | 86 |
85 DISALLOW_COPY_AND_ASSIGN(MutableEntry); | 87 DISALLOW_COPY_AND_ASSIGN(MutableEntry); |
86 }; | 88 }; |
87 | 89 |
88 // This function sets only the flags needed to get this entry to sync. | 90 // This function sets only the flags needed to get this entry to sync. |
89 bool MarkForSyncing(syncable::MutableEntry* e); | 91 bool MarkForSyncing(syncable::MutableEntry* e); |
90 | 92 |
91 } // namespace syncable | 93 } // namespace syncable |
92 } // namespace syncer | 94 } // namespace syncer |
93 | 95 |
94 #endif // COMPONENTS_SYNC_SYNCABLE_MUTABLE_ENTRY_H_ | 96 #endif // COMPONENTS_SYNC_SYNCABLE_MUTABLE_ENTRY_H_ |
OLD | NEW |