On 10/03/2011 04:53, dsimcha wrote:
<snip>
I'd like to get some comments on what an appropriate API design and 
implementation for
writing gzipped files would be. Two key requirements are that it must be as 
easy to use as
std.stdio.File and it must be easy to extend to support other single-file 
compression
formats like bz2.

You don't seem to get how std.stream works.

The API is defined in the InputStream and OutputStream interfaces. Various classes implement this interface, generally through the Stream abstract class, to provide the functionality for a specific kind of stream. File is just one of these classes. Another is MemoryStream, to read to and write from a buffer in memory. A stream class used to work with gzipped files would be just another.

Indeed, we have FilterStream, which is a base class for stream classes that wrap a stream, such as a file or memory stream, to modify the data in some way as it goes in and out. Compressing or decompressing is an example of this - so I guess that GzipStream would be a subclass of FilterStream.

Stewart.

Reply via email to