Module: LZ4Native::LZ4HC
- Defined in:
- ext/lz4_native/lz4_native.c
Constant Summary collapse
- CLEVEL_MIN =
INT2NUM(LZ4HC_CLEVEL_MIN)
- CLEVEL_DEFAULT =
INT2NUM(LZ4HC_CLEVEL_DEFAULT)
- CLEVEL_MAX =
INT2NUM(LZ4HC_CLEVEL_MAX)
Class Method Summary collapse
-
.compress(source, compression_level = 9) ⇒ Object
Compresses using high-compression mode.
-
.sizeof_state ⇒ Integer
Returns the size needed for HC compression state.
Class Method Details
.compress(source, compression_level = 9) ⇒ Object
Compresses using high-compression mode. compression_level: 1-12 (default 9), higher = better compression, slower.
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 |
# File 'ext/lz4_native/lz4_native.c', line 181
static VALUE
lz4hc_compress_wrapper(int argc, VALUE *argv, VALUE self)
{
VALUE source, level;
rb_scan_args(argc, argv, "11", &source, &level);
Check_Type(source, T_STRING);
int compression_level = NIL_P(level) ? LZ4HC_CLEVEL_DEFAULT : NUM2INT(level);
if (compression_level < LZ4HC_CLEVEL_MIN) {
compression_level = LZ4HC_CLEVEL_MIN;
} else if (compression_level > LZ4HC_CLEVEL_MAX) {
compression_level = LZ4HC_CLEVEL_MAX;
}
const char* src = RSTRING_PTR(source);
int src_size = (int)RSTRING_LEN(source);
int max_dst_size = LZ4_compressBound(src_size);
VALUE result = rb_str_buf_new(max_dst_size);
char* dst = RSTRING_PTR(result);
int compressed_size = LZ4_compress_HC(src, dst, src_size, max_dst_size, compression_level);
if (compressed_size <= 0) {
rb_raise(eLZ4CompressionError, "HC compression failed");
}
rb_str_set_len(result, compressed_size);
return result;
}
|
.sizeof_state ⇒ Integer
Returns the size needed for HC compression state.
219 220 221 222 223 |
# File 'ext/lz4_native/lz4_native.c', line 219
static VALUE
lz4hc_sizeof_state_wrapper(VALUE self)
{
return INT2NUM(LZ4_sizeofStateHC());
}
|