Boost logo

Boost Users :

Subject: Re: [Boost-users] Compress to buffer
From: Kenneth Adam Miller (kennethadammiller_at_[hidden])
Date: 2014-01-14 10:59:32


I figured out how to do it:
filtering_ostream fos;
fos.push(back_insert_device<string>(x));

On Tue, Jan 14, 2014 at 9:09 AM, Kenneth Adam Miller <
kennethadammiller_at_[hidden]> wrote:

> So, I found that I could use a array_sink and pass it the location and
> size of an array to use. But now I need to know, when bytes are written in,
> how much is written into it in order that I can get that exact data out. I
> also need to make sure that, in the case of something like not enough space
> occurring, I can still get the rest of the data compressed.
>
> Is there anything that I can pass to an array_sink initializer other than
> a char * pointer that might help me accomplish this?
>
>
> On Tue, Jan 14, 2014 at 8:20 AM, Kenneth Adam Miller <
> kennethadammiller_at_[hidden]> wrote:
>
>> I have an object for which operator << is defined, myobj.
>>
>> I want to compress into a buffer, and I know that this can be done with
>> boost. I would prefer a buffer that dynamically resizes, but that only
>> allocates new space, preferably treating discontiguous space brought on by
>> new allocations as though the whole buffer was one piece; I don't want to
>> find that it's copying data at all. So vector won't work as a buffer;
>> there's no need for it to be contiguous, just as fast as possible.
>>
>> I've been trying to do this with filtering_istreambuf by pushing a
>> bzip2_compressor (any compression filter will work). So far, it's giving me
>> a lot of trouble. I did find an example where a string was passed to a
>> function, but they went through a process where they first moved the string
>> into an stringstream. I don't want to settle for that extra copy either.
>>
>> What would be nice is to be able to do something like
>>
>> compressor << myobj
>>
>> compressor.buf(); //returns compressed myobj output
>>
>
>



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