Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Unified Diff: ui/file_manager/zip_archiver/unpacker/cpp/volume.h

Issue 2804453002: Move files from zip_archiver/unpacker/ to zip_archiver/. (Closed)
Patch Set: Move files from zip_archiver/unpacker/ to zip_archiver/. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/file_manager/zip_archiver/unpacker/cpp/volume.h
diff --git a/ui/file_manager/zip_archiver/unpacker/cpp/volume.h b/ui/file_manager/zip_archiver/unpacker/cpp/volume.h
deleted file mode 100644
index dc8efb43dae3d3cba117b0b7f82c3b0db247edeb..0000000000000000000000000000000000000000
--- a/ui/file_manager/zip_archiver/unpacker/cpp/volume.h
+++ /dev/null
@@ -1,189 +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_H_
-#define VOLUME_H_
-
-#include <pthread.h>
-
-#include "archive.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/var_array_buffer.h"
-#include "ppapi/cpp/var_dictionary.h"
-#include "ppapi/utility/completion_callback_factory.h"
-#include "ppapi/utility/threading/lock.h"
-#include "ppapi/utility/threading/simple_thread.h"
-
-#include "javascript_requestor_interface.h"
-#include "javascript_message_sender_interface.h"
-#include "volume_archive.h"
-
-// A factory that creates VolumeArchive(s). Useful for testing.
-class VolumeArchiveFactoryInterface {
- public:
- virtual ~VolumeArchiveFactoryInterface() {}
-
- // Creates a new VolumeArchive.
- virtual VolumeArchive* Create(VolumeReader* reader) = 0;
-};
-
-// A factory that creates VolumeReader(s). Useful for testing.
-class VolumeReaderFactoryInterface {
- public:
- virtual ~VolumeReaderFactoryInterface() {}
-
- // Creates a new VolumeReader. Returns NULL if failed.
- // Passes VolumeReader ownership to the implementation of
- // VolumeArchiveInterfaceInterface.
- virtual VolumeReader* Create(int64_t archive_size) = 0;
-};
-
-// Handles all operations like reading metadata and reading files from a single
-// Volume.
-class Volume {
- public:
- Volume(const pp::InstanceHandle& instance_handle /* Used for workers. */,
- const std::string& file_system_id,
- JavaScriptMessageSenderInterface* message_sender);
-
- // Used by tests to create custom VolumeArchive and VolumeReader objects.
- // VolumeArchiveFactory and VolumeReaderFactory should be allocated with new
- // and the ownership will be passed to Volume on constructing it.
- Volume(const pp::InstanceHandle& instance_handle /* Used for workers. */,
- const std::string& file_system_id,
- JavaScriptMessageSenderInterface* message_sender,
- VolumeArchiveFactoryInterface* volume_archive_factory,
- VolumeReaderFactoryInterface* volume_reader_factory);
-
- virtual ~Volume();
-
- // Initializes the volume.
- bool Init();
-
- // Reads archive metadata using libarchive.
- void ReadMetadata(const std::string& request_id,
- const std::string& encoding,
- int64_t archive_size);
-
- // Processes a successful archive chunk read from JavaScript. Read offset
- // represents the offset from where the data contained in array_buffer starts.
- void ReadChunkDone(const std::string& nacl_request_id,
- const pp::VarArrayBuffer& array_buffer,
- int64_t read_offset);
-
- // Processes an invalid archive chunk read from JavaScript.
- void ReadChunkError(const std::string& nacl_request_id);
-
- // Processes a successful passphrase read from JavaScript.
- void ReadPassphraseDone(const std::string& nacl_request_id,
- const std::string& passphrase);
-
- // Processes an error when requesting a passphrase from JavaScript.
- void ReadPassphraseError(const std::string& nacl_request_id);
-
- // Opens a file.
- void OpenFile(const std::string& request_id,
- int64_t index,
- const std::string& encoding,
- int64_t archive_size);
-
- // Closes a file.
- void CloseFile(const std::string& request_id,
- const std::string& open_request_id);
-
- // Reads a file contents from offset to offset + length. dictionary
- // should contain the open_request_id, the offset and the length with
- // the keys as defined in "request" namespace, and they should have
- // valid types. The reason for not passing them directly is that
- // pp::CompletionCallbackFactory can create a callback with a maximum of
- // 3 parameters, not 4 as needed here (including request_id).
- void ReadFile(const std::string& request_id,
- const pp::VarDictionary& dictionary);
-
- JavaScriptMessageSenderInterface* message_sender() { return message_sender_; }
- JavaScriptRequestorInterface* requestor() { return requestor_; }
- std::string file_system_id() { return file_system_id_; }
-
- private:
- // Encapsulates arguments to OpenFileCallback, as NewCallback supports binding
- // up to three arguments, while here we have four.
- struct OpenFileArgs;
-
- // A callback helper for ReadMetadata.
- void ReadMetadataCallback(int32_t result,
- const std::string& request_id,
- const std::string& encoding,
- int64_t archive_size);
-
- // A calback helper for OpenFile.
- void OpenFileCallback(int32_t result,
- const OpenFileArgs& args);
-
- // A callback helper for CloseFile.
- void CloseFileCallback(int32_t result,
- const std::string& request_id,
- const std::string& open_request_id);
-
- // A calback helper for ReadFile.
- void ReadFileCallback(int32_t result,
- const std::string& request_id,
- const pp::VarDictionary& dictionary);
-
- // Creates a new archive object for this volume.
- VolumeArchive* CreateVolumeArchive(const std::string& request_id,
- const std::string& encoding,
- int64_t archive_size);
-
- // Clears job.
- void ClearJob();
-
- // Libarchive wrapper instance per volume, shared across all operations.
- VolumeArchive* volume_archive_;
-
- // The file system id for this volume.
- std::string file_system_id_;
-
- // An object that sends messages to JavaScript.
- JavaScriptMessageSenderInterface* message_sender_;
-
- // A worker for jobs that require blocking operations or a lot of processing
- // time. Those shouldn't be done on the main thread. The jobs submitted to
- // this thread are executed in order, so a new job must wait for the last job
- // to finish.
- // TODO(cmihail): Consider using multiple workers in case of many jobs to
- // improve execution speedup. In case multiple workers are added
- // synchronization between workers might be needed.
- pp::SimpleThread worker_;
-
- // Callback factory used to submit jobs to worker_.
- // See "Detailed Description" Note at:
- // https://developer.chrome.com/native-client/
- // pepper_dev/cpp/classpp_1_1_completion_callback_factory
- //
- // As a minus this would require ugly synchronization between the main thread
- // and the function that is executed on worker_ construction. Current
- // implementation is simimlar to examples in $NACL_SDK_ROOT and according to
- // https://chromiumcodereview.appspot.com/lint_patch/issue10790078_24001_25013
- // it should be safe (see TODO(dmichael)). That's because both worker_ and
- // callback_factory_ will be alive during the life of Volume and deleting a
- // Volume is permitted only if there are no requests in progress on
- // JavaScript side (this means no Callbacks in progress).
- pp::CompletionCallbackFactory<Volume> callback_factory_;
-
- // Request ID of the current reader instance.
- std::string reader_request_id_;
-
- pp::Lock job_lock_; // A lock for guarding members related to jobs.
-
- // A requestor for making calls to JavaScript.
- JavaScriptRequestorInterface* requestor_;
-
- // A factory for creating VolumeArchive.
- VolumeArchiveFactoryInterface* volume_archive_factory_;
-
- // A factory for creating VolumeReader.
- VolumeReaderFactoryInterface* volume_reader_factory_;
-};
-
-#endif /// VOLUME_H_
« no previous file with comments | « ui/file_manager/zip_archiver/unpacker/cpp/request.cc ('k') | ui/file_manager/zip_archiver/unpacker/cpp/volume.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698