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

Function RunCompressedInputStream

cpp/src/arrow/io/compressed_test.cc:83–107  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

81}
82
83Status RunCompressedInputStream(Codec* codec, std::shared_ptr<Buffer> compressed,
84 int64_t* stream_pos, std::vector<uint8_t>* out) {
85 // Create compressed input stream
86 auto buffer_reader = std::make_shared<BufferReader>(compressed);
87 ARROW_ASSIGN_OR_RAISE(auto stream, CompressedInputStream::Make(codec, buffer_reader));
88
89 std::vector<uint8_t> decompressed;
90 int64_t decompressed_size = 0;
91 const int64_t chunk_size = 1111;
92 while (true) {
93 ARROW_ASSIGN_OR_RAISE(auto buf, stream->Read(chunk_size));
94 if (buf->size() == 0) {
95 // EOF
96 break;
97 }
98 decompressed.resize(decompressed_size + buf->size());
99 memcpy(decompressed.data() + decompressed_size, buf->data(), buf->size());
100 decompressed_size += buf->size();
101 }
102 if (stream_pos != nullptr) {
103 RETURN_NOT_OK(stream->Tell().Value(stream_pos));
104 }
105 *out = std::move(decompressed);
106 return Status::OK();
107}
108
109Status RunCompressedInputStream(Codec* codec, std::shared_ptr<Buffer> compressed,
110 std::vector<uint8_t>* out) {

Callers 2

TEST_PFunction · 0.85

Calls 6

resizeMethod · 0.80
OKFunction · 0.50
sizeMethod · 0.45
dataMethod · 0.45
ValueMethod · 0.45
TellMethod · 0.45

Tested by

no test coverage detected