| Index: ui/file_manager/zip_archiver/unpacker/cpp/compressor.cc
|
| diff --git a/ui/file_manager/zip_archiver/unpacker/cpp/compressor.cc b/ui/file_manager/zip_archiver/unpacker/cpp/compressor.cc
|
| deleted file mode 100644
|
| index 1d13d78a4a0330752368dcaf3be4cae450f8f326..0000000000000000000000000000000000000000
|
| --- a/ui/file_manager/zip_archiver/unpacker/cpp/compressor.cc
|
| +++ /dev/null
|
| @@ -1,140 +0,0 @@
|
| -// Copyright 2017 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.
|
| -
|
| -#include "compressor.h"
|
| -
|
| -#include <cstring>
|
| -#include <ctime>
|
| -#include <sstream>
|
| -
|
| -#include "request.h"
|
| -#include "compressor_io_javascript_stream.h"
|
| -#include "compressor_archive_libarchive.h"
|
| -
|
| -namespace {
|
| -
|
| -// An internal implementation of JavaScriptCompressorRequestorInterface.
|
| -class JavaScriptCompressorRequestor : public JavaScriptCompressorRequestorInterface {
|
| - public:
|
| - explicit JavaScriptCompressorRequestor(Compressor* compressor) :
|
| - compressor_(compressor) {}
|
| -
|
| - virtual void WriteChunkRequest(int64_t length,
|
| - const pp::VarArrayBuffer& buffer) {
|
| - compressor_->message_sender()->SendWriteChunk(
|
| - compressor_->compressor_id(), buffer, length);
|
| - }
|
| -
|
| - virtual void ReadFileChunkRequest(int64_t length) {
|
| - compressor_->message_sender()->SendReadFileChunk(
|
| - compressor_->compressor_id(), length);
|
| - }
|
| -
|
| - private:
|
| - Compressor* compressor_;
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -Compressor::Compressor(const pp::InstanceHandle& instance_handle,
|
| - int compressor_id,
|
| - JavaScriptMessageSenderInterface* message_sender)
|
| - : compressor_id_(compressor_id),
|
| - message_sender_(message_sender),
|
| - worker_(instance_handle),
|
| - callback_factory_(this) {
|
| - requestor_ = new JavaScriptCompressorRequestor(this);
|
| - compressor_stream_ =
|
| - new CompressorIOJavaScriptStream(requestor_);
|
| - compressor_archive_ =
|
| - new CompressorArchiveLibarchive(compressor_stream_);
|
| -}
|
| -
|
| -Compressor::~Compressor() {
|
| - worker_.Join();
|
| - delete compressor_archive_;
|
| - delete compressor_stream_;
|
| - delete requestor_;
|
| -}
|
| -
|
| -bool Compressor::Init() {
|
| - return worker_.Start();
|
| -}
|
| -
|
| -void Compressor::CreateArchive() {
|
| - compressor_archive_->CreateArchive();
|
| - message_sender_->SendCreateArchiveDone(compressor_id_);
|
| -}
|
| -
|
| -void Compressor::AddToArchive(const pp::VarDictionary& dictionary) {
|
| - worker_.message_loop().PostWork(callback_factory_.NewCallback(
|
| - &Compressor::AddToArchiveCallback, dictionary));
|
| -}
|
| -
|
| -void Compressor::AddToArchiveCallback(int32_t,
|
| - const pp::VarDictionary& dictionary) {
|
| - PP_DCHECK(dictionary.Get(request::key::kPathname).is_string());
|
| - std::string pathname =
|
| - dictionary.Get(request::key::kPathname).AsString();
|
| -
|
| - PP_DCHECK(dictionary.Get(request::key::kFileSize).is_string());
|
| - int64_t file_size =
|
| - request::GetInt64FromString(dictionary, request::key::kFileSize);
|
| - PP_DCHECK(file_size >= 0);
|
| -
|
| - PP_DCHECK(dictionary.Get(request::key::kIsDirectory).is_bool());
|
| - bool is_directory =
|
| - dictionary.Get(request::key::kIsDirectory).AsBool();
|
| -
|
| - PP_DCHECK(dictionary.Get(request::key::kModificationTime).is_string());
|
| - std::string strtime =
|
| - dictionary.Get(request::key::kModificationTime).AsString();
|
| - tm tm;
|
| - strptime(strtime.c_str(), "%m/%d/%Y %T", &tm);
|
| - time_t modification_time = mktime(&tm);
|
| -
|
| - compressor_archive_->AddToArchive(
|
| - pathname, file_size, modification_time, is_directory);
|
| - message_sender_->SendAddToArchiveDone(compressor_id_);
|
| -}
|
| -
|
| -void Compressor::ReadFileChunkDone(const pp::VarDictionary& dictionary) {
|
| - PP_DCHECK(dictionary.Get(request::key::kLength).is_string());
|
| - int64_t read_bytes =
|
| - request::GetInt64FromString(dictionary, request::key::kLength);
|
| -
|
| - PP_DCHECK(dictionary.Get(request::key::kChunkBuffer).is_array_buffer());
|
| - pp::VarArrayBuffer array_buffer(dictionary.Get(request::key::kChunkBuffer));
|
| -
|
| - compressor_stream_->ReadFileChunkDone(read_bytes, &array_buffer);
|
| -}
|
| -
|
| -void Compressor::WriteChunkDone(const pp::VarDictionary& dictionary) {
|
| - PP_DCHECK(dictionary.Get(request::key::kLength).is_string());
|
| - int64_t written_bytes =
|
| - request::GetInt64FromString(dictionary, request::key::kLength);
|
| -
|
| - compressor_stream_->WriteChunkDone(written_bytes);
|
| -}
|
| -
|
| -void Compressor::CloseArchive(const pp::VarDictionary& dictionary) {
|
| - PP_DCHECK(dictionary.Get(request::key::kHasError).is_bool());
|
| - bool has_error =
|
| - dictionary.Get(request::key::kHasError).AsBool();
|
| -
|
| - // If an error has occurred, no more write chunk requests are sent and
|
| - // CloseArchive() can be safely called in the main thread.
|
| - if (has_error) {
|
| - compressor_archive_->CloseArchive(has_error);
|
| - message_sender_->SendCloseArchiveDone(compressor_id_);
|
| - } else {
|
| - worker_.message_loop().PostWork(callback_factory_.NewCallback(
|
| - &Compressor::CloseArchiveCallback, has_error));
|
| - }
|
| -}
|
| -
|
| -void Compressor::CloseArchiveCallback(int32_t, bool has_error) {
|
| - compressor_archive_->CloseArchive(has_error);
|
| - message_sender_->SendCloseArchiveDone(compressor_id_);
|
| -}
|
|
|