#ifndef LLVM_SUPPORT_COMPRESSION_H
#define LLVM_SUPPORT_COMPRESSION_H
#include "llvm/Support/DataTypes.h"
namespace llvm {
class MemoryBuffer;
template<typename T> class OwningPtr;
class StringRef;
namespace zlib {
enum CompressionLevel {
NoCompression,
DefaultCompression,
BestSpeedCompression,
BestSizeCompression
};
enum Status {
StatusOK,
StatusUnsupported, StatusOutOfMemory, StatusBufferTooShort, StatusInvalidArg, StatusInvalidData };
bool isAvailable();
Status compress(StringRef InputBuffer,
OwningPtr<MemoryBuffer> &CompressedBuffer,
CompressionLevel Level = DefaultCompression);
Status uncompress(StringRef InputBuffer,
OwningPtr<MemoryBuffer> &UncompressedBuffer,
size_t UncompressedSize);
uint32_t crc32(StringRef Buffer);
}
}
#endif