當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。