summaryrefslogtreecommitdiff
path: root/modules/brotli/enc/static_dict.h
diff options
context:
space:
mode:
Diffstat (limited to 'modules/brotli/enc/static_dict.h')
-rw-r--r--modules/brotli/enc/static_dict.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/modules/brotli/enc/static_dict.h b/modules/brotli/enc/static_dict.h
new file mode 100644
index 0000000000..6b5d4eb0c9
--- /dev/null
+++ b/modules/brotli/enc/static_dict.h
@@ -0,0 +1,40 @@
+/* Copyright 2013 Google Inc. All Rights Reserved.
+
+ Distributed under MIT license.
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
+*/
+
+/* Class to model the static dictionary. */
+
+#ifndef BROTLI_ENC_STATIC_DICT_H_
+#define BROTLI_ENC_STATIC_DICT_H_
+
+#include "../common/dictionary.h"
+#include "../common/platform.h"
+#include <brotli/types.h>
+#include "./encoder_dict.h"
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+#define BROTLI_MAX_STATIC_DICTIONARY_MATCH_LEN 37
+static const uint32_t kInvalidMatch = 0xFFFFFFF;
+
+/* Matches data against static dictionary words, and for each length l,
+ for which a match is found, updates matches[l] to be the minimum possible
+ (distance << 5) + len_code.
+ Returns 1 if matches have been found, otherwise 0.
+ Prerequisites:
+ matches array is at least BROTLI_MAX_STATIC_DICTIONARY_MATCH_LEN + 1 long
+ all elements are initialized to kInvalidMatch */
+BROTLI_INTERNAL BROTLI_BOOL BrotliFindAllStaticDictionaryMatches(
+ const BrotliEncoderDictionary* dictionary,
+ const uint8_t* data, size_t min_length, size_t max_length,
+ uint32_t* matches);
+
+#if defined(__cplusplus) || defined(c_plusplus)
+} /* extern "C" */
+#endif
+
+#endif /* BROTLI_ENC_STATIC_DICT_H_ */