Mercurial > hg > orthanc
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 } |