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 #ifndef CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_FILE_FACTORY_H_ 6 #define CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_FILE_FACTORY_H_ 7 8 #include "base/files/file_path.h" 9 #include "base/memory/ref_counted.h" 10 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/weak_ptr.h" 12 #include "content/common/content_export.h" 13 #include "url/gurl.h" 14 15 namespace net { 16 class BoundNetLog; 17 } 18 19 namespace content { 20 21 class ByteStreamReader; 22 class DownloadDestinationObserver; 23 class DownloadFile; 24 class DownloadManager; 25 struct DownloadSaveInfo; 26 27 class CONTENT_EXPORT DownloadFileFactory { 28 public: 29 virtual ~DownloadFileFactory(); 30 31 virtual DownloadFile* CreateFile( 32 scoped_ptr<DownloadSaveInfo> save_info, 33 const base::FilePath& default_downloads_directory, 34 const GURL& url, 35 const GURL& referrer_url, 36 bool calculate_hash, 37 scoped_ptr<ByteStreamReader> stream, 38 const net::BoundNetLog& bound_net_log, 39 base::WeakPtr<DownloadDestinationObserver> observer); 40 }; 41 42 } // namespace content 43 44 #endif // CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_FILE_FACTORY_H_ 45