OLD | NEW |
| (Empty) |
1 // Copyright (c) 2013 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 NET_DISK_CACHE_SIMPLE_SIMPLE_UTIL_H_ | |
6 #define NET_DISK_CACHE_SIMPLE_SIMPLE_UTIL_H_ | |
7 | |
8 #include <string> | |
9 | |
10 #include "base/basictypes.h" | |
11 #include "base/strings/string_piece.h" | |
12 #include "net/base/net_export.h" | |
13 | |
14 namespace base { | |
15 class FilePath; | |
16 class Time; | |
17 } | |
18 | |
19 namespace disk_cache { | |
20 | |
21 namespace simple_util { | |
22 | |
23 NET_EXPORT_PRIVATE std::string ConvertEntryHashKeyToHexString(uint64 hash_key); | |
24 | |
25 // |key| is the regular cache key, such as an URL. | |
26 // Returns the Hex ascii representation of the uint64 hash_key. | |
27 NET_EXPORT_PRIVATE std::string GetEntryHashKeyAsHexString( | |
28 const std::string& key); | |
29 | |
30 // |key| is the regular HTTP Cache key, which is a URL. | |
31 // Returns the hash of the key as uint64. | |
32 NET_EXPORT_PRIVATE uint64 GetEntryHashKey(const std::string& key); | |
33 | |
34 // Parses the |hash_key| string into a uint64 buffer. | |
35 // |hash_key| string must be of the form: FFFFFFFFFFFFFFFF . | |
36 NET_EXPORT_PRIVATE bool GetEntryHashKeyFromHexString( | |
37 const base::StringPiece& hash_key, | |
38 uint64* hash_key_out); | |
39 | |
40 // Given a |key| for a (potential) entry in the simple backend and the |index| | |
41 // of a stream on that entry, returns the filename in which that stream would be | |
42 // stored. | |
43 NET_EXPORT_PRIVATE std::string GetFilenameFromKeyAndFileIndex( | |
44 const std::string& key, | |
45 int file_index); | |
46 | |
47 // Same as |GetFilenameFromKeyAndIndex| above, but using a hex string. | |
48 std::string GetFilenameFromEntryHashAndFileIndex(uint64 entry_hash, | |
49 int file_index); | |
50 | |
51 // Given a |key| for an entry, returns the name of the sparse data file. | |
52 std::string GetSparseFilenameFromEntryHash(uint64 entry_hash); | |
53 | |
54 // Given the size of a file holding a stream in the simple backend and the key | |
55 // to an entry, returns the number of bytes in the stream. | |
56 NET_EXPORT_PRIVATE int32 GetDataSizeFromKeyAndFileSize(const std::string& key, | |
57 int64 file_size); | |
58 | |
59 // Given the size of a stream in the simple backend and the key to an entry, | |
60 // returns the number of bytes in the file. | |
61 NET_EXPORT_PRIVATE int64 GetFileSizeFromKeyAndDataSize(const std::string& key, | |
62 int32 data_size); | |
63 | |
64 // Given the stream index, returns the number of the file the stream is stored | |
65 // in. | |
66 NET_EXPORT_PRIVATE int GetFileIndexFromStreamIndex(int stream_index); | |
67 | |
68 // Fills |out_time| with the time the file last modified time. Unlike the | |
69 // functions in file.h, the time resolution is milliseconds. | |
70 NET_EXPORT_PRIVATE bool GetMTime(const base::FilePath& path, | |
71 base::Time* out_mtime); | |
72 | |
73 // Deletes a file, insuring POSIX semantics. Provided that all open handles to | |
74 // this file were opened with File::FLAG_SHARE_DELETE, it is possible to delete | |
75 // an open file and continue to use that file. After deleting an open file, it | |
76 // is possible to immediately create a new file with the same name. | |
77 NET_EXPORT_PRIVATE bool SimpleCacheDeleteFile(const base::FilePath& path); | |
78 | |
79 } // namespace simple_util | |
80 | |
81 } // namespace disk_cache | |
82 | |
83 #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_UTIL_H_ | |
OLD | NEW |