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 CHROME_BROWSER_SYNC_INTERNAL_API_WRITE_NODE_H_ | 5 #ifndef CHROME_BROWSER_SYNC_INTERNAL_API_WRITE_NODE_H_ |
6 #define CHROME_BROWSER_SYNC_INTERNAL_API_WRITE_NODE_H_ | 6 #define CHROME_BROWSER_SYNC_INTERNAL_API_WRITE_NODE_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 class WriteNode : public BaseNode { | 47 class WriteNode : public BaseNode { |
48 public: | 48 public: |
49 // Create a WriteNode using the given transaction. | 49 // Create a WriteNode using the given transaction. |
50 explicit WriteNode(WriteTransaction* transaction); | 50 explicit WriteNode(WriteTransaction* transaction); |
51 virtual ~WriteNode(); | 51 virtual ~WriteNode(); |
52 | 52 |
53 // A client must use one (and only one) of the following Init variants to | 53 // A client must use one (and only one) of the following Init variants to |
54 // populate the node. | 54 // populate the node. |
55 | 55 |
56 // BaseNode implementation. | 56 // BaseNode implementation. |
57 virtual bool InitByIdLookup(int64 id) OVERRIDE; | 57 virtual InitByLookupResult InitByIdLookup(int64 id) OVERRIDE; |
58 virtual bool InitByClientTagLookup(syncable::ModelType model_type, | 58 virtual InitByLookupResult InitByClientTagLookup( |
59 const std::string& tag) OVERRIDE; | 59 syncable::ModelType model_type, |
| 60 const std::string& tag) OVERRIDE; |
60 | 61 |
61 // Create a new node with the specified parent and predecessor. |model_type| | 62 // Create a new node with the specified parent and predecessor. |model_type| |
62 // dictates the type of the item, and controls which EntitySpecifics proto | 63 // dictates the type of the item, and controls which EntitySpecifics proto |
63 // extension can be used with this item. Use a NULL |predecessor| | 64 // extension can be used with this item. Use a NULL |predecessor| |
64 // to indicate that this is to be the first child. | 65 // to indicate that this is to be the first child. |
65 // |predecessor| must be a child of |new_parent| or NULL. Returns false on | 66 // |predecessor| must be a child of |new_parent| or NULL. Returns false on |
66 // failure. | 67 // failure. |
67 bool InitByCreation(syncable::ModelType model_type, | 68 bool InitByCreation(syncable::ModelType model_type, |
68 const BaseNode& parent, | 69 const BaseNode& parent, |
69 const BaseNode* predecessor); | 70 const BaseNode* predecessor); |
70 | 71 |
71 // Create nodes using this function if they're unique items that | 72 // Create nodes using this function if they're unique items that |
72 // you want to fetch using client_tag. Note that the behavior of these | 73 // you want to fetch using client_tag. Note that the behavior of these |
73 // items is slightly different than that of normal items. | 74 // items is slightly different than that of normal items. |
74 // Most importantly, if it exists locally, this function will | 75 // Most importantly, if it exists locally, this function will |
75 // actually undelete it | 76 // actually undelete it |
76 // Client unique tagged nodes must NOT be folders. | 77 // Client unique tagged nodes must NOT be folders. |
77 bool InitUniqueByCreation(syncable::ModelType model_type, | 78 bool InitUniqueByCreation(syncable::ModelType model_type, |
78 const BaseNode& parent, | 79 const BaseNode& parent, |
79 const std::string& client_tag); | 80 const std::string& client_tag); |
80 | 81 |
81 // Each server-created permanent node is tagged with a unique string. | 82 // Each server-created permanent node is tagged with a unique string. |
82 // Look up the node with the particular tag. If it does not exist, | 83 // Look up the node with the particular tag. If it does not exist, |
83 // return false. | 84 // return false. |
84 bool InitByTagLookup(const std::string& tag); | 85 InitByLookupResult InitByTagLookup(const std::string& tag); |
85 | 86 |
86 // These Set() functions correspond to the Get() functions of BaseNode. | 87 // These Set() functions correspond to the Get() functions of BaseNode. |
87 void SetIsFolder(bool folder); | 88 void SetIsFolder(bool folder); |
88 void SetTitle(const std::wstring& title); | 89 void SetTitle(const std::wstring& title); |
89 | 90 |
90 // External ID is a client-only field, so setting it doesn't cause the item to | 91 // External ID is a client-only field, so setting it doesn't cause the item to |
91 // be synced again. | 92 // be synced again. |
92 void SetExternalId(int64 external_id); | 93 void SetExternalId(int64 external_id); |
93 | 94 |
94 // Remove this node and its children. | 95 // Remove this node and its children. |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 | 181 |
181 // The sync API transaction that is the parent of this node. | 182 // The sync API transaction that is the parent of this node. |
182 WriteTransaction* transaction_; | 183 WriteTransaction* transaction_; |
183 | 184 |
184 DISALLOW_COPY_AND_ASSIGN(WriteNode); | 185 DISALLOW_COPY_AND_ASSIGN(WriteNode); |
185 }; | 186 }; |
186 | 187 |
187 } // namespace sync_api | 188 } // namespace sync_api |
188 | 189 |
189 #endif // CHROME_BROWSER_SYNC_INTERNAL_API_WRITE_NODE_H_ | 190 #endif // CHROME_BROWSER_SYNC_INTERNAL_API_WRITE_NODE_H_ |
OLD | NEW |