Class: LZ4::Encoder
- Inherits:
-
Object
- Object
- LZ4::Encoder
- Defined in:
- ext/frameapi.c
Instance Method Summary collapse
- #<<(src) ⇒ Object
- #close ⇒ Object (also: #finish)
- #flush ⇒ Object
- #initialize(outport = "".b, level = 1, blocksize: nil, blocklink: false, checksum: true) ⇒ Object constructor
- #inspect ⇒ Object
- #outport ⇒ Object
- #outport=(outport) ⇒ Object
- #prefs_blocklink ⇒ Object
- #prefs_blocksize ⇒ Object
- #prefs_checksum ⇒ Object
- #prefs_level ⇒ Object
- #write(src) ⇒ self
Constructor Details
#initialize(outport = "".b, level = 1, blocksize: nil, blocklink: false, checksum: true) ⇒ Object
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 |
# File 'ext/frameapi.c', line 197
static VALUE
fenc_init(int argc, VALUE argv[], VALUE enc)
{
struct encoder *p = getencoder(enc);
VALUE outport;
fenc_init_args(argc, argv, &outport, &p->prefs);
LZ4F_errorCode_t status;
status = LZ4F_createCompressionContext(&p->encoder, LZ4F_VERSION);
aux_lz4f_check_error(status);
p->workbuf = rb_str_buf_new(AUX_LZ4F_BLOCK_SIZE_MAX);
size_t s = LZ4F_compressBegin(p->encoder, RSTRING_PTR(p->workbuf), rb_str_capacity(p->workbuf), &p->prefs);
aux_lz4f_check_error(s);
rb_str_set_len(p->workbuf, s);
rb_funcall2(outport, id_op_lshift, 1, &p->workbuf);
p->outport = outport;
return enc;
}
|
Instance Method Details
#<<(src) ⇒ Object
250 251 252 253 254 255 256 |
# File 'ext/frameapi.c', line 250
static VALUE
fenc_push(VALUE enc, VALUE src)
{
struct encoder *p = getencoder(enc);
fenc_update(p, src, NULL);
return enc;
}
|
#close ⇒ Object Also known as: finish
273 274 275 276 277 278 279 280 281 282 283 284 285 286 |
# File 'ext/frameapi.c', line 273
static VALUE
fenc_close(VALUE enc)
{
struct encoder *p = getencoder(enc);
size_t destsize = AUX_LZ4F_BLOCK_SIZE_MAX + AUX_LZ4F_FINISH_SIZE;
aux_str_reserve(p->workbuf, destsize);
char *destp = RSTRING_PTR(p->workbuf);
size_t size = LZ4F_compressEnd(p->encoder, destp, destsize, NULL);
aux_lz4f_check_error(size);
rb_str_set_len(p->workbuf, size);
rb_funcall2(p->outport, id_op_lshift, 1, &p->workbuf);
return enc;
}
|
#flush ⇒ Object
258 259 260 261 262 263 264 265 266 267 268 269 270 271 |
# File 'ext/frameapi.c', line 258
static VALUE
fenc_flush(VALUE enc)
{
struct encoder *p = getencoder(enc);
size_t destsize = AUX_LZ4F_BLOCK_SIZE_MAX + AUX_LZ4F_FINISH_SIZE;
aux_str_reserve(p->workbuf, destsize);
char *destp = RSTRING_PTR(p->workbuf);
size_t size = LZ4F_flush(p->encoder, destp, destsize, NULL);
aux_lz4f_check_error(size);
rb_str_set_len(p->workbuf, size);
rb_funcall2(p->outport, id_op_lshift, 1, &p->workbuf);
return enc;
}
|
#inspect ⇒ Object
330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 |
# File 'ext/frameapi.c', line 330
static VALUE
fenc_inspect(VALUE enc)
{
struct encoder *p = getencoderp(enc);
if (p) {
return rb_sprintf("#<%s:%p outport=#<%s:%p>, level=%d, blocksize=%d, blocklink=%s, checksum=%s>",
rb_obj_classname(enc), (void *)enc,
rb_obj_classname(p->outport), (void *)p->outport,
p->prefs.compressionLevel, fenc_blocksize(p),
aux_frame_blocklink(&p->prefs.frameInfo) ? "true" : "false",
aux_frame_checksum(&p->prefs.frameInfo) ? "true" : "false");
} else {
return rb_sprintf("#<%s:%p **INVALID REFERENCE**>",
rb_obj_classname(enc), (void *)enc);
}
}
|
#outport ⇒ Object
288 289 290 291 292 |
# File 'ext/frameapi.c', line 288
static VALUE
fenc_getoutport(VALUE enc)
{
return getencoder(enc)->outport;
}
|
#outport=(outport) ⇒ Object
294 295 296 297 298 |
# File 'ext/frameapi.c', line 294
static VALUE
fenc_setoutport(VALUE enc, VALUE outport)
{
return getencoder(enc)->outport = outport;
}
|
#prefs_blocklink ⇒ Object
318 319 320 321 322 |
# File 'ext/frameapi.c', line 318
static VALUE
fenc_prefs_blocklink(VALUE enc)
{
return aux_frame_blocklink(&getencoder(enc)->prefs.frameInfo) ? Qtrue : Qfalse;
}
|
#prefs_blocksize ⇒ Object
312 313 314 315 316 |
# File 'ext/frameapi.c', line 312
static VALUE
fenc_prefs_blocksize(VALUE enc)
{
return INT2NUM(fenc_blocksize(getencoder(enc)));
}
|
#prefs_checksum ⇒ Object
324 325 326 327 328 |
# File 'ext/frameapi.c', line 324
static VALUE
fenc_prefs_checksum(VALUE enc)
{
return aux_frame_checksum(&getencoder(enc)->prefs.frameInfo) ? Qtrue : Qfalse;
}
|
#prefs_level ⇒ Object
300 301 302 303 304 |
# File 'ext/frameapi.c', line 300
static VALUE
fenc_prefs_level(VALUE enc)
{
return INT2NUM(aux_frame_level(&getencoder(enc)->prefs));
}
|
#write(src) ⇒ self
240 241 242 243 244 245 246 247 248 |
# File 'ext/frameapi.c', line 240
static VALUE
fenc_write(int argc, VALUE argv[], VALUE enc)
{
struct encoder *p = getencoder(enc);
VALUE src;
rb_scan_args(argc, argv, "1", &src);
fenc_update(p, src, NULL);
return enc;
}
|