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;
}