Save errno for logging before potentially overwriting it.
[chromium-blink-merge.git] / content / browser / download / save_types.h
blob5f60e1e9d8f37cc302454d4a143729e741cfc923
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.
5 #ifndef CONTENT_BROWSER_DOWNLOAD_SAVE_TYPES_H_
6 #define CONTENT_BROWSER_DOWNLOAD_SAVE_TYPES_H_
8 #include <string>
9 #include <utility>
10 #include <vector>
12 #include "base/basictypes.h"
13 #include "base/files/file_path.h"
14 #include "googleurl/src/gurl.h"
16 namespace content {
17 typedef std::vector<std::pair<int, base::FilePath> > FinalNameList;
18 typedef std::vector<int> SaveIDList;
20 // This structure is used to handle and deliver some info
21 // when processing each save item job.
22 struct SaveFileCreateInfo {
23 enum SaveFileSource {
24 // This type indicates the source is not set.
25 SAVE_FILE_FROM_UNKNOWN = -1,
26 // This type indicates the save item needs to be retrieved from the network.
27 SAVE_FILE_FROM_NET = 0,
28 // This type indicates the save item needs to be retrieved from serializing
29 // DOM.
30 SAVE_FILE_FROM_DOM,
31 // This type indicates the save item needs to be retrieved from local file
32 // system.
33 SAVE_FILE_FROM_FILE
36 SaveFileCreateInfo(const base::FilePath& path,
37 const GURL& url,
38 SaveFileSource save_source,
39 int32 save_id);
41 SaveFileCreateInfo();
43 ~SaveFileCreateInfo();
45 // SaveItem fields.
46 // The local file path of saved file.
47 base::FilePath path;
48 // Original URL of the saved resource.
49 GURL url;
50 // Final URL of the saved resource since some URL might be redirected.
51 GURL final_url;
52 // The unique identifier for saving job, assigned at creation by
53 // the SaveFileManager for its internal record keeping.
54 int save_id;
55 // IDs for looking up the contents we are associated with.
56 int render_process_id;
57 int render_view_id;
58 // Handle for informing the ResourceDispatcherHost of a UI based cancel.
59 int request_id;
60 // Disposition info from HTTP response.
61 std::string content_disposition;
62 // Total bytes of saved file.
63 int64 total_bytes;
64 // Source type of saved file.
65 SaveFileSource save_source;
68 } // namespace content
70 #endif // CONTENT_BROWSER_DOWNLOAD_SAVE_TYPES_H_