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 215 |
# 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; rb_obj_infect(p->outport, enc); return enc; } |
Instance Method Details
#<<(src) ⇒ Object
254 255 256 257 258 259 260 261 262 263 |
# File 'ext/frameapi.c', line 254 static VALUE fenc_push(VALUE enc, VALUE src) { struct encoder *p = getencoder(enc); rb_obj_infect(enc, src); rb_obj_infect(enc, p->workbuf); rb_obj_infect(p->outport, enc); fenc_update(p, src, NULL); return enc; } |
#close ⇒ Object Also known as: finish
280 281 282 283 284 285 286 287 288 289 290 291 292 293 |
# File 'ext/frameapi.c', line 280 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
265 266 267 268 269 270 271 272 273 274 275 276 277 278 |
# File 'ext/frameapi.c', line 265 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
337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 |
# File 'ext/frameapi.c', line 337 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
295 296 297 298 299 |
# File 'ext/frameapi.c', line 295 static VALUE fenc_getoutport(VALUE enc) { return getencoder(enc)->outport; } |
#outport=(outport) ⇒ Object
301 302 303 304 305 |
# File 'ext/frameapi.c', line 301 static VALUE fenc_setoutport(VALUE enc, VALUE outport) { return getencoder(enc)->outport = outport; } |
#prefs_blocklink ⇒ Object
325 326 327 328 329 |
# File 'ext/frameapi.c', line 325 static VALUE fenc_prefs_blocklink(VALUE enc) { return aux_frame_blocklink(&getencoder(enc)->prefs.frameInfo) ? Qtrue : Qfalse; } |
#prefs_blocksize ⇒ Object
319 320 321 322 323 |
# File 'ext/frameapi.c', line 319 static VALUE fenc_prefs_blocksize(VALUE enc) { return INT2NUM(fenc_blocksize(getencoder(enc))); } |
#prefs_checksum ⇒ Object
331 332 333 334 335 |
# File 'ext/frameapi.c', line 331 static VALUE fenc_prefs_checksum(VALUE enc) { return aux_frame_checksum(&getencoder(enc)->prefs.frameInfo) ? Qtrue : Qfalse; } |
#prefs_level ⇒ Object
307 308 309 310 311 |
# File 'ext/frameapi.c', line 307 static VALUE fenc_prefs_level(VALUE enc) { return INT2NUM(aux_frame_level(&getencoder(enc)->prefs)); } |
#write(src) ⇒ self
241 242 243 244 245 246 247 248 249 250 251 252 |
# File 'ext/frameapi.c', line 241 static VALUE fenc_write(int argc, VALUE argv[], VALUE enc) { struct encoder *p = getencoder(enc); VALUE src; rb_scan_args(argc, argv, "1", &src); rb_obj_infect(enc, src); rb_obj_infect(enc, p->workbuf); rb_obj_infect(p->outport, enc); fenc_update(p, src, NULL); return enc; } |