Skip to content

Commit 58baeae

Browse files
committed
20220118
1 parent 34d8d83 commit 58baeae

File tree

14 files changed

+97
-38
lines changed

14 files changed

+97
-38
lines changed

Linux/Change-APIs.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Create_HP_ZLibDecompressor (ADD)
1212
Create_HP_ZLibDecompressorEx (ADD)
1313
Create_HP_GZipDecompressor (ADD)
1414
Create_HP_BrotliCompressor (ADD)
15+
Create_HP_BrotliCompressorEx (ADD)
1516
Create_HP_BrotliDecompressor (ADD)
1617
Destroy_HP_Compressor (ADD)
1718
Destroy_HP_Decompressor (ADD)

Linux/include/hpsocket/HPSocket.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -538,14 +538,14 @@ HPSOCKET_API int SYS_UrlDecode(BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DW
538538
#ifdef _ZLIB_SUPPORT
539539

540540
// 普通压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
541+
// (默认参数:iLevel -> -1,iMethod -> 8,iWindowBits -> 15,iMemLevel -> 8,iStrategy -> 0)
541542
HPSOCKET_API int SYS_Compress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
542543
// 高级压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
543-
//(默认参数:iLevel -> -1,iMethod -> 8,iWindowBits -> 15,iMemLevel -> 8,iStrategy -> 0)
544544
HPSOCKET_API int SYS_CompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen, int iLevel = -1, int iMethod = 8, int iWindowBits = 15, int iMemLevel = 8, int iStrategy = 0);
545545
// 普通解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
546+
//(默认参数:iWindowBits -> 15)
546547
HPSOCKET_API int SYS_Uncompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
547548
// 高级解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
548-
//(默认参数:iWindowBits -> 15)
549549
HPSOCKET_API int SYS_UncompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen, int iWindowBits = 15);
550550
// 推测压缩结果长度
551551
HPSOCKET_API DWORD SYS_GuessCompressBound(DWORD dwSrcLen, BOOL bGZip = FALSE);
@@ -562,9 +562,9 @@ HPSOCKET_API DWORD SYS_GZipGuessUncompressBound(const BYTE* lpszSrc, DWORD dwSrc
562562
#ifdef _BROTLI_SUPPORT
563563

564564
// Brotli 压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
565+
// (默认参数:iQuality -> 11,iWindow -> 22,iMode -> 0)
565566
HPSOCKET_API int SYS_BrotliCompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
566567
// Brotli 高级压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
567-
//(默认参数:iQuality -> 11,iWindow -> 22,iMode -> 0)
568568
HPSOCKET_API int SYS_BrotliCompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen, int iQuality = 11, int iWindow = 22, int iMode = 0);
569569
// Brotli 解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
570570
HPSOCKET_API int SYS_BrotliUncompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD& dwDestLen);
@@ -796,7 +796,8 @@ HPSOCKET_API IHPDecompressor* HP_Create_GZipDecompressor(Fn_DecompressDataCallba
796796
#ifdef _BROTLI_SUPPORT
797797

798798
/* 创建 Brotli 压缩器对象 */
799-
HPSOCKET_API IHPCompressor* HP_Create_BrotliCompressor(Fn_CompressDataCallback fnCallback);
799+
//(默认参数:iQuality -> 11,iWindow -> 22,iMode -> 0)
800+
HPSOCKET_API IHPCompressor* HP_Create_BrotliCompressor(Fn_CompressDataCallback fnCallback, int iQuality = 11, int iWindow = 22, int iMode = 0);
800801
/* 创建 Brotli 解压器对象 */
801802
HPSOCKET_API IHPDecompressor* HP_Create_BrotliDecompressor(Fn_DecompressDataCallback fnCallback);
802803

Linux/include/hpsocket/HPSocket4C.h

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1747,20 +1747,22 @@ HPSOCKET_API int __HP_CALL SYS_UrlDecode(BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lp
17471747

17481748
#ifdef _ZLIB_SUPPORT
17491749

1750-
// 普通压缩
1750+
// 普通压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
1751+
//(默认参数:iLevel -> -1,iMethod -> 8,iWindowBits -> 15,iMemLevel -> 8,iStrategy -> 0)
17511752
HPSOCKET_API int __HP_CALL SYS_Compress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen);
1752-
// 高级压缩(默认值:iLevel -> -1,iMethod -> 8,iWindowBits -> 15,iMemLevel -> 8,iStrategy -> 0)
1753-
HPSOCKET_API int __HP_CALL SYS_CompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen, int iLevel, int iMethod, int iWindowBits, int iMemLevel, int iStrategy);
1754-
// 普通解压
1753+
// 高级压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
1754+
HPSOCKET_API int __HP_CALL SYS_CompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen, int iLevel /*= -1*/, int iMethod /*= 8*/, int iWindowBits /*= 15*/, int iMemLevel /*= 8*/, int iStrategy /*= 0*/);
1755+
// 普通解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
1756+
// (默认参数:iWindowBits -> 15)
17551757
HPSOCKET_API int __HP_CALL SYS_Uncompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen);
1756-
// 高级解压(默认值:iWindowBits -> 15
1757-
HPSOCKET_API int __HP_CALL SYS_UncompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen, int iWindowBits);
1758+
// 高级解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足
1759+
HPSOCKET_API int __HP_CALL SYS_UncompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen, int iWindowBits /*= 15*/);
17581760
// 推测压缩结果长度
17591761
HPSOCKET_API DWORD __HP_CALL SYS_GuessCompressBound(DWORD dwSrcLen, BOOL bGZip);
17601762

1761-
// Gzip 压缩
1763+
// Gzip 压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
17621764
HPSOCKET_API int __HP_CALL SYS_GZipCompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen);
1763-
// Gzip 解压
1765+
// Gzip 解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
17641766
HPSOCKET_API int __HP_CALL SYS_GZipUncompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen);
17651767
// 推测 Gzip 解压结果长度(如果返回 0 或不合理值则说明输入内容并非有效的 Gzip 格式)
17661768
HPSOCKET_API DWORD __HP_CALL SYS_GZipGuessUncompressBound(const BYTE* lpszSrc, DWORD dwSrcLen);
@@ -1770,10 +1772,10 @@ HPSOCKET_API DWORD __HP_CALL SYS_GZipGuessUncompressBound(const BYTE* lpszSrc, D
17701772
#ifdef _BROTLI_SUPPORT
17711773

17721774
// Brotli 压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
1775+
//(默认参数:iQuality -> 11,iWindow -> 22,iMode -> 0)
17731776
HPSOCKET_API int __HP_CALL SYS_BrotliCompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen);
17741777
// Brotli 高级压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
1775-
//(默认参数:iQuality -> 11,iWindow -> 22,iMode -> 0)
1776-
HPSOCKET_API int __HP_CALL SYS_BrotliCompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen, int iQuality, int iWindow, int iMode);
1778+
HPSOCKET_API int __HP_CALL SYS_BrotliCompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen, int iQuality /*= 11*/, int iWindow /*= 22*/, int iMode /*= 0*/);
17771779
// Brotli 解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
17781780
HPSOCKET_API int __HP_CALL SYS_BrotliUncompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen);
17791781
// Brotli 推测压缩结果长度
@@ -2712,19 +2714,19 @@ HPSOCKET_API void __HP_CALL Destroy_HP_Decompressor(HP_Decompressor pDecompresso
27122714
#ifdef _ZLIB_SUPPORT
27132715

27142716
/* 创建 ZLib 压缩器对象 */
2717+
// (默认参数:iWindowBits = 15, iLevel = -1, iMethod = 8, iMemLevel = 8, iStrategy = 0)
27152718
HPSOCKET_API HP_Compressor __HP_CALL Create_HP_ZLibCompressor(HP_Fn_CompressDataCallback fnCallback);
27162719
/* 创建 ZLib 压缩器对象 */
2717-
// (默认参数:iWindowBits = 15, iLevel = -1, iMethod = 8, iMemLevel = 8, iStrategy = 0)
27182720
HPSOCKET_API HP_Compressor __HP_CALL Create_HP_ZLibCompressorEx(HP_Fn_CompressDataCallback fnCallback, int iWindowBits /*= 15*/, int iLevel /*= -1*/, int iMethod /*= 8*/, int iMemLevel /*= 8*/, int iStrategy /*= 0*/);
27192721
/* 创建 GZip 压缩器对象 */
27202722
// (默认参数:iLevel = -1, iMethod = 8, iMemLevel = 8, iStrategy = 0)
27212723
HPSOCKET_API HP_Compressor __HP_CALL Create_HP_GZipCompressor(HP_Fn_CompressDataCallback fnCallback);
27222724
/* 创建 GZip 压缩器对象 */
2723-
HPSOCKET_API HP_Compressor __HP_CALL Create_HP_GZipCompressorEx(HP_Fn_CompressDataCallback fnCallback, int iLevel /*= -1*/, int iMethod /*= */, int iMemLevel /*= 8*/, int iStrategy /*= 0*/);
2725+
HPSOCKET_API HP_Compressor __HP_CALL Create_HP_GZipCompressorEx(HP_Fn_CompressDataCallback fnCallback, int iLevel /*= -1*/, int iMethod /*= 8*/, int iMemLevel /*= 8*/, int iStrategy /*= 0*/);
27242726
/* 创建 ZLib 解压器对象 */
2727+
// (默认参数:iWindowBits = 15)
27252728
HPSOCKET_API HP_Decompressor __HP_CALL Create_HP_ZLibDecompressor(HP_Fn_DecompressDataCallback fnCallback);
27262729
/* 创建 ZLib 解压器对象 */
2727-
// (默认参数:iWindowBits = 15)
27282730
HPSOCKET_API HP_Decompressor __HP_CALL Create_HP_ZLibDecompressorEx(HP_Fn_DecompressDataCallback fnCallback, int iWindowBits /*= 15*/);
27292731
/* 创建 GZip 解压器对象 */
27302732
HPSOCKET_API HP_Decompressor __HP_CALL Create_HP_GZipDecompressor(HP_Fn_DecompressDataCallback fnCallback);
@@ -2734,7 +2736,10 @@ HPSOCKET_API HP_Decompressor __HP_CALL Create_HP_GZipDecompressor(HP_Fn_Decompre
27342736
#ifdef _BROTLI_SUPPORT
27352737

27362738
/* 创建 Brotli 压缩器对象 */
2739+
//(默认参数:iQuality -> 11,iWindow -> 22,iMode -> 0)
27372740
HPSOCKET_API HP_Compressor __HP_CALL Create_HP_BrotliCompressor(HP_Fn_CompressDataCallback fnCallback);
2741+
/* 创建 Brotli 压缩器对象 */
2742+
HPSOCKET_API HP_Compressor __HP_CALL Create_HP_BrotliCompressorEx(HP_Fn_CompressDataCallback fnCallback, int iQuality /*= 11*/, int iWindow /*= 22*/, int iMode /*= 0*/);
27382743
/* 创建 Brotli 解压器对象 */
27392744
HPSOCKET_API HP_Decompressor __HP_CALL Create_HP_BrotliDecompressor(HP_Fn_DecompressDataCallback fnCallback);
27402745

Linux/src/HPSocket.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -711,9 +711,9 @@ HPSOCKET_API IHPDecompressor* HP_Create_GZipDecompressor(Fn_DecompressDataCallba
711711

712712
#ifdef _BROTLI_SUPPORT
713713

714-
HPSOCKET_API IHPCompressor* HP_Create_BrotliCompressor(Fn_CompressDataCallback fnCallback)
714+
HPSOCKET_API IHPCompressor* HP_Create_BrotliCompressor(Fn_CompressDataCallback fnCallback, int iQuality, int iWindow, int iMode)
715715
{
716-
return ::CreateBrotliCompressor(fnCallback);
716+
return ::CreateBrotliCompressor(fnCallback, iQuality, iWindow, iMode);
717717
}
718718

719719
HPSOCKET_API IHPDecompressor* HP_Create_BrotliDecompressor(Fn_DecompressDataCallback fnCallback)

Linux/src/HPSocket4C.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3638,6 +3638,11 @@ HPSOCKET_API HP_Compressor __HP_CALL Create_HP_BrotliCompressor(HP_Fn_CompressDa
36383638
return ::CreateBrotliCompressor(fnCallback);
36393639
}
36403640

3641+
HPSOCKET_API HP_Compressor __HP_CALL Create_HP_BrotliCompressorEx(HP_Fn_CompressDataCallback fnCallback, int iQuality, int iWindow, int iMode)
3642+
{
3643+
return ::CreateBrotliCompressor(fnCallback, iQuality, iWindow, iMode);
3644+
}
3645+
36413646
HPSOCKET_API HP_Decompressor __HP_CALL Create_HP_BrotliDecompressor(HP_Fn_DecompressDataCallback fnCallback)
36423647
{
36433648
return ::CreateBrotliDecompressor(fnCallback);

Linux/src/SocketHelper.cpp

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1275,14 +1275,18 @@ DWORD GZipGuessUncompressBound(const BYTE* lpszSrc, DWORD dwSrcLen)
12751275

12761276
#ifdef _BROTLI_SUPPORT
12771277

1278-
CHPBrotliCompressor::CHPBrotliCompressor(Fn_CompressDataCallback fnCallback)
1278+
CHPBrotliCompressor::CHPBrotliCompressor(Fn_CompressDataCallback fnCallback, int iQuality, int iWindow, int iMode)
12791279
: m_fnCallback (fnCallback)
12801280
, m_bValid (FALSE)
1281+
, m_iQuality (iQuality)
1282+
, m_iWindow (iWindow)
1283+
, m_iMode (iMode)
12811284
{
12821285
ASSERT(m_fnCallback != nullptr);
12831286

12841287
Reset();
12851288
}
1289+
12861290
CHPBrotliCompressor::~CHPBrotliCompressor()
12871291
{
12881292
if(m_bValid) ::BrotliEncoderDestroyInstance(m_pState);
@@ -1293,6 +1297,16 @@ BOOL CHPBrotliCompressor::Reset()
12931297
if(m_bValid) ::BrotliEncoderDestroyInstance(m_pState);
12941298
m_pState = ::BrotliEncoderCreateInstance(nullptr, nullptr, nullptr);
12951299

1300+
if(m_pState != nullptr)
1301+
{
1302+
::BrotliEncoderSetParameter(m_pState, BROTLI_PARAM_QUALITY , (UINT)m_iQuality);
1303+
::BrotliEncoderSetParameter(m_pState, BROTLI_PARAM_LGWIN , (UINT)m_iWindow);
1304+
::BrotliEncoderSetParameter(m_pState, BROTLI_PARAM_MODE , (UINT)m_iMode);
1305+
1306+
if (m_iWindow > BROTLI_MAX_WINDOW_BITS)
1307+
::BrotliEncoderSetParameter(m_pState, BROTLI_PARAM_LARGE_WINDOW, BROTLI_TRUE);
1308+
}
1309+
12961310
return (m_bValid = (m_pState != nullptr));
12971311
}
12981312

@@ -1434,9 +1448,9 @@ BOOL CHPBrotliDecompressor::Process(const BYTE* pData, int iLength, PVOID pConte
14341448
return isOK;
14351449
}
14361450

1437-
IHPCompressor* CreateBrotliCompressor(Fn_CompressDataCallback fnCallback)
1451+
IHPCompressor* CreateBrotliCompressor(Fn_CompressDataCallback fnCallback, int iQuality, int iWindow, int iMode)
14381452
{
1439-
return new CHPBrotliCompressor(fnCallback);
1453+
return new CHPBrotliCompressor(fnCallback, iQuality, iWindow, iMode);
14401454
}
14411455

14421456
IHPDecompressor* CreateBrotliDecompressor(Fn_DecompressDataCallback fnCallback)

Linux/src/SocketHelper.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -881,13 +881,17 @@ class CHPBrotliCompressor : public IHPCompressor
881881
virtual BOOL Reset();
882882

883883
public:
884-
CHPBrotliCompressor(Fn_CompressDataCallback fnCallback);
884+
CHPBrotliCompressor(Fn_CompressDataCallback fnCallback, int iQuality = BROTLI_DEFAULT_QUALITY, int iWindow = BROTLI_DEFAULT_WINDOW, int iMode = BROTLI_DEFAULT_MODE);
885885
virtual ~CHPBrotliCompressor();
886886

887887
private:
888888
Fn_CompressDataCallback m_fnCallback;
889889
BrotliEncoderState* m_pState;
890890
BOOL m_bValid;
891+
892+
int m_iQuality;
893+
int m_iWindow;
894+
int m_iMode;
891895
};
892896

893897
/* Brotli 解压器 */
@@ -909,7 +913,7 @@ class CHPBrotliDecompressor : public IHPDecompressor
909913
};
910914

911915
/* 创建 Brotli 压缩器对象 */
912-
IHPCompressor* CreateBrotliCompressor(Fn_CompressDataCallback fnCallback);
916+
IHPCompressor* CreateBrotliCompressor(Fn_CompressDataCallback fnCallback, int iQuality = BROTLI_DEFAULT_QUALITY, int iWindow = BROTLI_DEFAULT_WINDOW, int iMode = BROTLI_DEFAULT_MODE);
913917
/* 创建 Brotli 解压器对象 */
914918
IHPDecompressor* CreateBrotliDecompressor(Fn_DecompressDataCallback fnCallback);
915919

Windows/Change-APIs.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Create_HP_ZLibDecompressor (增加)
1212
Create_HP_ZLibDecompressorEx (增加)
1313
Create_HP_GZipDecompressor (增加)
1414
Create_HP_BrotliCompressor (增加)
15+
Create_HP_BrotliCompressorEx (增加)
1516
Create_HP_BrotliDecompressor (增加)
1617
Destroy_HP_Compressor (增加)
1718
Destroy_HP_Decompressor (增加)

Windows/Include/HPSocket/HPSocket.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -802,7 +802,8 @@ HPSOCKET_API IHPDecompressor* HP_Create_GZipDecompressor(Fn_DecompressDataCallba
802802
#ifdef _BROTLI_SUPPORT
803803

804804
/* 创建 Brotli 压缩器对象 */
805-
HPSOCKET_API IHPCompressor* HP_Create_BrotliCompressor(Fn_CompressDataCallback fnCallback);
805+
//(默认参数:iQuality -> 11,iWindow -> 22,iMode -> 0)
806+
HPSOCKET_API IHPCompressor* HP_Create_BrotliCompressor(Fn_CompressDataCallback fnCallback, int iQuality = 11, int iWindow = 22, int iMode = 0);
806807
/* 创建 Brotli 解压器对象 */
807808
HPSOCKET_API IHPDecompressor* HP_Create_BrotliDecompressor(Fn_DecompressDataCallback fnCallback);
808809

Windows/Include/HPSocket/HPSocket4C.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1776,15 +1776,15 @@ HPSOCKET_API int __HP_CALL SYS_UrlDecode(BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lp
17761776
#ifdef _ZLIB_SUPPORT
17771777

17781778
// 普通压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
1779+
//(默认参数:iLevel -> -1,iMethod -> 8,iWindowBits -> 15,iMemLevel -> 8,iStrategy -> 0)
17791780
HPSOCKET_API int __HP_CALL SYS_Compress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen);
17801781
// 高级压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
1781-
//(默认参数:iLevel -> -1,iMethod -> 8,iWindowBits -> 15,iMemLevel -> 8,iStrategy -> 0)
1782-
HPSOCKET_API int __HP_CALL SYS_CompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen, int iLevel, int iMethod, int iWindowBits, int iMemLevel, int iStrategy);
1782+
HPSOCKET_API int __HP_CALL SYS_CompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen, int iLevel /*= -1*/, int iMethod /*= 8*/, int iWindowBits /*= 15*/, int iMemLevel /*= 8*/, int iStrategy /*= 0*/);
17831783
// 普通解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
1784+
// (默认参数:iWindowBits -> 15)
17841785
HPSOCKET_API int __HP_CALL SYS_Uncompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen);
17851786
// 高级解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
1786-
//(默认参数:iWindowBits -> 15)
1787-
HPSOCKET_API int __HP_CALL SYS_UncompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen, int iWindowBits);
1787+
HPSOCKET_API int __HP_CALL SYS_UncompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen, int iWindowBits /*= 15*/);
17881788
// 推测压缩结果长度
17891789
HPSOCKET_API DWORD __HP_CALL SYS_GuessCompressBound(DWORD dwSrcLen, BOOL bGZip);
17901790

@@ -1800,10 +1800,10 @@ HPSOCKET_API DWORD __HP_CALL SYS_GZipGuessUncompressBound(const BYTE* lpszSrc, D
18001800
#ifdef _BROTLI_SUPPORT
18011801

18021802
// Brotli 压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
1803+
//(默认参数:iQuality -> 11,iWindow -> 22,iMode -> 0)
18031804
HPSOCKET_API int __HP_CALL SYS_BrotliCompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen);
18041805
// Brotli 高级压缩(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
1805-
//(默认参数:iQuality -> 11,iWindow -> 22,iMode -> 0)
1806-
HPSOCKET_API int __HP_CALL SYS_BrotliCompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen, int iQuality, int iWindow, int iMode);
1806+
HPSOCKET_API int __HP_CALL SYS_BrotliCompressEx(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen, int iQuality /*= 11*/, int iWindow /*= 22*/, int iMode /*= 0*/);
18071807
// Brotli 解压(返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足)
18081808
HPSOCKET_API int __HP_CALL SYS_BrotliUncompress(const BYTE* lpszSrc, DWORD dwSrcLen, BYTE* lpszDest, DWORD* pdwDestLen);
18091809
// Brotli 推测压缩结果长度
@@ -2746,6 +2746,9 @@ HPSOCKET_API HP_Decompressor __HP_CALL Create_HP_GZipDecompressor(HP_Fn_Decompre
27462746

27472747
/* 创建 Brotli 压缩器对象 */
27482748
HPSOCKET_API HP_Compressor __HP_CALL Create_HP_BrotliCompressor(HP_Fn_CompressDataCallback fnCallback);
2749+
/* 创建 Brotli 压缩器对象 */
2750+
// (默认参数:iQuality -> 11,iWindow -> 22,iMode -> 0)
2751+
HPSOCKET_API HP_Compressor __HP_CALL Create_HP_BrotliCompressorEx(HP_Fn_CompressDataCallback fnCallback, int iQuality /*= 11*/, int iWindow /*= 22*/, int iMode /*= 0*/);
27492752
/* 创建 Brotli 解压器对象 */
27502753
HPSOCKET_API HP_Decompressor __HP_CALL Create_HP_BrotliDecompressor(HP_Fn_DecompressDataCallback fnCallback);
27512754

0 commit comments

Comments
 (0)