+++ /dev/null
-/* transforms is a part of ABI, but not API.\r
-\r
- It means that there are some functions that are supposed to be in "common"\r
- library, but header itself is not placed into include/brotli. This way,\r
- aforementioned functions will be available only to brotli internals.\r
- */\r
-\r
-#ifndef BROTLI_COMMON_TRANSFORM_H_\r
-#define BROTLI_COMMON_TRANSFORM_H_\r
-\r
-#include <brotli/port.h>\r
-#include <brotli/types.h>\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-enum BrotliWordTransformType {\r
- BROTLI_TRANSFORM_IDENTITY = 0,\r
- BROTLI_TRANSFORM_OMIT_LAST_1 = 1,\r
- BROTLI_TRANSFORM_OMIT_LAST_2 = 2,\r
- BROTLI_TRANSFORM_OMIT_LAST_3 = 3,\r
- BROTLI_TRANSFORM_OMIT_LAST_4 = 4,\r
- BROTLI_TRANSFORM_OMIT_LAST_5 = 5,\r
- BROTLI_TRANSFORM_OMIT_LAST_6 = 6,\r
- BROTLI_TRANSFORM_OMIT_LAST_7 = 7,\r
- BROTLI_TRANSFORM_OMIT_LAST_8 = 8,\r
- BROTLI_TRANSFORM_OMIT_LAST_9 = 9,\r
- BROTLI_TRANSFORM_UPPERCASE_FIRST = 10,\r
- BROTLI_TRANSFORM_UPPERCASE_ALL = 11,\r
- BROTLI_TRANSFORM_OMIT_FIRST_1 = 12,\r
- BROTLI_TRANSFORM_OMIT_FIRST_2 = 13,\r
- BROTLI_TRANSFORM_OMIT_FIRST_3 = 14,\r
- BROTLI_TRANSFORM_OMIT_FIRST_4 = 15,\r
- BROTLI_TRANSFORM_OMIT_FIRST_5 = 16,\r
- BROTLI_TRANSFORM_OMIT_FIRST_6 = 17,\r
- BROTLI_TRANSFORM_OMIT_FIRST_7 = 18,\r
- BROTLI_TRANSFORM_OMIT_FIRST_8 = 19,\r
- BROTLI_TRANSFORM_OMIT_FIRST_9 = 20,\r
- BROTLI_NUM_TRANSFORM_TYPES /* Counts transforms, not a transform itself. */\r
-};\r
-\r
-#define BROTLI_TRANSFORMS_MAX_CUT_OFF BROTLI_TRANSFORM_OMIT_LAST_9\r
-\r
-typedef struct BrotliTransforms {\r
- uint16_t prefix_suffix_size;\r
- /* Last character must be null, so prefix_suffix_size must be at least 1. */\r
- const uint8_t* prefix_suffix;\r
- const uint16_t* prefix_suffix_map;\r
- uint32_t num_transforms;\r
- /* Each entry is a [prefix_id, transform, suffix_id] triplet. */\r
- const uint8_t* transforms;\r
- /* Indices of transforms like ["", BROTLI_TRANSFORM_OMIT_LAST_#, ""].\r
- 0-th element corresponds to ["", BROTLI_TRANSFORM_IDENTITY, ""].\r
- -1, if cut-off transform does not exist. */\r
- int16_t cutOffTransforms[BROTLI_TRANSFORMS_MAX_CUT_OFF + 1];\r
-} BrotliTransforms;\r
-\r
-/* T is BrotliTransforms*; result is uint8_t. */\r
-#define BROTLI_TRANSFORM_PREFIX_ID(T, I) ((T)->transforms[((I) * 3) + 0])\r
-#define BROTLI_TRANSFORM_TYPE(T, I) ((T)->transforms[((I) * 3) + 1])\r
-#define BROTLI_TRANSFORM_SUFFIX_ID(T, I) ((T)->transforms[((I) * 3) + 2])\r
-\r
-/* T is BrotliTransforms*; result is const uint8_t*. */\r
-#define BROTLI_TRANSFORM_PREFIX(T, I) (&(T)->prefix_suffix[ \\r
- (T)->prefix_suffix_map[BROTLI_TRANSFORM_PREFIX_ID(T, I)]])\r
-#define BROTLI_TRANSFORM_SUFFIX(T, I) (&(T)->prefix_suffix[ \\r
- (T)->prefix_suffix_map[BROTLI_TRANSFORM_SUFFIX_ID(T, I)]])\r
-\r
-BROTLI_COMMON_API const BrotliTransforms* BrotliGetTransforms(void);\r
-\r
-BROTLI_COMMON_API int BrotliTransformDictionaryWord(\r
- uint8_t* dst, const uint8_t* word, int len,\r
- const BrotliTransforms* transforms, int transform_idx);\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-} /* extern "C" */\r
-#endif\r
-\r
-#endif /* BROTLI_COMMON_TRANSFORM_H_ */\r