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

Unified Diff: ui/file_manager/zip_archiver/unpacker/cpp/volume_archive_libarchive.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_archive_libarchive.h
diff --git a/ui/file_manager/zip_archiver/unpacker/cpp/volume_archive_libarchive.h b/ui/file_manager/zip_archiver/unpacker/cpp/volume_archive_libarchive.h
deleted file mode 100644
index fde019aa390a72adca8aec3882bf99d46fc1f577..0000000000000000000000000000000000000000
--- a/ui/file_manager/zip_archiver/unpacker/cpp/volume_archive_libarchive.h
+++ /dev/null
@@ -1,137 +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_ARCHIVE_LIBARCHIVE_H_
-#define VOLUME_ARCHIVE_LIBARCHIVE_H_
-
-#include <string>
-
-#include "archive.h"
-
-#include "volume_archive.h"
-
-// A namespace with constants used by VolumeArchiveLibarchive.
-namespace volume_archive_constants {
-
-const char kArchiveReadNewError[] = "Could not allocate archive.";
-const char kFileNotFound[] = "File not found for read data request.";
-const char kVolumeReaderError[] = "VolumeReader failed to retrieve data.";
-const char kArchiveSupportErrorPrefix[] = "Error at support rar/zip format: ";
-const char kArchiveOpenErrorPrefix[] = "Error at open archive: ";
-const char kArchiveNextHeaderErrorPrefix[] =
- "Error at reading next header for metadata: ";
-const char kArchiveReadDataErrorPrefix[] = "Error at reading data: ";
-const char kArchiveReadFreeErrorPrefix[] = "Error at archive free: ";
-
-// The size of the buffer used to skip unnecessary data.
-// Should be positive and less than size_t maximum.
-const int64_t kDummyBufferSize = 512 * 1024; // 512 KB
-
-// The size of the buffer used by ReadInProgress to decompress data.
-// Should be positive and less than size_t maximum.
-const int64_t kDecompressBufferSize = 512 * 1024; // 512 KB.
-
-// The maximum data chunk size for VolumeReader::Read requests.
-// Should be positive.
-const int64_t kMaximumDataChunkSize = 512 * 1024; // 512 KB.
-
-// The minimum data chunk size for VolumeReader::Read requests.
-// Should be positive.
-const int64_t kMinimumDataChunkSize = 32 * 1024; // 16 KB.
-
-} // namespace volume_archive_constants
-
-// Defines an implementation of VolumeArchive that wraps all libarchive
-// operations.
-class VolumeArchiveLibarchive : public VolumeArchive {
- public:
- explicit VolumeArchiveLibarchive(VolumeReader* reader);
-
- virtual ~VolumeArchiveLibarchive();
-
- // See volume_archive_interface.h.
- virtual bool Init(const std::string& encoding);
-
- // See volume_archive_interface.h.
- virtual Result GetNextHeader();
- virtual Result GetNextHeader(const char** path_name,
- int64_t* size,
- bool* is_directory,
- time_t* modification_time);
-
- // See volume_archive_interface.h.
- virtual bool SeekHeader(int64_t index);
-
- // See volume_archive_interface.h.
- virtual int64_t ReadData(int64_t offset,
- int64_t length,
- const char** buffer);
-
- // See volume_archive_interface.h.
- virtual void MaybeDecompressAhead();
-
- // See volume_archive_interface.h.
- virtual bool Cleanup();
-
- int64_t reader_data_size() const { return reader_data_size_; }
-
- private:
- // Decompress length bytes of data starting from offset.
- void DecompressData(int64_t offset, int64_t length);
-
- // The size of the requested data from VolumeReader.
- int64_t reader_data_size_;
-
- // The libarchive correspondent archive object.
- archive* archive_;
-
- // The last reached entry with VolumeArchiveLibarchive::GetNextHeader.
- archive_entry* current_archive_entry_;
-
- // The data offset, which will be offset + length after last read
- // operation, where offset and length are method parameters for
- // VolumeArchiveLibarchive::ReadData. Data offset is used to improve
- // performance for consecutive calls to VolumeArchiveLibarchive::ReadData.
- //
- // Intead of starting the read from the beginning for every
- // VolumeArchiveLibarchive::ReadData, the next call will start
- // from last_read_data_offset_ in case the offset parameter of
- // VolumeArchiveLibarchive::ReadData has the same value as
- // last_read_data_offset_. This avoids decompressing again the bytes at
- // the begninning of the file, which is the average case scenario.
- // But in case the offset parameter is different than last_read_data_offset_,
- // then dummy_buffer_ will be used to ignore unused bytes.
- int64_t last_read_data_offset_;
-
- // The length of the last VolumeArchiveLibarchive::ReadData. Used for
- // decompress ahead.
- int64_t last_read_data_length_;
-
- // Dummy buffer for unused data read using VolumeArchiveLibarchive::ReadData.
- // Sometimes VolumeArchiveLibarchive::ReadData can require reading from
- // offsets different from last_read_data_offset_. In this case some bytes
- // must be skipped. Because seeking is not possible inside compressed files,
- // the bytes will be discarded using this buffer.
- char dummy_buffer_[volume_archive_constants::kDummyBufferSize];
-
- // The address where the decompressed data starting from
- // decompressed_offset_ is stored. It should point to a valid location
- // inside decompressed_data_buffer_. Necesssary in order to NOT throw
- // away unused decompressed bytes as throwing them away would mean in some
- // situations restarting decompressing the file from the beginning.
- char* decompressed_data_;
-
- // The actual buffer that contains the decompressed data.
- char decompressed_data_buffer_
- [volume_archive_constants::kDecompressBufferSize];
-
- // The size of valid data starting from decompressed_data_ that is stored
- // inside decompressed_data_buffer_.
- int64_t decompressed_data_size_;
-
- // True if VolumeArchiveLibarchive::DecompressData failed.
- bool decompressed_error_;
-};
-
-#endif // VOLUME_ARCHIVE_LIBARCHIVE_H_

Powered by Google App Engine
This is Rietveld 408576698