On 8/03/2022 16:00, Robert Dodier wrote:
I'm interested in working with an input stream which comprises
multiple input streams. The resulting stream comprises all of the
input from the first stream (until EOF), then all of the input from
the second, etc. For what it's worth, such an input stream is called a
concatenated input stream in at least one other context (namely Common
Lisp).

The input streams in question are file input streams, although
conceptually I don't know if that changes anything. I am hoping to
find something equivalent to

$ cat file1 file2 file3 ... > alldata

and then reading alldata.

Is there a Boost class which implements such a thing? I know that this
is a pretty simple concept, and therefore it's just a small matter of
programming, but I'm hoping that someone has already worked out the
details.

It's not streams, but you might find this (and related) of interest (in particular the scatter/gather section right at the bottom):


https://www.boost.org/doc/libs/1_78_0/doc/html/boost_asio/reference/buffer.html

Having said that, while ASIO does provide file streams as well, this is sort of opposite to your use case, and it doesn't directly address what you're looking for. Still, it would be possible to use similar techniques to write your own multi-stream that could be read as if it were one stream.

Although writing ASIO integrations is not for the faint of heart, so this is likely overkill unless you're already wanting to mix in ASIO for other reasons.
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
https://lists.boost.org/mailman/listinfo.cgi/boost-users

Reply via email to