OLZlibInStream Class Reference
[Streams]

A stream for zlib decompression. More...

#import <ObjectiveLib/ZlibInStream.h>

Inheritance diagram for OLZlibInStream:

Inheritance graph
[legend]
List of all members.

Public Member Functions

(void) - close
 Close the stream.
(void) - freeStreamResources
 Free the stream's resources.
(unsigned) - readBytes:count:
 Read a sequence of bytes from the stream.
Initializers and Deallocators
(id) - initWithInStream:
 Initialize the stream.
(id) - initWithInStream:bufferSize:
 Initialize the stream.
(id) - initWithInStream:bufferSize:readZlibHeader:
 Initialize the stream.

Static Public Member Functions

(id) + streamWithInStream:
 Create and return a newly created stream.

Protected Attributes

uint8_t * buffer
 The buffer required by zlib.
unsigned bufferSize
 The size of the zlib buffer.
z_stream_s * zstream
 The opaque data type used by zlib to represent the stream.

Detailed Description

A stream for zlib decompression.

This is a concrete layered stream that decompresses all data read using the library zlib. It is suitable for reading data compressed with OLZlibOutStream.

See also:
OLZlibOutStream


Member Function Documentation

- (void) close  

Close the stream.

After receiving this message the stream will no long be available for reading.

Exceptions:
OLInputOutputException if there is an error closing the stream

Reimplemented from OLLayeredInStream.

- (void) freeStreamResources  

Free the stream's resources.

This secondary freeing method is necessary to allow the reference count to be properly manipulated from within the normal free (OLReferenceCountedStream) method.

Note:
All sublcasses that allocate resources must implement this method to free those resources and call [super freeStreamResources].

Reimplemented from OLLayeredInStream.

Reimplemented in OLGzipInStream.

- (id) initWithInStream: (OLInStream *)  underStream  

Initialize the stream.

The stream is created with a buffer size of 1,024. The given stream underStream will become the next layer down in the stack of streams.

Exceptions:
OLInputOutputException if the stream cannot be created for inflation
Parameters:
underStream the stream from which to read data
Returns:
a reference to this stream

Reimplemented from OLLayeredInStream.

- (id) initWithInStream: (OLInStream *)  underStream
bufferSize: (unsigned)  size 

Initialize the stream.

The stream is created with the given buffer size. The given stream underStream will become the next layer down in the stack of streams.

Exceptions:
OLInputOutputException if the stream cannot be created for inflation
Parameters:
underStream the stream from which to read data
size the buffer size
Returns:
a reference to this stream

- (id) initWithInStream: (OLInStream *)  underStream
bufferSize: (unsigned)  size
readZlibHeader: (BOOL)  zlibHeader 

Initialize the stream.

The stream is created with the given buffer size. The given stream underStream will become the next layer down in the stack of streams. If zlibHeader is YES, then the stream will attempt to read the zlib header.

Attention:
You probably do not want to use this initializer. This initializer exists so that subclasses will have maximum control over how the zstream is created. Do not use this initializer unless you know what you are doing.
Exceptions:
OLInputOutputException if the stream cannot be created for inflation
Parameters:
underStream the stream from which to read data
size the buffer size
zlibHeader should be YES if the zlib header should be read from the stream, otherwise NO
Returns:
a reference to this stream

Reimplemented in OLGzipInStream.

- (unsigned) readBytes: (uint8_t *)  dest
count: (unsigned)  max 

Read a sequence of bytes from the stream.

Bytes are decompressed up to the value of max and the number decompressed is returned. If no more bytes are available from the stream, then UINT_MAX is returned.

Exceptions:
OLInputOutputException if there is an error reading from the stream
Parameters:
dest the address to which the bytes should be read
max the maximum number bytes that should be read
Returns:
the number of bytes read or UINT_MAX if no bytes could be read

Reimplemented from OLLayeredInStream.

Reimplemented in OLGzipInStream.

+ (id) streamWithInStream: (OLInStream *)  underStream  

Create and return a newly created stream.

The stream is created with a buffer size of 1,024. The given stream underStream will become the next layer down in the stack of streams.

Note:
If OpenStep is present the returned object will be autoreleased before being returned.
Exceptions:
OLInputOutputException if the stream cannot be created for inflation
Parameters:
underStream the stream from which to read data
Returns:
a reference to a newly created stream

Reimplemented in OLGzipInStream.


Member Data Documentation

- (uint8_t*) buffer [protected]

The buffer required by zlib.

- (unsigned) bufferSize [protected]

The size of the zlib buffer.

- (struct z_stream_s*) zstream [protected]

The opaque data type used by zlib to represent the stream.


The documentation for this class was generated from the following file:
ObjectiveLibGenerated Sun Apr 22 15:19:12 2007, © 2004-2007 Will Mason
SourceForge.net Logo