Class: LZMA::Filter::BasicLZMA

Inherits:
LZMA::Filter show all
Defined in:
ext/filter.c,
ext/filter.c

Overview

LZMA::Filter::LZMA1 と LZMA::Filter::LZMA2 の基本となるクラスです。

allocator を持たないため、このクラス自身はインスタンスを作成することが出来ません。

Direct Known Subclasses

LZMA1, LZMA2

Instance Method Summary collapse

Methods inherited from LZMA::Filter

delta, lzma1, lzma2

Constructor Details

#initialize(preset = LZMA::PRESET_DEFAULT, opts = {}) ⇒ Object

LZMA フィルタ設定オブジェクトを初期化します。

この段階で各値の確認を行うことはせず、*encoderに渡すときに初めて確認されます。

preset = LZMA::PRESET_DEFAULT

プリセット値 (≒圧縮レベル) を 0-9 の範囲で指定し、任意で LZMA::PRESET_EXTREME を論理和で組み合わせることが出来ます。

opts dictsize

辞書の大きさをバイト値で指定します。既定値は preset によって変化します。

opts predict: nil

定義済み辞書を指定します。既定値は nil です。

opts lc: nil

既定値は preset によって変化します。

opts lp: nil

既定値は preset によって変化します。

opts pb: nil

既定値は preset によって変化します。

opts mode: nil

既定値は preset によって変化します。

opts nice: nil

既定値は preset によって変化します。

opts mf: nil

既定値は preset によって変化します。

opts depth: nil

既定値は preset によって変化します。

RETURN

フィルタオブジェクト

EXCEPTIONS

(NO DOCUMENT)



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
# File 'ext/filter.c', line 426

static VALUE
ext_lzma_init(int argc, VALUE argv[], VALUE self)
{
    VALUE preset = Qnil;
    VALUE opts = Qnil;
    rb_scan_args(argc, argv, "01:", &preset, &opts);
    lzma_filter *filter = extlzma_getfilter(self);
    if (NIL_P(opts)) {
        filter->options = setup_lzma_preset(getpreset(preset));
    } else {
        filter->options = setup_lzma(self, getpreset(preset),
                rb_hash_lookup(opts, ID2SYM(extlzma_id_dictsize)),
                rb_hash_lookup(opts, ID2SYM(extlzma_id_predict)),
                rb_hash_lookup(opts, ID2SYM(extlzma_id_lc)),
                rb_hash_lookup(opts, ID2SYM(extlzma_id_lp)),
                rb_hash_lookup(opts, ID2SYM(extlzma_id_pb)),
                rb_hash_lookup(opts, ID2SYM(extlzma_id_mode)),
                rb_hash_lookup(opts, ID2SYM(extlzma_id_nice)),
                rb_hash_lookup(opts, ID2SYM(extlzma_id_mf)),
                rb_hash_lookup(opts, ID2SYM(extlzma_id_depth)));
    }
    return self;
}

Instance Method Details

#depthObject

call-seq: depth -> integer

depth 値を取得します。

#depth=Object

call-seq: depth=(value) -> self

depth 値を設定します。

#dictsizeObject

call-seq: dictsize -> integer

辞書の大きさをバイト値として取得します。

#dictsize=Object

call-seq: dictsize=(size) -> self

辞書の大きさをバイト値として設定します。

#lcObject

call-seq: lc -> integer

lc 値を取得します。

#lc=Object

call-seq: lc=(value) -> self

lc 値を設定します。

#lpObject

call-seq: lp -> integer

lp 値を取得します。

#lp=Object

call-seq: lp=(value) -> self

lp 値を設定します。

#mfObject

call-seq: mf -> integer

mf 値を取得します。

#mf=Object

call-seq: mf=(value) -> self

mf 値を設定します。

#modeObject

call-seq: mode -> integer

mode 値を取得します。

#mode=Object

call-seq: mode=(value) -> self

mode 値を設定します。

#niceObject

call-seq: nice -> integer

nice 値を取得します。

#nice=Object

call-seq: nice=(value) -> self

nice 値を設定します。

#pbObject

call-seq: pb -> integer

pb 値を取得します。

#pb=Object

call-seq: pb=(value) -> self

pb 値を設定します。

#predictObject



278
279
280
281
282
283
284
# File 'ext/filter.c', line 278

static VALUE
ext_get_predict(VALUE self)
{
    VALUE predict = rb_attr_get(self, ivar_id_predict);
    if (!NIL_P(predict)) { predict = rb_str_new_shared(predict); }
    return predict;
}

#predict=(predict) ⇒ Object



271
272
273
274
275
276
# File 'ext/filter.c', line 271

static VALUE
ext_set_predict(VALUE self, VALUE predict)
{
    aux_set_predict_0((lzma_options_lzma *)extlzma_getfilter(self)->options, predict, self);
    return self;
}