MCPcopy Create free account
hub / github.com/LadybugDB/ladybug / initialize

Method initialize

src/common/file_system/gzip_file_system.cpp:57–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

55}
56
57void MiniZStreamWrapper::initialize(CompressedFileInfo& fileInfo) {
58 close();
59 this->file = &fileInfo;
60 mzStreamPtr = std::make_unique<miniz::mz_stream>();
61 memset(mzStreamPtr.get(), 0, sizeof(miniz::mz_stream));
62 uint8_t gzipHdr[GZipFileSystem::GZIP_HEADER_MINSIZE];
63
64 idx_t dataStart = GZipFileSystem::GZIP_HEADER_MINSIZE;
65 auto numBytesRead =
66 fileInfo.childFileInfo->readFile(gzipHdr, GZipFileSystem::GZIP_HEADER_MINSIZE);
67 verifyGZIPHeader(gzipHdr, numBytesRead);
68 if (gzipHdr[3] & GZipFileSystem::GZIP_FLAG_EXTRA) {
69 uint8_t gzipXLen[2];
70 fileInfo.childFileInfo->seek(dataStart, SEEK_SET);
71 fileInfo.childFileInfo->readFile(gzipXLen, 2);
72 auto xlen = (uint8_t)gzipXLen[0] | (uint8_t)gzipXLen[1] << 8;
73 dataStart += xlen + 2;
74 }
75 if (gzipHdr[3] & GZipFileSystem::GZIP_FLAG_NAME) {
76 fileInfo.childFileInfo->seek(dataStart, SEEK_SET);
77 dataStart += consumeStr(*fileInfo.childFileInfo);
78 }
79 fileInfo.childFileInfo->seek(dataStart, SEEK_SET);
80 auto ret = miniz::mz_inflateInit2(mzStreamPtr.get(), -MZ_DEFAULT_WINDOW_BITS);
81 // LCOV_EXCL_START
82 if (ret != miniz::MZ_OK) {
83 throw InternalException("Failed to initialize miniz");
84 }
85 // LCOV_EXCL_STOP
86}
87
88bool MiniZStreamWrapper::read(StreamData& sd) {
89 if (sd.refresh) {

Callers

nothing calls this directly

Calls 5

verifyGZIPHeaderFunction · 0.85
consumeStrFunction · 0.85
getMethod · 0.45
readFileMethod · 0.45
seekMethod · 0.45

Tested by

no test coverage detected