34 snappy_status snappy_compress(
const char* input,
37 size_t *compressed_length) {
38 if (*compressed_length < snappy_max_compressed_length(input_length)) {
39 return SNAPPY_BUFFER_TOO_SMALL;
41 snappy::RawCompress(input, input_length, compressed, compressed_length);
45 snappy_status snappy_uncompress(
const char* compressed,
46 size_t compressed_length,
48 size_t* uncompressed_length) {
49 size_t real_uncompressed_length;
50 if (!snappy::GetUncompressedLength(compressed,
52 &real_uncompressed_length)) {
53 return SNAPPY_INVALID_INPUT;
55 if (*uncompressed_length < real_uncompressed_length) {
56 return SNAPPY_BUFFER_TOO_SMALL;
58 if (!snappy::RawUncompress(compressed, compressed_length, uncompressed)) {
59 return SNAPPY_INVALID_INPUT;
61 *uncompressed_length = real_uncompressed_length;
65 size_t snappy_max_compressed_length(
size_t source_length) {
66 return snappy::MaxCompressedLength(source_length);
69 snappy_status snappy_uncompressed_length(
const char *compressed,
70 size_t compressed_length,
72 if (snappy::GetUncompressedLength(compressed,
77 return SNAPPY_INVALID_INPUT;
81 snappy_status snappy_validate_compressed_buffer(
const char *compressed,
82 size_t compressed_length) {
83 if (snappy::IsValidCompressedBuffer(compressed, compressed_length)) {
86 return SNAPPY_INVALID_INPUT;