Update ASan/Android runtime and setup script to LLVM r200682.
[chromium-blink-merge.git] / content / browser / download / download_item_factory.h
blobc5e03f5c41dad256414727d94993f3707a620903
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 // The DownloadItemFactory is used to produce different DownloadItems.
6 // It is separate from the DownloadManager to allow download manager
7 // unit tests to control the items produced.
9 #ifndef CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_ITEM_FACTORY_H_
10 #define CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_ITEM_FACTORY_H_
12 #include <string>
13 #include <vector>
15 #include "base/memory/scoped_ptr.h"
16 #include "content/public/browser/download_item.h"
18 class GURL;
20 namespace base {
21 class FilePath;
24 namespace net {
25 class BoundNetLog;
28 namespace content {
30 class DownloadItem;
31 class DownloadItemImpl;
32 class DownloadItemImplDelegate;
33 class DownloadRequestHandleInterface;
34 struct DownloadCreateInfo;
36 class DownloadItemFactory {
37 public:
38 virtual ~DownloadItemFactory() {}
40 virtual DownloadItemImpl* CreatePersistedItem(
41 DownloadItemImplDelegate* delegate,
42 uint32 download_id,
43 const base::FilePath& current_path,
44 const base::FilePath& target_path,
45 const std::vector<GURL>& url_chain,
46 const GURL& referrer_url,
47 const base::Time& start_time,
48 const base::Time& end_time,
49 const std::string& etag,
50 const std::string& last_modified,
51 int64 received_bytes,
52 int64 total_bytes,
53 DownloadItem::DownloadState state,
54 DownloadDangerType danger_type,
55 DownloadInterruptReason interrupt_reason,
56 bool opened,
57 const net::BoundNetLog& bound_net_log) = 0;
59 virtual DownloadItemImpl* CreateActiveItem(
60 DownloadItemImplDelegate* delegate,
61 uint32 download_id,
62 const DownloadCreateInfo& info,
63 const net::BoundNetLog& bound_net_log) = 0;
65 virtual DownloadItemImpl* CreateSavePageItem(
66 DownloadItemImplDelegate* delegate,
67 uint32 download_id,
68 const base::FilePath& path,
69 const GURL& url,
70 const std::string& mime_type,
71 scoped_ptr<DownloadRequestHandleInterface> request_handle,
72 const net::BoundNetLog& bound_net_log) = 0;
75 } // namespace content
77 #endif // CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_ITEM_FACTORY_H_