Lines Matching defs:zipEntry
225 // Get all file zipEntry in this file
354 bool ZipFile::CheckDataDesc(const ZipEntry &zipEntry, const LocalHeader &localHeader) const
362 auto descPos = zipEntry.localHeaderOffset + GetLocalHeaderSize(localHeader.nameSize, localHeader.extraSize);
363 descPos += fileStartPos_ + zipEntry.compressedSize;
382 if ((zipEntry.crc != crcLocal) || (zipEntry.compressedSize != compressedLocal) ||
383 (zipEntry.uncompressedSize != uncompressedLocal)) {
390 bool ZipFile::CheckCoherencyLocalHeader(const ZipEntry &zipEntry, uint16_t &extraSize) const
393 if ((zipEntry.compressionMethod != Z_DEFLATED) && (zipEntry.compressionMethod != 0)) {
397 auto nameSize = zipEntry.fileName.length();
398 auto startPos = fileStartPos_ + zipEntry.localHeaderOffset;
410 (zipEntry.compressionMethod != localHeader.compressionMethod)) {
418 if (zipEntry.fileName != fileName) {
422 if (!CheckDataDesc(zipEntry, localHeader)) {
430 size_t ZipFile::GetEntryStart(const ZipEntry &zipEntry, const uint16_t extraSize) const
432 ZipPos startOffset = zipEntry.localHeaderOffset;
434 startOffset += GetLocalHeaderSize(zipEntry.fileName.length(), extraSize);
440 bool ZipFile::UnzipWithStore(const ZipEntry &zipEntry, const uint16_t extraSize, std::ostream &dest) const
442 auto startPos = GetEntryStart(zipEntry, extraSize);
443 uint32_t remainSize = zipEntry.compressedSize;
501 bool ZipFile::UnzipWithInflated(const ZipEntry &zipEntry, const uint16_t extraSize, std::ostream &dest) const
508 auto startPos = GetEntryStart(zipEntry, extraSize);
515 uint32_t remainCompressedSize = zipEntry.compressedSize;
556 ZipPos ZipFile::GetEntryDataOffset(const ZipEntry &zipEntry, const uint16_t extraSize) const
559 ZipPos offset = zipEntry.localHeaderOffset;
561 offset += GetLocalHeaderSize(zipEntry.fileName.length(), extraSize);
569 ZipEntry zipEntry;
570 if (!GetEntry(file, zipEntry)) {
574 return GetDataOffsetRelative(zipEntry, offset, length);
577 bool ZipFile::GetDataOffsetRelative(const ZipEntry &zipEntry, ZipPos &offset, uint32_t &length) const
580 if (!CheckCoherencyLocalHeader(zipEntry, extraSize)) {
584 offset = GetEntryDataOffset(zipEntry, extraSize);
585 length = zipEntry.compressedSize;
591 ZipEntry zipEntry;
592 if (!GetEntry(file, zipEntry)) {
597 if (!CheckCoherencyLocalHeader(zipEntry, extraSize)) {
602 if (zipEntry.compressionMethod == 0) {
603 ret = UnzipWithStore(zipEntry, extraSize, dest);
605 ret = UnzipWithInflated(zipEntry, extraSize, dest);
636 ZipEntry zipEntry;
637 if (!GetEntry(fileName, zipEntry)) {
643 if (!GetDataOffsetRelative(zipEntry, offset, length)) {
646 bool compress = zipEntry.compressionMethod > 0;
666 bool ZipFile::UnzipWithInflatedFromMMap(const ZipEntry &zipEntry, [[maybe_unused]] const uint16_t extraSize,
679 uint32_t remainCompressedSize = zipEntry.compressedSize;
683 len = zipEntry.uncompressedSize;
739 ZipEntry zipEntry;
740 if (!GetEntry(fileName, zipEntry)) {
744 if (!CheckCoherencyLocalHeader(zipEntry, extraSize)) {
748 ZipPos offset = GetEntryDataOffset(zipEntry, extraSize);
749 uint32_t length = zipEntry.compressedSize;
756 if (zipEntry.compressionMethod > 0) {
757 return UnzipWithInflatedFromMMap(zipEntry, extraSize, dataTmp.get(), dataPtr, len);