summaryrefslogtreecommitdiffstats
path: root/lz4frame.h
diff options
context:
space:
mode:
authorYann Collet <yann.collet.73@gmail.com>2014-08-19 15:09:07 (GMT)
committerYann Collet <yann.collet.73@gmail.com>2014-08-19 15:09:07 (GMT)
commitc88999ad0d45421068ec6ee3df6f4d5dd18eefb4 (patch)
tree7f41fb6128419245f664a8a8c76296cbc4a6342e /lz4frame.h
parenta55cde02b0b3a7477ea40cb250a1f14549ed397f (diff)
downloadlz4-c88999ad0d45421068ec6ee3df6f4d5dd18eefb4.zip
lz4-c88999ad0d45421068ec6ee3df6f4d5dd18eefb4.tar.gz
lz4-c88999ad0d45421068ec6ee3df6f4d5dd18eefb4.tar.bz2
updated lz4frame API, following suggestions from Takayuki Matsuoka
Diffstat (limited to 'lz4frame.h')
-rw-r--r--lz4frame.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/lz4frame.h b/lz4frame.h
new file mode 100644
index 0000000..899bb09
--- /dev/null
+++ b/lz4frame.h
@@ -0,0 +1,79 @@
+/*
+ LZ4 auto-framing library
+ Header File
+ Copyright (C) 2011-2014, Yann Collet.
+ BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following disclaimer
+ in the documentation and/or other materials provided with the
+ distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ You can contact the author at :
+ - LZ4 source repository : http://code.google.com/p/lz4/
+ - LZ4 public forum : https://groups.google.com/forum/#!forum/lz4c
+*/
+#pragma once
+
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
+
+/**************************************
+ Error management
+**************************************/
+typedef enum { ERROR_GENERIC =-1U, ERROR_MIN = -2U } LZ4F_errorCode_t;
+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;
+
+typedef struct {
+ maxBlockSize_t maxBlockSize;
+ blockMode_t blockMode;
+ contentChecksum_t contentChecksum;
+} LZ4F_preferences_t;
+
+
+size_t LZ4F_createCompressionContext(LZ4F_compressionContext_t** compressionContextPtr, void* dstBuffer, size_t dstMaxSize, const LZ4F_preferences_t* preferences);
+
+size_t LZ4F_compressBound(size_t srcSize, const LZ4F_preferences_t* preferences);
+size_t LZ4F_getMaxSrcSize(size_t maxDstSize, const LZ4F_preferences_t* preferences);
+
+size_t LZ4F_compress(LZ4F_compressionContext_t* compressionContext, void* dstBuffer, size_t dstMaxSize, const void* srcBuffer, size_t srcSize);
+
+size_t LZ4F_flush(LZ4F_compressionContext_t* compressionContext, void* dstBuffer, size_t dstMaxSize);
+
+void LZ4F_freeCompressionContext(LZ4F_compressionContext_t* compressionContext);
+
+
+#if defined (__cplusplus)
+}
+#endif