| 1 | void GzipDecompression::Decompress(const unsigned char * src, int length)
|
|---|
| 2 | {
|
|---|
| 3 | if(src)
|
|---|
| 4 | {
|
|---|
| 5 | // Create an input-stream source for the data buffer so we can used the boost filtering buffer
|
|---|
| 6 | std::ifstream inputstream;
|
|---|
| 7 | typedef boost::iostreams::basic_array_source<char> Device;
|
|---|
| 8 | boost::iostreams::stream_buffer<Device> buffer((char *)src, length);
|
|---|
| 9 |
|
|---|
| 10 | // Inflate using the GZIP filter
|
|---|
| 11 | filtering_streambuf<input> in;
|
|---|
| 12 | in.push(gzip_decompressor());
|
|---|
| 13 | in.push(buffer);
|
|---|
| 14 |
|
|---|
| 15 | // Get the result into a vector
|
|---|
| 16 | boost::interprocess::basic_vectorstream<std::vector<char>> vectorStream;
|
|---|
| 17 | copy(in, vectorStream);
|
|---|
| 18 | std::vector<char> output(vectorStream.vector());
|
|---|
| 19 | }
|
|---|
| 20 | }
|
|---|
| 21 |
|
|---|
| 22 | error C2243: 'type cast' : conversion from 'boost::interprocess::basic_vectorstream<CharVector> *' to 'volatile const std::basic_streambuf<_Elem,_Traits> *' exists, but is inaccessible c:\boost\boost_1_55_0\boost\iostreams
|
|---|