diff options
Diffstat (limited to 'programs/fileio.h')
| -rw-r--r-- | programs/fileio.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/programs/fileio.h b/programs/fileio.h new file mode 100644 index 0000000000000..0dd58d625d44a --- /dev/null +++ b/programs/fileio.h @@ -0,0 +1,94 @@ +/** + * Copyright (c) 2016-present, Yann Collet, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + +#ifndef FILEIO_H_23981798732 +#define FILEIO_H_23981798732 + +#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_compressionParameters */ +#include "zstd.h" /* ZSTD_* */ + +#if defined (__cplusplus) +extern "C" { +#endif + + +/* ************************************* +* Special i/o constants +**************************************/ +#define stdinmark "/*stdin*\\" +#define stdoutmark "/*stdout*\\" +#ifdef _WIN32 +# define nulmark "nul" +#else +# define nulmark "/dev/null" +#endif +#define LZMA_EXTENSION ".lzma" +#define XZ_EXTENSION ".xz" +#define GZ_EXTENSION ".gz" +#define ZSTD_EXTENSION ".zst" + + +/*-************************************* +* Types +***************************************/ +typedef enum { FIO_zstdCompression, FIO_gzipCompression, FIO_xzCompression, FIO_lzmaCompression } FIO_compressionType_t; + + +/*-************************************* +* Parameters +***************************************/ +void FIO_setCompressionType(FIO_compressionType_t compressionType); +void FIO_overwriteMode(void); +void FIO_setNotificationLevel(unsigned level); +void FIO_setSparseWrite(unsigned sparse); /**< 0: no sparse; 1: disable on stdout; 2: always enabled */ +void FIO_setDictIDFlag(unsigned dictIDFlag); +void FIO_setChecksumFlag(unsigned checksumFlag); +void FIO_setRemoveSrcFile(unsigned flag); +void FIO_setMemLimit(unsigned memLimit); +void FIO_setNbThreads(unsigned nbThreads); +void FIO_setBlockSize(unsigned blockSize); +void FIO_setOverlapLog(unsigned overlapLog); + + +/*-************************************* +* Single File functions +***************************************/ +/** FIO_compressFilename() : + @return : 0 == ok; 1 == pb with src file. */ +int FIO_compressFilename (const char* outfilename, const char* infilename, const char* dictFileName, + int compressionLevel, ZSTD_compressionParameters* comprParams); + +/** FIO_decompressFilename() : + @return : 0 == ok; 1 == pb with src file. */ +int FIO_decompressFilename (const char* outfilename, const char* infilename, const char* dictFileName); + + +/*-************************************* +* Multiple File functions +***************************************/ +/** FIO_compressMultipleFilenames() : + @return : nb of missing files */ +int FIO_compressMultipleFilenames(const char** srcNamesTable, unsigned nbFiles, + const char* suffix, + const char* dictFileName, int compressionLevel, + ZSTD_compressionParameters* comprParams); + +/** FIO_decompressMultipleFilenames() : + @return : nb of missing or skipped files */ +int FIO_decompressMultipleFilenames(const char** srcNamesTable, unsigned nbFiles, + const char* suffix, + const char* dictFileName); + + +#if defined (__cplusplus) +} +#endif + +#endif /* FILEIO_H_23981798732 */ |
