• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #include "content/browser/download/save_file.h"
6 
7 #include "base/logging.h"
8 #include "content/public/browser/browser_thread.h"
9 
10 namespace content {
11 
12 // TODO(asanka): SaveFile should use the target directory of the save package as
13 //               the default download directory when initializing |file_|.
14 //               Unfortunately, as it is, constructors of SaveFile don't always
15 //               have access to the SavePackage at this point.
SaveFile(const SaveFileCreateInfo * info,bool calculate_hash)16 SaveFile::SaveFile(const SaveFileCreateInfo* info, bool calculate_hash)
17     : file_(base::FilePath(),
18             info->url,
19             GURL(),
20             0,
21             calculate_hash,
22             std::string(),
23             base::File(),
24             net::BoundNetLog()),
25       info_(info) {
26   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
27 
28   DCHECK(info);
29   DCHECK(info->path.empty());
30 }
31 
~SaveFile()32 SaveFile::~SaveFile() {
33   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
34 }
35 
Initialize()36 DownloadInterruptReason SaveFile::Initialize() {
37   return file_.Initialize(base::FilePath());
38 }
39 
AppendDataToFile(const char * data,size_t data_len)40 DownloadInterruptReason SaveFile::AppendDataToFile(const char* data,
41                                                    size_t data_len) {
42   return file_.AppendDataToFile(data, data_len);
43 }
44 
Rename(const base::FilePath & full_path)45 DownloadInterruptReason SaveFile::Rename(const base::FilePath& full_path) {
46   return file_.Rename(full_path);
47 }
48 
Detach()49 void SaveFile::Detach() {
50   file_.Detach();
51 }
52 
Cancel()53 void SaveFile::Cancel() {
54   file_.Cancel();
55 }
56 
Finish()57 void SaveFile::Finish() {
58   file_.Finish();
59 }
60 
AnnotateWithSourceInformation()61 void SaveFile::AnnotateWithSourceInformation() {
62   // TODO(gbillock): If this method is called, it should set the
63   // file_.SetClientGuid() method first.
64   file_.AnnotateWithSourceInformation();
65 }
66 
FullPath() const67 base::FilePath SaveFile::FullPath() const {
68   return file_.full_path();
69 }
70 
InProgress() const71 bool SaveFile::InProgress() const {
72   return file_.in_progress();
73 }
74 
BytesSoFar() const75 int64 SaveFile::BytesSoFar() const {
76   return file_.bytes_so_far();
77 }
78 
GetHash(std::string * hash)79 bool SaveFile::GetHash(std::string* hash) {
80   return file_.GetHash(hash);
81 }
82 
DebugString() const83 std::string SaveFile::DebugString() const {
84   return file_.DebugString();
85 }
86 
87 }  // namespace content
88