Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(65)

Side by Side Diff: chrome/browser/bookmarks/bookmark_codec.h

Issue 7259019: Move base/values.h into the base namespace. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // BookmarkCodec is responsible for encoding and decoding the BookmarkModel 5 // BookmarkCodec is responsible for encoding and decoding the BookmarkModel
6 // into JSON values. The encoded values are written to disk via the 6 // into JSON values. The encoded values are written to disk via the
7 // BookmarkService. 7 // BookmarkService.
8 8
9 #ifndef CHROME_BROWSER_BOOKMARKS_BOOKMARK_CODEC_H_ 9 #ifndef CHROME_BROWSER_BOOKMARKS_BOOKMARK_CODEC_H_
10 #define CHROME_BROWSER_BOOKMARKS_BOOKMARK_CODEC_H_ 10 #define CHROME_BROWSER_BOOKMARKS_BOOKMARK_CODEC_H_
11 #pragma once 11 #pragma once
12 12
13 #include <set> 13 #include <set>
14 #include <string> 14 #include <string>
15 15
16 #include "base/basictypes.h" 16 #include "base/basictypes.h"
17 #include "base/md5.h" 17 #include "base/md5.h"
18 #include "base/string16.h" 18 #include "base/string16.h"
19 19
20 class BookmarkModel; 20 class BookmarkModel;
21 class BookmarkNode; 21 class BookmarkNode;
22
23 namespace base {
22 class DictionaryValue; 24 class DictionaryValue;
23 class ListValue; 25 class ListValue;
24 class Value; 26 class Value;
27 }
25 28
26 // BookmarkCodec is responsible for encoding/decoding bookmarks into JSON 29 // BookmarkCodec is responsible for encoding/decoding bookmarks into JSON
27 // values. BookmarkCodec is used by BookmarkService. 30 // values. BookmarkCodec is used by BookmarkService.
28 31
29 class BookmarkCodec { 32 class BookmarkCodec {
30 public: 33 public:
31 // Creates an instance of the codec. During decoding, if the IDs in the file 34 // Creates an instance of the codec. During decoding, if the IDs in the file
32 // are not unique, we will reassign IDs to make them unique. There are no 35 // are not unique, we will reassign IDs to make them unique. There are no
33 // guarantees on how the IDs are reassigned or about doing minimal 36 // guarantees on how the IDs are reassigned or about doing minimal
34 // reassignments to achieve uniqueness. 37 // reassignments to achieve uniqueness.
35 BookmarkCodec(); 38 BookmarkCodec();
36 ~BookmarkCodec(); 39 ~BookmarkCodec();
37 40
38 // Encodes the model to a JSON value. It's up to the caller to delete the 41 // Encodes the model to a JSON value. It's up to the caller to delete the
39 // returned object. This is invoked to encode the contents of the bookmark bar 42 // returned object. This is invoked to encode the contents of the bookmark bar
40 // model and is currently a convenience to invoking Encode that takes the 43 // model and is currently a convenience to invoking Encode that takes the
41 // bookmark bar node and other folder node. 44 // bookmark bar node and other folder node.
42 Value* Encode(BookmarkModel* model); 45 base::Value* Encode(BookmarkModel* model);
43 46
44 // Encodes the bookmark bar and other folders returning the JSON value. It's 47 // Encodes the bookmark bar and other folders returning the JSON value. It's
45 // up to the caller to delete the returned object. 48 // up to the caller to delete the returned object.
46 // This method is public for use by StarredURLDatabase in migrating the 49 // This method is public for use by StarredURLDatabase in migrating the
47 // bookmarks out of the database. 50 // bookmarks out of the database.
48 Value* Encode(const BookmarkNode* bookmark_bar_node, 51 base::Value* Encode(const BookmarkNode* bookmark_bar_node,
49 const BookmarkNode* other_folder_node, 52 const BookmarkNode* other_folder_node,
50 const BookmarkNode* synced_folder_node); 53 const BookmarkNode* synced_folder_node);
51 54
52 // Decodes the previously encoded value to the specified nodes as well as 55 // Decodes the previously encoded value to the specified nodes as well as
53 // setting |max_node_id| to the greatest node id. Returns true on success, 56 // setting |max_node_id| to the greatest node id. Returns true on success,
54 // false otherwise. If there is an error (such as unexpected version) all 57 // false otherwise. If there is an error (such as unexpected version) all
55 // children are removed from the bookmark bar and other folder nodes. On exit 58 // children are removed from the bookmark bar and other folder nodes. On exit
56 // |max_node_id| is set to the max id of the nodes. 59 // |max_node_id| is set to the max id of the nodes.
57 bool Decode(BookmarkNode* bb_node, 60 bool Decode(BookmarkNode* bb_node,
58 BookmarkNode* other_folder_node, 61 BookmarkNode* other_folder_node,
59 BookmarkNode* synced_folder_node, 62 BookmarkNode* synced_folder_node,
60 int64* max_node_id, 63 int64* max_node_id,
61 const Value& value); 64 const base::Value& value);
62 65
63 // Returns the checksum computed during last encoding/decoding call. 66 // Returns the checksum computed during last encoding/decoding call.
64 const std::string& computed_checksum() const { return computed_checksum_; } 67 const std::string& computed_checksum() const { return computed_checksum_; }
65 68
66 // Returns the checksum that's stored in the file. After a call to Encode, 69 // Returns the checksum that's stored in the file. After a call to Encode,
67 // the computed and stored checksums are the same since the computed checksum 70 // the computed and stored checksums are the same since the computed checksum
68 // is stored to the file. After a call to decode, the computed checksum can 71 // is stored to the file. After a call to decode, the computed checksum can
69 // differ from the stored checksum if the file contents were changed by the 72 // differ from the stored checksum if the file contents were changed by the
70 // user. 73 // user.
71 const std::string& stored_checksum() const { return stored_checksum_; } 74 const std::string& stored_checksum() const { return stored_checksum_; }
(...skipping 17 matching lines...) Expand all
89 static const char* kDateModifiedKey; 92 static const char* kDateModifiedKey;
90 static const char* kChildrenKey; 93 static const char* kChildrenKey;
91 94
92 // Possible values for kTypeKey. 95 // Possible values for kTypeKey.
93 static const char* kTypeURL; 96 static const char* kTypeURL;
94 static const char* kTypeFolder; 97 static const char* kTypeFolder;
95 98
96 private: 99 private:
97 // Encodes node and all its children into a Value object and returns it. 100 // Encodes node and all its children into a Value object and returns it.
98 // The caller takes ownership of the returned object. 101 // The caller takes ownership of the returned object.
99 Value* EncodeNode(const BookmarkNode* node); 102 base::Value* EncodeNode(const BookmarkNode* node);
100 103
101 // Helper to perform decoding. 104 // Helper to perform decoding.
102 bool DecodeHelper(BookmarkNode* bb_node, 105 bool DecodeHelper(BookmarkNode* bb_node,
103 BookmarkNode* other_folder_node, 106 BookmarkNode* other_folder_node,
104 BookmarkNode* synced_folder_node, 107 BookmarkNode* synced_folder_node,
105 const Value& value); 108 const base::Value& value);
106 109
107 // Decodes the children of the specified node. Returns true on success. 110 // Decodes the children of the specified node. Returns true on success.
108 bool DecodeChildren(const ListValue& child_value_list, 111 bool DecodeChildren(const base::ListValue& child_value_list,
109 BookmarkNode* parent); 112 BookmarkNode* parent);
110 113
111 // Reassigns bookmark IDs for all nodes. 114 // Reassigns bookmark IDs for all nodes.
112 void ReassignIDs(BookmarkNode* bb_node, 115 void ReassignIDs(BookmarkNode* bb_node,
113 BookmarkNode* other_node, 116 BookmarkNode* other_node,
114 BookmarkNode* synced_node); 117 BookmarkNode* synced_node);
115 118
116 // Helper to recursively reassign IDs. 119 // Helper to recursively reassign IDs.
117 void ReassignIDsHelper(BookmarkNode* node); 120 void ReassignIDsHelper(BookmarkNode* node);
118 121
119 // Decodes the supplied node from the supplied value. Child nodes are 122 // Decodes the supplied node from the supplied value. Child nodes are
120 // created appropriately by way of DecodeChildren. If node is NULL a new 123 // created appropriately by way of DecodeChildren. If node is NULL a new
121 // node is created and added to parent (parent must then be non-NULL), 124 // node is created and added to parent (parent must then be non-NULL),
122 // otherwise node is used. 125 // otherwise node is used.
123 bool DecodeNode(const DictionaryValue& value, 126 bool DecodeNode(const base::DictionaryValue& value,
124 BookmarkNode* parent, 127 BookmarkNode* parent,
125 BookmarkNode* node); 128 BookmarkNode* node);
126 129
127 // Updates the check-sum with the given string. 130 // Updates the check-sum with the given string.
128 void UpdateChecksum(const std::string& str); 131 void UpdateChecksum(const std::string& str);
129 void UpdateChecksum(const string16& str); 132 void UpdateChecksum(const string16& str);
130 133
131 // Updates the check-sum with the given contents of URL/folder bookmark node. 134 // Updates the check-sum with the given contents of URL/folder bookmark node.
132 // NOTE: These functions take in individual properties of a bookmark node 135 // NOTE: These functions take in individual properties of a bookmark node
133 // instead of taking in a BookmarkNode for efficiency so that we don't convert 136 // instead of taking in a BookmarkNode for efficiency so that we don't convert
(...skipping 28 matching lines...) Expand all
162 std::string computed_checksum_; 165 std::string computed_checksum_;
163 std::string stored_checksum_; 166 std::string stored_checksum_;
164 167
165 // Maximum ID assigned when decoding data. 168 // Maximum ID assigned when decoding data.
166 int64 maximum_id_; 169 int64 maximum_id_;
167 170
168 DISALLOW_COPY_AND_ASSIGN(BookmarkCodec); 171 DISALLOW_COPY_AND_ASSIGN(BookmarkCodec);
169 }; 172 };
170 173
171 #endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_CODEC_H_ 174 #endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_CODEC_H_
OLDNEW
« no previous file with comments | « chrome/browser/background/background_contents_service.h ('k') | chrome/browser/chromeos/cros/network_library.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698