Home | History | Annotate | Download | only in download
      1 // Copyright (c) 2010 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 CHROME_BROWSER_DOWNLOAD_SAVE_TYPES_H_
      6 #define CHROME_BROWSER_DOWNLOAD_SAVE_TYPES_H_
      7 #pragma once
      8 
      9 #include <string>
     10 #include <utility>
     11 #include <vector>
     12 
     13 #include "base/basictypes.h"
     14 #include "base/file_path.h"
     15 #include "googleurl/src/gurl.h"
     16 
     17 typedef std::vector<std::pair<int, FilePath> > FinalNameList;
     18 typedef std::vector<int> SaveIDList;
     19 
     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
     34   };
     35 
     36   SaveFileCreateInfo(const FilePath& path,
     37                      const GURL& url,
     38                      SaveFileSource save_source,
     39                      int32 save_id);
     40 
     41   SaveFileCreateInfo();
     42 
     43   ~SaveFileCreateInfo();
     44 
     45   // SaveItem fields.
     46   // The local file path of saved file.
     47   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 tab 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;
     66 };
     67 
     68 #endif  // CHROME_BROWSER_DOWNLOAD_SAVE_TYPES_H_
     69