Expose whether a file was compressed before being loaded in memory.
This is useful when we want to write an APK and keep the same compression parameters as the original APK. Test: Unit tests pass. Change-Id: I3afcae1c8727e429b08c9ac7359cf0789ff4abfc
This commit is contained in:
@@ -63,6 +63,11 @@ class IFile {
|
||||
|
||||
IFile* CreateFileSegment(size_t offset, size_t len);
|
||||
|
||||
/** Returns whether the file was compressed before it was stored in memory. */
|
||||
virtual bool WasCompressed() {
|
||||
return false;
|
||||
}
|
||||
|
||||
private:
|
||||
// Any segments created from this IFile need to be owned by this IFile, so
|
||||
// keep them
|
||||
|
||||
@@ -59,6 +59,10 @@ std::unique_ptr<IData> ZipFile::OpenAsData() {
|
||||
|
||||
const Source& ZipFile::GetSource() const { return source_; }
|
||||
|
||||
bool ZipFile::WasCompressed() {
|
||||
return zip_entry_.method != kCompressStored;
|
||||
}
|
||||
|
||||
ZipFileCollectionIterator::ZipFileCollectionIterator(
|
||||
ZipFileCollection* collection)
|
||||
: current_(collection->files_.begin()), end_(collection->files_.end()) {}
|
||||
|
||||
@@ -40,6 +40,7 @@ class ZipFile : public IFile {
|
||||
|
||||
std::unique_ptr<IData> OpenAsData() override;
|
||||
const Source& GetSource() const override;
|
||||
bool WasCompressed() override;
|
||||
|
||||
private:
|
||||
ZipArchiveHandle zip_handle_;
|
||||
|
||||
Reference in New Issue
Block a user