class Core::Portable::ZlibReadStream

Overview

Stream with “on demand” decompression. More…

#include <corezipstream.h>

class ZlibReadStream:
    public Core::IO::Stream,
    public Core::IO::BufferProvider
{
public:
    // construction

    ZlibReadStream(int windowBits = 15);

    // methods

    PROPERTY_VARIABLE(int, uncompressedSize, UncompressedSize) bool copyFromSource(IO void initFromMemory(
        const void* sourceAddress,
        int compressedSize
    );

    virtual int64 getPosition();
    virtual int64 setPosition(int64 pos, int mode);
    virtual int readBytes(void* buffer, int size);
    virtual int writeBytes(const void* buffer, int size);
    virtual BufferProvider* getBufferProvider();
    virtual void moveBufferTo(IO::Buffer& buffer);
};

Inherited Members

public:
    // fields

    static const InterfaceID kIID = FOUR_CHAR_ID('B','S','t','r');

    // methods

    virtual int64 getPosition() = 0;
    virtual int64 setPosition(int64 pos, int mode) = 0;
    virtual int readBytes(void* buffer, int size) = 0;
    virtual int writeBytes(const void* buffer, int size) = 0;
    virtual BufferProvider* getBufferProvider();
    virtual void moveBufferTo(Buffer& buffer) = 0;

Detailed Documentation

Stream with “on demand” decompression.

Methods

PROPERTY_VARIABLE(int, uncompressedSize, UncompressedSize) bool copyFromSource(IO void initFromMemory(
    const void* sourceAddress,
    int compressedSize
)

< copy compressed data from source

does not copy memory!

virtual int64 getPosition()

Get current read/write position.

virtual int64 setPosition(int64 pos, int mode)

Set current read/write position.

See also:

SeekMode

virtual int readBytes(void* buffer, int size)

Read data from stream.

Returns:

number of bytes read or -1 for error

virtual int writeBytes(const void* buffer, int size)

Write data to stream.

Returns:

number of bytes written or -1 for error

virtual BufferProvider* getBufferProvider()

Provide access to underlying buffer (optional).

virtual void moveBufferTo(IO::Buffer& buffer)

Transfer memory ownership to given buffer.