summaryrefslogtreecommitdiffstats
path: root/lz4frame.h
diff options
context:
space:
mode:
authorYann Collet <yann.collet.73@gmail.com>2014-08-25 23:56:54 (GMT)
committerYann Collet <yann.collet.73@gmail.com>2014-08-25 23:56:54 (GMT)
commit686d6327b3776a95a6941d3adbc317697adfd074 (patch)
tree03524ae710b09498b4dd00620076c870c164a3a3 /lz4frame.h
parent35946be11804d4fa46a60f4bb8326806f455eb5a (diff)
downloadlz4-686d6327b3776a95a6941d3adbc317697adfd074.zip
lz4-686d6327b3776a95a6941d3adbc317697adfd074.tar.gz
lz4-686d6327b3776a95a6941d3adbc317697adfd074.tar.bz2
LZ4F API update. Creating "simple function" (compression only)
Diffstat (limited to 'lz4frame.h')
-rw-r--r--lz4frame.h47
1 files changed, 33 insertions, 14 deletions
diff --git a/lz4frame.h b/lz4frame.h
index 9e75207..120be94 100644
--- a/lz4frame.h
+++ b/lz4frame.h
@@ -57,8 +57,6 @@ int LZ4F_isError(size_t code);
Framing compression functions
**************************************/
-typedef void* LZ4F_compressionContext_t;
-
typedef enum { LZ4F_default=0, max64KB=4, max256KB=5, max1MB=6, max4MB=7} maxBlockSize_t;
typedef enum { LZ4F_default=0, blockLinked, blockIndependent} blockMode_t;
typedef enum { LZ4F_default=0, contentChecksumEnabled, contentNoChecksum} contentChecksum_t;
@@ -68,10 +66,37 @@ typedef struct {
maxBlockSize_t maxBlockSize;
blockMode_t blockMode;
contentChecksum_t contentChecksumFlag;
+ int autoFlush;
} LZ4F_preferences_t;
+
+
+/**********************************
+ * Simple functions
+ * *********************************/
+size_t LZ4F_compressFrameBound(size_t srcSize, const LZ4F_preferences_t* preferences);
+
+size_t LZ4F_compressFrame(void* dstBuffer, size_t dstMaxSize, const void* srcBuffer, size_t srcSize, const LZ4F_preferences_t* preferences);
+/* LZ4F_compressFrame()
+ * Compress an entire srcBuffer into a valid LZ4 frame, as defined by specification v1.4.1, in a single step.
+ * The most important rule is that dstBuffer MUST be large enough (dstMaxSize) to ensure compression completion even in worst case.
+ * You can get the minimum value of dstMaxSize by using LZ4F_compressFrameBound()
+ * If this condition is not respected, LZ4F_compressFrame() will fail (result is an errorCode)
+ * The LZ4F_preferences_t structure is optional : you can provide NULL as argument. All preferences will be set to default.
+ * The result of the function is the number of bytes written into dstBuffer.
+ * The function outputs an error code if it fails (can be tested using LZ4F_isError())
+ */
+
+
+
+
+/**********************************
+ * Advanced functions
+ * *********************************/
+
+typedef void* LZ4F_compressionContext_t;
+
typedef struct {
- int autoFlush; /* default is 0 = no autoflush */
int stableSrc; /* unused for the time being, must be 0 */
} LZ4F_compressOptions_t;
@@ -83,24 +108,18 @@ size_t LZ4F_getMaxSrcSize(size_t dstMaxSize, const LZ4F_preferences_t* preferenc
* The LZ4F_preferences_t structure is optional : you can provide NULL as argument, all preferences will then be set to default.
*/
-
-/* *********************************
- * Compression functions
- * *********************************/
-
/* Resource Management */
#define LZ4F_VERSION 100
-LZ4F_compressionContext_t LZ4F_createCompressionContext(int version, const LZ4F_preferences_t* preferences);
-void LZ4F_freeCompressionContext(LZ4F_compressionContext_t* LZ4F_compressionContext);
+LZ4F_errorCode_t LZ4F_createCompressionContext(LZ4F_compressionContext_t* LZ4F_compressionContext, int version, const LZ4F_preferences_t* preferences);
+LZ4F_errorCode_t LZ4F_freeCompressionContext(LZ4F_compressionContext_t LZ4F_compressionContext);
/* LZ4F_createCompressionContext() :
* The first thing to do is to create a compressionContext object, which will be used in all compression operations.
* This is achieved using LZ4F_createCompressionContext(), which takes as argument a version and an LZ4F_preferences_t structure.
- * The version provided MUST be LZ4F_VERSION.
- * It is intended to track potential version differences between a program and an external dynamic library.
+ * The version provided MUST be LZ4F_VERSION. It is intended to track potential version differences between different binaries.
* The LZ4F_preferences_t structure is optional : you can provide NULL as argument, all preferences will then be set to default.
- * The result of the function is a pointer to the LZ4F_compressionContext_t object.
- * If the pointer is NULL, there was an error during context creation.
+ * The function will provide a pointer to a fully allocated LZ4F_compressionContext_t object.
+ * If the result LZ4F_errorCode_t is not zero, there was an error during context creation.
* Object can release its memory using LZ4F_freeCompressionContext();
*/