OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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_BOOKMARKS_BROWSER_BOOKMARK_NODE_H_ | 5 #ifndef COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_NODE_H_ |
6 #define COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_NODE_H_ | 6 #define COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_NODE_H_ |
7 | 7 |
| 8 #include <stdint.h> |
| 9 |
| 10 #include "base/macros.h" |
8 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
9 #include "base/task/cancelable_task_tracker.h" | 12 #include "base/task/cancelable_task_tracker.h" |
10 #include "base/time/time.h" | 13 #include "base/time/time.h" |
11 #include "components/favicon_base/favicon_types.h" | 14 #include "components/favicon_base/favicon_types.h" |
12 #include "ui/base/models/tree_node_model.h" | 15 #include "ui/base/models/tree_node_model.h" |
13 #include "ui/gfx/image/image.h" | 16 #include "ui/gfx/image/image.h" |
14 #include "url/gurl.h" | 17 #include "url/gurl.h" |
15 | 18 |
16 namespace bookmarks { | 19 namespace bookmarks { |
17 | 20 |
(...skipping 14 matching lines...) Expand all Loading... |
32 }; | 35 }; |
33 | 36 |
34 enum FaviconState { | 37 enum FaviconState { |
35 INVALID_FAVICON, | 38 INVALID_FAVICON, |
36 LOADING_FAVICON, | 39 LOADING_FAVICON, |
37 LOADED_FAVICON, | 40 LOADED_FAVICON, |
38 }; | 41 }; |
39 | 42 |
40 typedef std::map<std::string, std::string> MetaInfoMap; | 43 typedef std::map<std::string, std::string> MetaInfoMap; |
41 | 44 |
42 static const int64 kInvalidSyncTransactionVersion; | 45 static const int64_t kInvalidSyncTransactionVersion; |
43 | 46 |
44 // Creates a new node with an id of 0 and |url|. | 47 // Creates a new node with an id of 0 and |url|. |
45 explicit BookmarkNode(const GURL& url); | 48 explicit BookmarkNode(const GURL& url); |
46 // Creates a new node with |id| and |url|. | 49 // Creates a new node with |id| and |url|. |
47 BookmarkNode(int64 id, const GURL& url); | 50 BookmarkNode(int64_t id, const GURL& url); |
48 | 51 |
49 ~BookmarkNode() override; | 52 ~BookmarkNode() override; |
50 | 53 |
51 // Set the node's internal title. Note that this neither invokes observers | 54 // Set the node's internal title. Note that this neither invokes observers |
52 // nor updates any bookmark model this node may be in. For that functionality, | 55 // nor updates any bookmark model this node may be in. For that functionality, |
53 // BookmarkModel::SetTitle(..) should be used instead. | 56 // BookmarkModel::SetTitle(..) should be used instead. |
54 void SetTitle(const base::string16& title) override; | 57 void SetTitle(const base::string16& title) override; |
55 | 58 |
56 // Returns an unique id for this node. | 59 // Returns an unique id for this node. |
57 // For bookmark nodes that are managed by the bookmark model, the IDs are | 60 // For bookmark nodes that are managed by the bookmark model, the IDs are |
58 // persisted across sessions. | 61 // persisted across sessions. |
59 int64 id() const { return id_; } | 62 int64_t id() const { return id_; } |
60 void set_id(int64 id) { id_ = id; } | 63 void set_id(int64_t id) { id_ = id; } |
61 | 64 |
62 const GURL& url() const { return url_; } | 65 const GURL& url() const { return url_; } |
63 void set_url(const GURL& url) { url_ = url; } | 66 void set_url(const GURL& url) { url_ = url; } |
64 | 67 |
65 // Returns the favicon's URL. Returns an empty URL if there is no favicon | 68 // Returns the favicon's URL. Returns an empty URL if there is no favicon |
66 // associated with this bookmark. | 69 // associated with this bookmark. |
67 const GURL& icon_url() const { return icon_url_; } | 70 const GURL& icon_url() const { return icon_url_; } |
68 | 71 |
69 Type type() const { return type_; } | 72 Type type() const { return type_; } |
70 void set_type(Type type) { type_ = type; } | 73 void set_type(Type type) { type_ = type; } |
(...skipping 28 matching lines...) Expand all Loading... |
99 // Gets/sets/deletes value of |key| in the meta info represented by | 102 // Gets/sets/deletes value of |key| in the meta info represented by |
100 // |meta_info_str_|. Return true if key is found in meta info for gets or | 103 // |meta_info_str_|. Return true if key is found in meta info for gets or |
101 // meta info is changed indeed for sets/deletes. | 104 // meta info is changed indeed for sets/deletes. |
102 bool GetMetaInfo(const std::string& key, std::string* value) const; | 105 bool GetMetaInfo(const std::string& key, std::string* value) const; |
103 bool SetMetaInfo(const std::string& key, const std::string& value); | 106 bool SetMetaInfo(const std::string& key, const std::string& value); |
104 bool DeleteMetaInfo(const std::string& key); | 107 bool DeleteMetaInfo(const std::string& key); |
105 void SetMetaInfoMap(const MetaInfoMap& meta_info_map); | 108 void SetMetaInfoMap(const MetaInfoMap& meta_info_map); |
106 // Returns NULL if there are no values in the map. | 109 // Returns NULL if there are no values in the map. |
107 const MetaInfoMap* GetMetaInfoMap() const; | 110 const MetaInfoMap* GetMetaInfoMap() const; |
108 | 111 |
109 void set_sync_transaction_version(int64 sync_transaction_version) { | 112 void set_sync_transaction_version(int64_t sync_transaction_version) { |
110 sync_transaction_version_ = sync_transaction_version; | 113 sync_transaction_version_ = sync_transaction_version; |
111 } | 114 } |
112 int64 sync_transaction_version() const { | 115 int64_t sync_transaction_version() const { return sync_transaction_version_; } |
113 return sync_transaction_version_; | |
114 } | |
115 | 116 |
116 // TODO(sky): Consider adding last visit time here, it'll greatly simplify | 117 // TODO(sky): Consider adding last visit time here, it'll greatly simplify |
117 // HistoryContentsProvider. | 118 // HistoryContentsProvider. |
118 | 119 |
119 private: | 120 private: |
120 friend class BookmarkModel; | 121 friend class BookmarkModel; |
121 | 122 |
122 // A helper function to initialize various fields during construction. | 123 // A helper function to initialize various fields during construction. |
123 void Initialize(int64 id); | 124 void Initialize(int64_t id); |
124 | 125 |
125 // Called when the favicon becomes invalid. | 126 // Called when the favicon becomes invalid. |
126 void InvalidateFavicon(); | 127 void InvalidateFavicon(); |
127 | 128 |
128 // Sets the favicon's URL. | 129 // Sets the favicon's URL. |
129 void set_icon_url(const GURL& icon_url) { | 130 void set_icon_url(const GURL& icon_url) { |
130 icon_url_ = icon_url; | 131 icon_url_ = icon_url; |
131 } | 132 } |
132 | 133 |
133 // Returns the favicon. In nearly all cases you should use the method | 134 // Returns the favicon. In nearly all cases you should use the method |
134 // BookmarkModel::GetFavicon rather than this one as it takes care of | 135 // BookmarkModel::GetFavicon rather than this one as it takes care of |
135 // loading the favicon if it isn't already loaded. | 136 // loading the favicon if it isn't already loaded. |
136 const gfx::Image& favicon() const { return favicon_; } | 137 const gfx::Image& favicon() const { return favicon_; } |
137 void set_favicon(const gfx::Image& icon) { favicon_ = icon; } | 138 void set_favicon(const gfx::Image& icon) { favicon_ = icon; } |
138 | 139 |
139 favicon_base::IconType favicon_type() const { return favicon_type_; } | 140 favicon_base::IconType favicon_type() const { return favicon_type_; } |
140 void set_favicon_type(favicon_base::IconType type) { favicon_type_ = type; } | 141 void set_favicon_type(favicon_base::IconType type) { favicon_type_ = type; } |
141 | 142 |
142 FaviconState favicon_state() const { return favicon_state_; } | 143 FaviconState favicon_state() const { return favicon_state_; } |
143 void set_favicon_state(FaviconState state) { favicon_state_ = state; } | 144 void set_favicon_state(FaviconState state) { favicon_state_ = state; } |
144 | 145 |
145 base::CancelableTaskTracker::TaskId favicon_load_task_id() const { | 146 base::CancelableTaskTracker::TaskId favicon_load_task_id() const { |
146 return favicon_load_task_id_; | 147 return favicon_load_task_id_; |
147 } | 148 } |
148 void set_favicon_load_task_id(base::CancelableTaskTracker::TaskId id) { | 149 void set_favicon_load_task_id(base::CancelableTaskTracker::TaskId id) { |
149 favicon_load_task_id_ = id; | 150 favicon_load_task_id_ = id; |
150 } | 151 } |
151 | 152 |
152 // The unique identifier for this node. | 153 // The unique identifier for this node. |
153 int64 id_; | 154 int64_t id_; |
154 | 155 |
155 // The URL of this node. BookmarkModel maintains maps off this URL, so changes | 156 // The URL of this node. BookmarkModel maintains maps off this URL, so changes |
156 // to the URL must be done through the BookmarkModel. | 157 // to the URL must be done through the BookmarkModel. |
157 GURL url_; | 158 GURL url_; |
158 | 159 |
159 // The type of this node. See enum above. | 160 // The type of this node. See enum above. |
160 Type type_; | 161 Type type_; |
161 | 162 |
162 // Date of when this node was created. | 163 // Date of when this node was created. |
163 base::Time date_added_; | 164 base::Time date_added_; |
(...skipping 15 matching lines...) Expand all Loading... |
179 | 180 |
180 // If not base::CancelableTaskTracker::kBadTaskId, it indicates | 181 // If not base::CancelableTaskTracker::kBadTaskId, it indicates |
181 // we're loading the | 182 // we're loading the |
182 // favicon and the task is tracked by CancelabelTaskTracker. | 183 // favicon and the task is tracked by CancelabelTaskTracker. |
183 base::CancelableTaskTracker::TaskId favicon_load_task_id_; | 184 base::CancelableTaskTracker::TaskId favicon_load_task_id_; |
184 | 185 |
185 // A map that stores arbitrary meta information about the node. | 186 // A map that stores arbitrary meta information about the node. |
186 scoped_ptr<MetaInfoMap> meta_info_map_; | 187 scoped_ptr<MetaInfoMap> meta_info_map_; |
187 | 188 |
188 // The sync transaction version. Defaults to kInvalidSyncTransactionVersion. | 189 // The sync transaction version. Defaults to kInvalidSyncTransactionVersion. |
189 int64 sync_transaction_version_; | 190 int64_t sync_transaction_version_; |
190 | 191 |
191 DISALLOW_COPY_AND_ASSIGN(BookmarkNode); | 192 DISALLOW_COPY_AND_ASSIGN(BookmarkNode); |
192 }; | 193 }; |
193 | 194 |
194 // BookmarkPermanentNode ------------------------------------------------------- | 195 // BookmarkPermanentNode ------------------------------------------------------- |
195 | 196 |
196 // Node used for the permanent folders (excluding the root). | 197 // Node used for the permanent folders (excluding the root). |
197 class BookmarkPermanentNode : public BookmarkNode { | 198 class BookmarkPermanentNode : public BookmarkNode { |
198 public: | 199 public: |
199 explicit BookmarkPermanentNode(int64 id); | 200 explicit BookmarkPermanentNode(int64_t id); |
200 ~BookmarkPermanentNode() override; | 201 ~BookmarkPermanentNode() override; |
201 | 202 |
202 // WARNING: this code is used for other projects. Contact noyau@ for details. | 203 // WARNING: this code is used for other projects. Contact noyau@ for details. |
203 void set_visible(bool value) { visible_ = value; } | 204 void set_visible(bool value) { visible_ = value; } |
204 | 205 |
205 // BookmarkNode overrides: | 206 // BookmarkNode overrides: |
206 bool IsVisible() const override; | 207 bool IsVisible() const override; |
207 | 208 |
208 private: | 209 private: |
209 bool visible_; | 210 bool visible_; |
210 | 211 |
211 DISALLOW_COPY_AND_ASSIGN(BookmarkPermanentNode); | 212 DISALLOW_COPY_AND_ASSIGN(BookmarkPermanentNode); |
212 }; | 213 }; |
213 | 214 |
214 } // namespace bookmarks | 215 } // namespace bookmarks |
215 | 216 |
216 #endif // COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_NODE_H_ | 217 #endif // COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_NODE_H_ |
OLD | NEW |