| Index: ppapi/native_client/src/trusted/plugin/file_downloader.h
|
| diff --git a/ppapi/native_client/src/trusted/plugin/file_downloader.h b/ppapi/native_client/src/trusted/plugin/file_downloader.h
|
| deleted file mode 100644
|
| index 4a1a71accf840e3173da42cea7ea06150447a4ac..0000000000000000000000000000000000000000
|
| --- a/ppapi/native_client/src/trusted/plugin/file_downloader.h
|
| +++ /dev/null
|
| @@ -1,125 +0,0 @@
|
| -// Copyright (c) 2012 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 NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_FILE_DOWNLOADER_H_
|
| -#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_FILE_DOWNLOADER_H_
|
| -
|
| -#include <deque>
|
| -
|
| -#include "native_client/src/include/nacl_macros.h"
|
| -#include "native_client/src/include/nacl_string.h"
|
| -#include "native_client/src/public/nacl_file_info.h"
|
| -#include "ppapi/c/private/ppb_nacl_private.h"
|
| -#include "ppapi/cpp/file_io.h"
|
| -#include "ppapi/cpp/instance.h"
|
| -#include "ppapi/cpp/url_loader.h"
|
| -#include "ppapi/cpp/url_response_info.h"
|
| -#include "ppapi/native_client/src/trusted/plugin/callback_source.h"
|
| -#include "ppapi/utility/completion_callback_factory.h"
|
| -
|
| -namespace plugin {
|
| -
|
| -class Plugin;
|
| -
|
| -typedef enum {
|
| - DOWNLOAD_TO_BUFFER_AND_STREAM = 0,
|
| - DOWNLOAD_NONE
|
| -} DownloadMode;
|
| -
|
| -typedef std::vector<char>* FileStreamData;
|
| -typedef CallbackSource<FileStreamData> StreamCallbackSource;
|
| -typedef pp::CompletionCallbackWithOutput<FileStreamData> StreamCallback;
|
| -
|
| -// A class that wraps PPAPI URLLoader and FileIO functionality for downloading
|
| -// the url into a file and providing an open file descriptor.
|
| -class FileDownloader {
|
| - public:
|
| - explicit FileDownloader(Plugin* instance);
|
| - ~FileDownloader() {}
|
| -
|
| - // Issues a GET on |url| to start downloading the response into a file,
|
| - // and finish streaming it. |callback| will be run after streaming is
|
| - // done or if an error prevents streaming from completing.
|
| - // Returns true when callback is scheduled to be called on success or failure.
|
| - // Returns false if callback is NULL, or if the PPB_FileIO_Trusted interface
|
| - // is not available.
|
| - // If |record_progress| is true, then download progress will be recorded,
|
| - // and can be polled through GetDownloadProgress().
|
| - // If |progress_callback| is not NULL and |record_progress| is true,
|
| - // then the callback will be invoked for every progress update received
|
| - // by the loader.
|
| -
|
| - // Similar to Open(), but used for streaming the |url| data directly to the
|
| - // caller without writing to a temporary file. The callbacks provided by
|
| - // |stream_callback_source| are expected to copy the data before returning.
|
| - // |callback| is called once the response headers are received,
|
| - // and streaming must be completed separately via BeginStreaming().
|
| - bool OpenStream(const nacl::string& url,
|
| - const pp::CompletionCallback& callback,
|
| - StreamCallbackSource* stream_callback_source);
|
| -
|
| - // Finish streaming the response body for a URL request started by either
|
| - // OpenStream(). Runs the given |callback| when streaming is done.
|
| - void BeginStreaming(const pp::CompletionCallback& callback);
|
| -
|
| - // Once the GET request has finished, and the contents of the file
|
| - // represented by |url_| are available, |full_url_| is the full URL including
|
| - // the scheme, host and full path.
|
| - // Returns an empty string before the GET request has finished.
|
| - const nacl::string& full_url() const { return full_url_; }
|
| -
|
| - // GetDownloadProgress() returns the current download progress, which is
|
| - // meaningful after Open() has been called. Progress only refers to the
|
| - // response body and does not include the headers.
|
| - //
|
| - // This data is only available if the |record_progress| true in the
|
| - // Open() call. If progress is being recorded, then |bytes_received|
|
| - // will be set to the number of bytes received thus far,
|
| - // and |total_bytes_to_be_received| will be set to the total number
|
| - // of bytes to be received. The total bytes to be received may be unknown,
|
| - // in which case |total_bytes_to_be_received| will be set to -1.
|
| - bool GetDownloadProgress(int64_t* bytes_received,
|
| - int64_t* total_bytes_to_be_received) const;
|
| -
|
| - int status_code() const { return status_code_; }
|
| - nacl::string GetResponseHeaders() const;
|
| -
|
| - void set_request_headers(const nacl::string& extra_request_headers) {
|
| - extra_request_headers_ = extra_request_headers;
|
| - }
|
| -
|
| - private:
|
| - NACL_DISALLOW_COPY_AND_ASSIGN(FileDownloader);
|
| -
|
| - // For DOWNLOAD_TO_BUFFER_AND_STREAM, the process is very similar:
|
| - // 1) Ask the browser to start streaming |url_| to an internal buffer.
|
| - // 2) Ask the browser to finish streaming to |temp_buffer_| on success.
|
| - // 3) Wait for streaming to finish, passing the data directly to the user.
|
| - // Each step is done asynchronously using callbacks. We create callbacks
|
| - // through a factory to take advantage of ref-counting.
|
| - // The public Open*() functions start step 1), and the public BeginStreaming
|
| - // function proceeds to step 2) and 3).
|
| - bool InitialResponseIsValid();
|
| - void URLLoadStartNotify(int32_t pp_error);
|
| - void URLReadBodyNotify(int32_t pp_error);
|
| -
|
| - Plugin* instance_;
|
| - nacl::string full_url_;
|
| -
|
| - nacl::string extra_request_headers_;
|
| - pp::URLResponseInfo url_response_;
|
| - pp::CompletionCallback file_open_notify_callback_;
|
| - pp::CompletionCallback stream_finish_callback_;
|
| - pp::URLLoader url_loader_;
|
| - pp::CompletionCallbackFactory<FileDownloader> callback_factory_;
|
| - int32_t status_code_;
|
| - DownloadMode mode_;
|
| - static const uint32_t kTempBufferSize = 16384;
|
| - std::vector<char> temp_buffer_;
|
| - StreamCallbackSource* data_stream_callback_source_;
|
| -};
|
| -
|
| -} // namespace plugin
|
| -
|
| -#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_FILE_DOWNLOADER_H_
|
|
|