1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 53345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#ifndef CHROME_BROWSER_DOWNLOAD_SAVE_FILE_H_ 63345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#define CHROME_BROWSER_DOWNLOAD_SAVE_FILE_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/basictypes.h" 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/file_path.h" 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_ptr.h" 123345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "chrome/browser/download/base_file.h" 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/download/save_types.h" 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// SaveFile ---------------------------------------------------------------- 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// These objects live exclusively on the file thread and handle the writing 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// operations for one save item. These objects live only for the duration that 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// the saving job is 'in progress': once the saving job has been completed or 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// canceled, the SaveFile is destroyed. One SaveFile object represents one item 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// in a save session. 223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickclass SaveFile : public BaseFile { 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch explicit SaveFile(const SaveFileCreateInfo* info); 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ~SaveFile(); 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Accessors. 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch int save_id() const { return info_->save_id; } 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch int render_process_id() const { return info_->render_process_id; } 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch int render_view_id() const { return info_->render_view_id; } 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch int request_id() const { return info_->request_id; } 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch SaveFileCreateInfo::SaveFileSource save_source() const { 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch return info_->save_source; 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch scoped_ptr<const SaveFileCreateInfo> info_; 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(SaveFile); 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 423345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#endif // CHROME_BROWSER_DOWNLOAD_SAVE_FILE_H_ 43