Boost logo

Boost Users :

Subject: Re: [Boost-users] [iostreams] Problem with gzip_decompressor
From: Brian Budge (brian.budge_at_[hidden])
Date: 2010-11-11 09:04:49


Hi Christian -

This is very interesting. What is the difference, if any, between
using the filtering_istream and using the filtering_ostream to do
compression and decompression? Is there a performance benefit? Is
there a conceptually "right" way of doing it? As I mentioned earllier
on the thread, I'm using filtering_ostream for both compression and
decompression; is this adhering to the library design?

Thanks,
  Brian

On Thu, Nov 11, 2010 at 3:49 AM, Pfligersdorffer, Christian
<Christian.Pfligersdorffer_at_[hidden]> wrote:
> Hi Chenwj,
>
> boost-users-bounces_at_[hidden] on Wednesday, November 10, 2010 9:43
> AM:
>
>> Dear all,
>>
>>   Some compressed data was stored in a vector<char> buf
>> (don't know if it's a right way to store compressed data). I
>> used the "buf" as a source, and tried to add a
>> gzip_decompressor to restore those data. I have tried the
>> following approach, but it doesn't work.
>>
>>   vector<char> buf;
>>
>>   /* fill in the buf */
>>
>>   namespace io = boost::iostreams;
>>   io::filtering_istream in(boost::make_iterator_range(buf));
>>   in.push(io::gzip_decompressor());
>>
>> What I got is an exception,
>>
>>   terminate called after throwing an instance of
>>
>> 'boost::exception_detail::clone_impl<boost::exception_detail::
>>   error_info_injector <std::logic_error>>'
>>   what():  chain complete
>>   Aborted
>>
>>   How can I compose a source which comes from a container,
>> and add a gzip_decompressor to the source? Thanks in advance.
>>
>> Regards,
>> chenwj
>
> it seems to me that "chain complete" is a very precise complaint. To use
> the filtering_istream you have to reverse natural order and push the
> source last. Simply try
>
> io::filtering_istream in;
> in.push(io::gzip_decompressor());
> in.push(boost::make_iterator_range(buf));
>
> Hope that helps,
>
> --
> Christian Pfligersdorffer
> Software Engineering
> http://www.eos.info
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net