当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang inflateSetDictionary(Z, Dictionary)用法及代码示例


inflateSetDictionary(Z, Dictionary) -> ok
类型:
Z = zstream()
Dictionary = iodata()

从指定的未压缩字节序列初始化解压缩字典。必须调用此函数作为对 inflate 操作的响应(例如safeInflate/2)返回{need_dictionary,Adler,Output}或者在不推荐使用的函数的情况下,抛出{'EXIT',{{need_dictionary,Adler},_StackTrace}}异常。

压缩器选择的字典可以根据调用 inflate 函数返回或抛出的 Adler 值来确定。压缩器和解压缩器必须使用相同的字典(参见 deflateSetDictionary/2)。

设置字典后,应在没有新输入的情况下重试 inflate 操作。

例子:

deprecated_unpack(Z, Compressed, Dict) ->
     case catch zlib:inflate(Z, Compressed) of
          {'EXIT',{{need_dictionary,_DictID},_}} ->
                 ok = zlib:inflateSetDictionary(Z, Dict),
                 Uncompressed = zlib:inflate(Z, []);
          Uncompressed ->
                 Uncompressed
     end.

new_unpack(Z, Compressed, Dict) ->
    case zlib:inflate(Z, Compressed, [{exception_on_need_dict, false}]) of
        {need_dictionary, _DictId, Output} ->
            ok = zlib:inflateSetDictionary(Z, Dict),
            [Output | zlib:inflate(Z, [])];
        Uncompressed ->
            Uncompressed
    end.

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 inflateSetDictionary(Z, Dictionary) -> ok。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。