Class: LZMA::Filter::BasicLZMA

Inherits:
LZMA::Filter show all
Defined in:
ext/extlzma2/filter.c,
ext/extlzma2/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)



438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
# File 'ext/extlzma2/filter.c', line 438

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



284
285
286
287
288
289
290
291
292
# File 'ext/extlzma2/filter.c', line 284

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



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

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