MCPcopy Create free account
hub / github.com/KDE/labplot / compress

Method compress

src/3rdparty/vector_blf/src/Vector/BLF/LogContainer.cpp:94–123  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

92}
93
94void LogContainer::compress(const uint16_t compressionMethod, const int compressionLevel) {
95 this->compressionMethod = compressionMethod;
96
97 switch (compressionMethod) {
98 case 0: /* no compression */
99 compressedFile = uncompressedFile;
100 compressedFileSize = uncompressedFileSize;
101 break;
102
103 case 2: { /* zlib compress */
104 /* deflate/compress data */
105 uLong compressedBufferSize = compressBound(uncompressedFileSize);
106 compressedFile.resize(compressedBufferSize); // extend
107 int retVal = ::compress2(
108 reinterpret_cast<Byte *>(compressedFile.data()),
109 &compressedBufferSize,
110 reinterpret_cast<Byte *>(uncompressedFile.data()),
111 uncompressedFileSize,
112 compressionLevel);
113 if (retVal != Z_OK)
114 throw Exception("File::uncompressedFile2CompressedFile(): compress2 error");
115 compressedFileSize = static_cast<uint32_t>(compressedBufferSize);
116 compressedFile.resize(compressedFileSize); // shrink
117 }
118 break;
119
120 default:
121 throw Exception("LogContainer::compress(): unknown compression method");
122 }
123}
124
125}
126}

Callers 1

Calls 2

resizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected