]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
adding dedicatedDictSearch cParams helper methods
authorBimba Shrestha <bimbashrestha@fb.com>
Thu, 11 Jun 2020 20:48:57 +0000 (13:48 -0700)
committerW. Felix Handte <w@felixhandte.com>
Thu, 10 Sep 2020 22:51:52 +0000 (18:51 -0400)
lib/compress/zstd_compress.c

index dac2bf5dcb33eddbbb096515aeca244e14c31c0a..b7d7bcd02d49b7e82c45f204a7e6e3100c7df9d3 100644 (file)
@@ -864,6 +864,9 @@ ZSTDLIB_API size_t ZSTD_CCtx_setPledgedSrcSize(ZSTD_CCtx* cctx, unsigned long lo
     return 0;
 }
 
+static ZSTD_compressionParameters ZSTD_dedicatedDictSearch_getCParams(int const compressionLevel, size_t const dictSize);
+static int ZSTD_dedicatedDictSearch_isSupported(int const compressionLevel, size_t const dictSize);
+
 /**
  * Initializes the local dict using the requested parameters.
  * NOTE: This does not use the pledged src size, because it may be used for more
@@ -4356,6 +4359,19 @@ ZSTD_dedicatedDictSearch_defaultCParameters[4][ZSTD_MAX_CLEVEL+1] = {
 },
 };
 
+static ZSTD_compressionParameters ZSTD_dedicatedDictSearch_getCParams(int const compressionLevel, size_t const dictSize)
+{
+    size_t const tableID = (dictSize <= 256 KB) + (dictSize <= 128 KB) + (dictSize <= 16 KB);
+    size_t const row = compressionLevel;
+    return ZSTD_dedicatedDictSearch_defaultCParameters[tableID][row];
+}
+
+static int ZSTD_dedicatedDictSearch_isSupported(int const compressionLevel, size_t const dictSize)
+{
+    ZSTD_compressionParameters const cParams = ZSTD_dedicatedDictSearch_getCParams(compressionLevel, dictSize);
+    return (cParams.strategy >= ZSTD_greedy) && (cParams.strategy <= ZSTD_lazy2);
+}
+
 /*! ZSTD_getCParams_internal() :
  * @return ZSTD_compressionParameters structure for a selected compression level, srcSize and dictSize.
  *  Note: srcSizeHint 0 means 0, use ZSTD_CONTENTSIZE_UNKNOWN for unknown.