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 CONTENT_BROWSER_DOWNLOAD_BASE_FILE_H_ | 5 #ifndef CONTENT_BROWSER_DOWNLOAD_BASE_FILE_H_ |
6 #define CONTENT_BROWSER_DOWNLOAD_BASE_FILE_H_ | 6 #define CONTENT_BROWSER_DOWNLOAD_BASE_FILE_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/files/file.h" | 10 #include "base/files/file.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 // |default_directory| and |full_path()| are empty, then a temporary file will | 49 // |default_directory| and |full_path()| are empty, then a temporary file will |
50 // be created in the default download location as determined by | 50 // be created in the default download location as determined by |
51 // ContentBrowserClient. | 51 // ContentBrowserClient. |
52 DownloadInterruptReason Initialize(const base::FilePath& default_directory); | 52 DownloadInterruptReason Initialize(const base::FilePath& default_directory); |
53 | 53 |
54 // Write a new chunk of data to the file. Returns a DownloadInterruptReason | 54 // Write a new chunk of data to the file. Returns a DownloadInterruptReason |
55 // indicating the result of the operation. | 55 // indicating the result of the operation. |
56 DownloadInterruptReason AppendDataToFile(const char* data, size_t data_len); | 56 DownloadInterruptReason AppendDataToFile(const char* data, size_t data_len); |
57 | 57 |
58 // Rename the download file. Returns a DownloadInterruptReason indicating the | 58 // Rename the download file. Returns a DownloadInterruptReason indicating the |
59 // result of the operation. | 59 // result of the operation. A return code of NONE indicates that the rename |
| 60 // was successful. After a failure, the full_path() and in_progress() can be |
| 61 // used to determine the last known filename and whether the file is available |
| 62 // for writing or retrying the rename. |
60 virtual DownloadInterruptReason Rename(const base::FilePath& full_path); | 63 virtual DownloadInterruptReason Rename(const base::FilePath& full_path); |
61 | 64 |
62 // Detach the file so it is not deleted on destruction. | 65 // Detach the file so it is not deleted on destruction. |
63 virtual void Detach(); | 66 virtual void Detach(); |
64 | 67 |
65 // Abort the download and automatically close the file. | 68 // Abort the download and automatically close the file. |
66 void Cancel(); | 69 void Cancel(); |
67 | 70 |
68 // Indicate that the download has finished. No new data will be received. | 71 // Indicate that the download has finished. No new data will be received. |
69 void Finish(); | 72 void Finish(); |
70 | 73 |
71 // Set the client guid which will be used to identify the app to the | 74 // Set the client guid which will be used to identify the app to the |
72 // system AV scanning function. Should be called before | 75 // system AV scanning function. Should be called before |
73 // AnnotateWithSourceInformation() to take effect. | 76 // AnnotateWithSourceInformation() to take effect. |
74 void SetClientGuid(const std::string& guid); | 77 void SetClientGuid(const std::string& guid); |
75 | 78 |
76 // Informs the OS that this file came from the internet. Returns a | 79 // Informs the OS that this file came from the internet. Returns a |
77 // DownloadInterruptReason indicating the result of the operation. | 80 // DownloadInterruptReason indicating the result of the operation. |
78 // Note: SetClientGuid() should be called before this function on | 81 // Note: SetClientGuid() should be called before this function on |
79 // Windows to ensure the correct app client ID is available. | 82 // Windows to ensure the correct app client ID is available. |
80 DownloadInterruptReason AnnotateWithSourceInformation(); | 83 DownloadInterruptReason AnnotateWithSourceInformation(); |
81 | 84 |
82 base::FilePath full_path() const { return full_path_; } | 85 // Returns the last known path to the download file. Can be empty if there's |
| 86 // no file. |
| 87 const base::FilePath& full_path() const { return full_path_; } |
| 88 |
| 89 // Returns true if the file is open. If true, the file can be written to or |
| 90 // renamed. |
83 bool in_progress() const { return file_.IsValid(); } | 91 bool in_progress() const { return file_.IsValid(); } |
| 92 |
| 93 // Returns the number of bytes in the file pointed to by full_path(). |
84 int64 bytes_so_far() const { return bytes_so_far_; } | 94 int64 bytes_so_far() const { return bytes_so_far_; } |
85 | 95 |
86 // Fills |hash| with the hash digest for the file. | 96 // Fills |hash| with the hash digest for the file. |
87 // Returns true if digest is successfully calculated. | 97 // Returns true if digest is successfully calculated. |
88 virtual bool GetHash(std::string* hash); | 98 virtual bool GetHash(std::string* hash); |
89 | 99 |
90 // Returns the current (intermediate) state of the hash as a byte string. | 100 // Returns the current (intermediate) state of the hash as a byte string. |
91 virtual std::string GetHashState(); | 101 virtual std::string GetHashState(); |
92 | 102 |
93 // Returns true if the given hash is considered empty. An empty hash is | 103 // Returns true if the given hash is considered empty. An empty hash is |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 bool detached_; | 180 bool detached_; |
171 | 181 |
172 net::BoundNetLog bound_net_log_; | 182 net::BoundNetLog bound_net_log_; |
173 | 183 |
174 DISALLOW_COPY_AND_ASSIGN(BaseFile); | 184 DISALLOW_COPY_AND_ASSIGN(BaseFile); |
175 }; | 185 }; |
176 | 186 |
177 } // namespace content | 187 } // namespace content |
178 | 188 |
179 #endif // CONTENT_BROWSER_DOWNLOAD_BASE_FILE_H_ | 189 #endif // CONTENT_BROWSER_DOWNLOAD_BASE_FILE_H_ |
OLD | NEW |