Stream classes ... design, pattern for creating views over streams

Posted by ToxicAvenger on Stack Overflow See other posts from Stack Overflow or by ToxicAvenger
Published on 2010-05-05T08:19:28Z Indexed on 2010/05/05 8:48 UTC
Read the original article Hit count: 267

Filed under:
|
|

A question regarding the design of stream classes - I need a pattern to create independent views over a single stream instance (in my case for reading). A view would be a consecutive part of the stream. The problem I have with the stream classes is that the state (reading or writing) is coupled with the underlying data/storage.

So if I need to partition a stream into different segments (whether segments overlap or not doesn't matter), I cannot easily create views over the stream, the views would store start and end position. Because reading from a view - which would translate to reading from the underlying stream adjusted based on the start/end positions - would change the state of the underlying stream instance. So what I could do is take a read on a view instance, adjust the Position of the stream, read the chunks I need. But I cannot do that concurrently.

Why is it designed in such a way, and what kind of pattern could I implement to create independet views over a single stream instance which would allow to read/write independently (and concurrently)?

© Stack Overflow or respective owner

Related posts about design-patterns

Related posts about stream