comparison Core/Compression/DeflateBaseCompressor.cpp @ 1513:fe07f82d83d3

gzip compression
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 10 Aug 2015 16:01:37 +0200
parents 52dc56bcec7d
children bd1889029cbb
comparison
equal deleted inserted replaced
1512:52dc56bcec7d 1513:fe07f82d83d3
33 #include "../PrecompiledHeaders.h" 33 #include "../PrecompiledHeaders.h"
34 #include "DeflateBaseCompressor.h" 34 #include "DeflateBaseCompressor.h"
35 35
36 #include "../OrthancException.h" 36 #include "../OrthancException.h"
37 37
38 #include <string.h>
39
38 namespace Orthanc 40 namespace Orthanc
39 { 41 {
40 void DeflateBaseCompressor::SetCompressionLevel(uint8_t level) 42 void DeflateBaseCompressor::SetCompressionLevel(uint8_t level)
41 { 43 {
42 if (level >= 10) 44 if (level >= 10)
44 throw OrthancException("Zlib compression level must be between 0 (no compression) and 9 (highest compression"); 46 throw OrthancException("Zlib compression level must be between 0 (no compression) and 9 (highest compression");
45 } 47 }
46 48
47 compressionLevel_ = level; 49 compressionLevel_ = level;
48 } 50 }
51
52
53 uint64_t DeflateBaseCompressor::ReadUncompressedSizePrefix(const void* compressed,
54 size_t compressedSize)
55 {
56 if (compressedSize == 0)
57 {
58 return 0;
59 }
60
61 if (compressedSize < sizeof(uint64_t))
62 {
63 throw OrthancException("The compressed buffer is ill-formed");
64 }
65
66 uint64_t size;
67 memcpy(&size, compressed, sizeof(uint64_t));
68
69 return size;
70 }
71
49 } 72 }