Index: ui/file_manager/zip_archiver/unpacker/cpp/volume_reader_javascript_stream.h |
diff --git a/ui/file_manager/zip_archiver/unpacker/cpp/volume_reader_javascript_stream.h b/ui/file_manager/zip_archiver/unpacker/cpp/volume_reader_javascript_stream.h |
deleted file mode 100644 |
index 54b68953debc16aaf6ede8c770d95eceadae2ea4..0000000000000000000000000000000000000000 |
--- a/ui/file_manager/zip_archiver/unpacker/cpp/volume_reader_javascript_stream.h |
+++ /dev/null |
@@ -1,122 +0,0 @@ |
-// Copyright 2014 The Chromium OS 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 VOLUME_READER_JAVSCRIPT_STREAM_H_ |
-#define VOLUME_READER_JAVSCRIPT_STREAM_H_ |
- |
-#include <pthread.h> |
- |
-#include "archive.h" |
-#include "ppapi/cpp/var_array_buffer.h" |
- |
-#include "javascript_requestor_interface.h" |
-#include "volume_reader.h" |
- |
-// A VolumeReader that reads the content of the volume's archive from |
-// JavaScript. All methods including the constructor and destructor should be |
-// called from the same thread with the exception of SetBufferAndSignal and |
-// ReadErrorSignal which MUST be called from another thread. |
-class VolumeReaderJavaScriptStream : public VolumeReader { |
- public: |
- // archive_size is used by Seek method in order to seek from volume's |
- // archive end. |
- // requestor is used to request more data from JavaScript. |
- VolumeReaderJavaScriptStream(int64_t archive_size, |
- JavaScriptRequestorInterface* requestor); |
- |
- virtual ~VolumeReaderJavaScriptStream(); |
- |
- // Sets the internal array buffer used for reads and signal the blocked |
- // VolumeReaderJavaScriptStream::Read to continue execution. Must be done in |
- // a different thread from VolumeReaderJavaScriptStream::Read method. |
- // read_offset represents the offset from which VolumeReaderJavaScriptStream |
- // requested a chunk read from JavaScriptRequestorInterface. May block for a |
- // few cycles in order to synchronize with VolumeReaderJavaScriptStream::Read. |
- void SetBufferAndSignal(const pp::VarArrayBuffer& array_buffer, |
- int64_t read_offset); |
- |
- // Signal the blocked VolumeReaderJavaScriptStream::Read to continue execution |
- // and return an error code. Must be called from a different thread than |
- // VolumeReaderJavaScriptStream::Read. May block for a few cycles in order |
- // to synchronize with VolumeReaderJavaScriptStream::Read. |
- void ReadErrorSignal(); |
- |
- // Sets the passphrase and signals the blocked Passphrase() to continue |
- // execution. Must be done in a different thread from Passphrase() method. |
- // Reporting an error is not supported. Returning an empty string indicates |
- // an error. |
- void SetPassphraseAndSignal(const std::string& passphrase); |
- |
- // Signal the blocked VolumeReaderJavaScriptStream::Passphrase to continue |
- // execution and return an error code. Must be called from a different thread |
- // than VolumeReaderJavaScriptStream::Passphrase. May block for a few cycles |
- // in order to synchronize with VolumeReaderJavaScriptStream::Passphrase. |
- void PassphraseErrorSignal(); |
- |
- // See volume_reader.h for description. This method blocks on |
- // available_data_cond_. SetBufferAndSignal should unblock it from another |
- // thread. |
- virtual int64_t Read(int64_t bytes_to_read, const void** destination_buffer); |
- |
- // See volume_reader.h for description. |
- virtual int64_t Skip(int64_t bytes_to_skip); |
- |
- // See volume_reader.h for description. |
- virtual int64_t Seek(int64_t offset, int whence); |
- |
- // Sets the request Id to be used by the reader. |
- void SetRequestId(const std::string& request_id); |
- |
- // See volume_reader.h for description. The method blocks on |
- // available_passphrase_cond_. SetPassphraseAndSignal should unblock it from |
- // another thread. |
- virtual const char* Passphrase(); |
- |
- int64_t offset() const { return offset_; } |
- |
- private: |
- // Request a chunk of length number of bytes from JavaScript starting from |
- // offset_ member. Should be run within a lock. |
- void RequestChunk(int64_t length); |
- |
- std::string request_id_; // The request id for which the reader was |
- // created. |
- const int64_t archive_size_; // The archive size. |
- |
- // A requestor that makes calls to JavaScript to obtain file chunks. |
- JavaScriptRequestorInterface* requestor_; |
- |
- bool available_data_; // Indicates whether any data is available. |
- bool read_error_; // Marks an error in reading from JavaScript. |
- |
- std::string available_passphrase_; // Stores a passphrase from JavaScript. |
- bool passphrase_error_; // Marks an error in getting the passphrase. |
- |
- // Must use POSIX mutexes instead of pp::Lock because there is no pp::Cond. |
- // pp::Lock uses POSIX mutexes anyway on Linux, but pp::Lock can also pe used |
- // on other operating systems as Windows. For now this is not an issue as this |
- // extension is used only on Chromebooks. The shared_state_lock_ is used to |
- // protect members which are accessed by more than one thread. |
- pthread_mutex_t shared_state_lock_; |
- pthread_cond_t available_data_cond_; |
- pthread_cond_t available_passphrase_cond_; |
- |
- int64_t offset_; // The offset from where read should be done. |
- int64_t last_read_chunk_offset_; // The offset reached after last call to |
- // VolumeReaderJavaScriptStream::Read. |
- |
- // Two buffers used to store the actual data used by libarchive and the data |
- // read ahead. |
- pp::VarArrayBuffer first_array_buffer_; |
- pp::VarArrayBuffer second_array_buffer_; |
- |
- // A pointer to first_arrray_buffer_ or second_array_buffer_. This is used in |
- // order to avoid an extra copy from the second buffer to the first buffer |
- // when data is available for VolumeReaderJavaScriptStream::Read method. |
- // It points to the array buffer used for reading ahead when data is received |
- // from JavaScript at VolumeReaderJavaScriptStream::SetBufferAndSignal. |
- pp::VarArrayBuffer* read_ahead_array_buffer_ptr_; |
-}; |
- |
-#endif // VOLUME_READER_JAVSCRIPT_STREAM_H_ |