OLD | NEW |
---|---|
(Empty) | |
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. | |
4 | |
5 #ifndef EXTENSIONS_BROWSER_COMPUTED_HASHES_H_ | |
6 #define EXTENSIONS_BROWSER_COMPUTED_HASHES_H_ | |
7 | |
8 #include <map> | |
9 #include <string> | |
10 #include <vector> | |
11 | |
12 #include "base/values.h" | |
13 | |
14 namespace base { | |
15 class FilePath; | |
16 } | |
17 | |
18 namespace extensions { | |
19 | |
20 // A pair of classes for serialization of a set of SHA256 block hashes computed | |
21 // over the files inside an extension. | |
22 class ComputedHashes { | |
23 public: | |
24 class Reader { | |
Ken Rockot(use gerrit already)
2014/05/15 00:51:25
nit: I guess I'd rather see separate classes in se
asargent_no_longer_on_chrome
2014/05/15 04:02:49
I filed crbug.com/373597 for looking into doing th
| |
25 public: | |
26 Reader(); | |
27 ~Reader(); | |
28 bool InitFromFile(const base::FilePath& path); | |
29 | |
30 // The block size and hashes for |relative_path| will be copied into the | |
31 // out parameters. | |
32 bool GetHashes(const base::FilePath& relative_path, | |
33 int* block_size, | |
34 std::vector<std::string>* hashes); | |
35 | |
36 private: | |
37 typedef std::pair<int, std::vector<std::string> > HashInfo; | |
38 | |
39 // This maps a relative path to a pair of (block size, hashes) | |
40 std::map<base::FilePath, HashInfo> data_; | |
41 }; | |
42 | |
43 class Writer { | |
44 public: | |
45 Writer(); | |
46 ~Writer(); | |
47 | |
48 // Adds hashes for |relative_path|. Should not be called more than once | |
49 // for a given |relative_path|. | |
50 void AddHashes(const base::FilePath& relative_path, | |
51 int block_size, | |
52 const std::vector<std::string>& hashes); | |
53 | |
54 bool WriteToFile(const base::FilePath& path); | |
55 | |
56 private: | |
57 // The top-level object that will be serialized as JSON. | |
58 base::ListValue file_list_; | |
59 }; | |
60 }; | |
61 | |
62 } // namespace extensions | |
63 | |
64 #endif // EXTENSIONS_BROWSER_COMPUTED_HASHES_H_ | |
OLD | NEW |