Home | History | Annotate | Download | only in download
      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
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/download/download_file.h"
      6 
      7 #include <string>
      8 
      9 #include "base/file_util.h"
     10 #include "base/stringprintf.h"
     11 #include "chrome/browser/download/download_manager.h"
     12 #include "chrome/browser/download/download_util.h"
     13 #include "chrome/browser/history/download_create_info.h"
     14 #include "content/browser/browser_thread.h"
     15 
     16 DownloadFile::DownloadFile(const DownloadCreateInfo* info,
     17                            DownloadManager* download_manager)
     18     : BaseFile(info->save_info.file_path,
     19                info->url(),
     20                info->referrer_url,
     21                info->received_bytes,
     22                info->save_info.file_stream),
     23       id_(info->download_id),
     24       child_id_(info->child_id),
     25       request_id_(info->request_id),
     26       download_manager_(download_manager) {
     27   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
     28 
     29 }
     30 
     31 DownloadFile::~DownloadFile() {
     32   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
     33 }
     34 
     35 void DownloadFile::CancelDownloadRequest(ResourceDispatcherHost* rdh) {
     36   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
     37   BrowserThread::PostTask(
     38       BrowserThread::IO, FROM_HERE,
     39       NewRunnableFunction(&download_util::CancelDownloadRequest,
     40                           rdh,
     41                           child_id_,
     42                           request_id_));
     43 }
     44 
     45 DownloadManager* DownloadFile::GetDownloadManager() {
     46   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
     47   return download_manager_.get();
     48 }
     49 
     50 std::string DownloadFile::DebugString() const {
     51   return base::StringPrintf("{"
     52                             " full_path_ = " "\"%s\""
     53                             " id_ = " "%d"
     54                             " child_id_ = " "%d"
     55                             " request_id_ = " "%d"
     56                             " Base File = %s"
     57                             " }",
     58                             full_path_.value().c_str(),
     59                             id_,
     60                             child_id_,
     61                             request_id_,
     62                             BaseFile::DebugString().c_str());
     63 }
     64