Takes message data, compresses it, and adds an OP_COMPRESSED header.
(
operation: int, data: bytes, ctx: Union[SnappyContext, ZlibContext, ZstdContext]
)
| 292 | |
| 293 | |
| 294 | def _compress( |
| 295 | operation: int, data: bytes, ctx: Union[SnappyContext, ZlibContext, ZstdContext] |
| 296 | ) -> tuple[int, bytes]: |
| 297 | """Takes message data, compresses it, and adds an OP_COMPRESSED header.""" |
| 298 | compressed = ctx.compress(data) |
| 299 | request_id = _randint() |
| 300 | |
| 301 | header = _pack_compression_header( |
| 302 | _COMPRESSION_HEADER_SIZE + len(compressed), # Total message length |
| 303 | request_id, # Request id |
| 304 | 0, # responseTo |
| 305 | 2012, # operation id |
| 306 | operation, # original operation id |
| 307 | len(data), # uncompressed message length |
| 308 | ctx.compressor_id, |
| 309 | ) # compressor id |
| 310 | return request_id, header + compressed |
| 311 | |
| 312 | |
| 313 | _pack_header = struct.Struct("<iiii").pack |
no test coverage detected