| 135 | } |
| 136 | |
| 137 | Result<EndResult> End(int64_t output_len, uint8_t* output) override { |
| 138 | ZSTD_outBuffer out_buf; |
| 139 | |
| 140 | out_buf.dst = output; |
| 141 | out_buf.size = static_cast<size_t>(output_len); |
| 142 | out_buf.pos = 0; |
| 143 | |
| 144 | size_t ret; |
| 145 | ret = ZSTD_endStream(stream_.get(), &out_buf); |
| 146 | if (ZSTD_isError(ret)) { |
| 147 | return ZSTDError(ret, "ZSTD end failed: "); |
| 148 | } |
| 149 | return EndResult{static_cast<int64_t>(out_buf.pos), ret > 0}; |
| 150 | } |
| 151 | |
| 152 | private: |
| 153 | CCtxPtr stream_; |