MCPcopy Create free account
hub / github.com/apache/arrow / Decompress

Method Decompress

cpp/src/arrow/util/compression_zstd.cc:55–76  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53 explicit ZSTDDecompressor(DCtxPtr stream) : stream_(std::move(stream)) {}
54
55 Result<DecompressResult> Decompress(int64_t input_len, const uint8_t* input,
56 int64_t output_len, uint8_t* output) override {
57 ZSTD_inBuffer in_buf;
58 ZSTD_outBuffer out_buf;
59
60 in_buf.src = input;
61 in_buf.size = static_cast<size_t>(input_len);
62 in_buf.pos = 0;
63 out_buf.dst = output;
64 out_buf.size = static_cast<size_t>(output_len);
65 out_buf.pos = 0;
66
67 size_t ret;
68 ret = ZSTD_decompressStream(stream_.get(), &out_buf, &in_buf);
69 if (ZSTD_isError(ret)) {
70 return ZSTDError(ret, "ZSTD decompress failed: ");
71 }
72 finished_ = (ret == 0);
73 return DecompressResult{static_cast<int64_t>(in_buf.pos),
74 static_cast<int64_t>(out_buf.pos),
75 in_buf.pos == 0 && out_buf.pos == 0};
76 }
77
78 Status Reset() override {
79 finished_ = false;

Callers

nothing calls this directly

Calls 2

ZSTDErrorFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected