// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef APP_DOWNLOAD_FILE_INTERFACE_H_ #define APP_DOWNLOAD_FILE_INTERFACE_H_ #include "build/build_config.h" #include "base/basictypes.h" #include "base/ref_counted.h" #if defined(OS_WIN) #include #endif class FilePath; // Defines the interface to observe the status of file download. class DownloadFileObserver : public base::RefCountedThreadSafe { public: virtual void OnDownloadCompleted(const FilePath& file_path) = 0; virtual void OnDownloadAborted() = 0; protected: friend class base::RefCountedThreadSafe; virtual ~DownloadFileObserver() {} }; // Defines the interface to control how a file is downloaded. class DownloadFileProvider : public base::RefCountedThreadSafe { public: virtual bool Start(DownloadFileObserver* observer) = 0; virtual void Stop() = 0; #if defined(OS_WIN) virtual IStream* GetStream() = 0; #endif protected: friend class base::RefCountedThreadSafe; virtual ~DownloadFileProvider() {} }; #endif // APP_DOWNLOAD_FILE_INTERFACE_H_