|
Boost Users : |
From: Pfligersdorffer, Christian (Christian.Pfligersdorffer_at_[hidden])
Date: 2007-03-08 02:32:54
boost-users-bounces_at_[hidden] wrote:
> Pfligersdorffer, Christian wrote:
>> Hello all!
>>
>> I face the problem of partitioning a file that i read with
> ifstream into portions that are to be processed by some
> clients. I want to ensure that a client only views a specific
> part (window, range) of the stream. So far I store 2
> streamoffsets posStart and posEnd, call seekg on the stream,
> pass it to the client by ref and rely on the client to check
> when it reached posEnd.
>>
>> However, I certainly cannot copy the whole range into a new
> stream object and pass that one. Efficiency does matter.
>>
>> Any suggestions? Maybe some iterator-magic can be done?
>
> How about Boost.Spirit file_iterator?
> That is a read-only RandomAccessIterator for files.
> http://spirit.sourceforge.net/distrib/spirit_1_8_3/libs/spirit
> /doc/file_iterator.html
Hello Shunsuke,
that's a good idea but unfortunately I cannot use this class in my case. I have some special decoding ifstreams doing decompression and the like. So I'd really need an iterator that takes an i(f)stream object in it's constructor and wraps that.
Thanks anyway!
-- Christian Pfligersdorffer Dipl.-Ing. Bakk.rer.nat. Software Engineering EOS GmbH - Electro Optical Systems Robert-Stirling-Ring 1 D-82152 Krailling / Munich Phone +49 89 893 36-229 Fax +49 89 893 36-287 christian.pfligersdorffer_at_[hidden] http://www.eos.info
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