Class: LibLZMA::Stream::Encoder

Inherits:
LibLZMA::Stream show all
Defined in:
ext/liblzma.c

Instance Method Summary collapse

Methods inherited from LibLZMA::Stream

auto_decoder, decoder, encoder, #finish, #flush, raw_decoder, raw_encoder, #update

Constructor Details

#LZMA::Stream::Encoder.new(filter1[ , filter2 [ , filter3 [ , filter4 ] ] ], check: CHECK_CRC64) ⇒ Object

圧縮器を生成します。圧縮されたデータストリームは xz ファイルフォーマットです。

filter1, filter2, filter3, filter4

LZMA::Filter インスタンス。最低一つを必要とします。

check

チェックメソッド。CHECK_NONE CHECK_CRC32 CHECK_CRC64 CHECK_SHA256 のいずれかの定数を与えます。

RETURN

生成された圧縮器

EXCEPTIONS

(NO DOCUMENTS)



936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
# File 'ext/liblzma.c', line 936

static VALUE
encoder_init(int argc, VALUE argv[], VALUE self)
{
    VALUE vcheck;
    rb_scan_args(argc, argv, "13:", NULL, NULL, NULL, NULL, &vcheck);
    uint32_t check;
    if (NIL_P(vcheck)) {
        check = LZMA_CHECK_CRC64;
    } else {
        check = NUM2UINT(vcheck);
        argc --;
    }
    lzma_filter filters[LZMA_FILTERS_MAX + 1];
    memset(filters, 0, sizeof(filters));
    filter_setup(filters, argv, argv + argc);

    lzma_stream *stream = getstream(self);
    LZMA_TEST(lzma_stream_encoder(stream, filters, check));

    return self;
}