Boost logo

Boost Users :

Subject: Re: [Boost-users] [boost::iostreams] How to get number of bytes written?
From: eg (egoots_at_[hidden])
Date: 2008-11-27 14:48:41

Milan Svoboda wrote:
> Hi All,
> I'm using boost::iostreams and its filters to compress and decompress data.
> However I'm not able to retrieve number of bytes really written (number of
> bytes after a compression).
> Does anybody know how to do that?
> I'm currently using following code:
> coffset if offset to where start with writing of compressed data and after
> call it shall contain the length of the file. This works good to get length
> of the compressed block unless block of data is written somewhere in the
> middle of the file thus end of file is not the same as the last offset
> where compressed data has been written to.
> io::file_descriptor file(fd);
>, ios_base::beg);
> {
> io::filtering_ostream out;
> // Push the compression filter (bl->type.push(out);)
> out.push(file);
> io::write(out, buf, length);
> // Destroying the object 'out' causes all filters to
> // flush.
> }
> // Update raw length of the file.
> //
> coffset =, ios_base::end);

Maybe I dont quite understand the problem...
Could you just write a simple pass-through filter which counts the bytes
only? Something like:

     io::filtering_ostream out;
     out.push(passthru()); // <- this just counts bytes

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at