class CCL::MemoryStream

Overview

#include <memorystream.h>

class MemoryStream:
    public CCL::Unknown,
    public CCL::IMemoryStream,
    public Core::IO::MemoryStream
{
public:
    // construction

    MemoryStream (uint32 memoryGrow = kDefaultGrow);
    MemoryStream (void* buffer, unsigned int size);
    MemoryStream (const MemoryStream& ms);

    // methods

    virtual int CCL_API read (void* buffer, int size);
    virtual int CCL_API write (const void* buffer, int size);
    virtual int64 CCL_API tell ();
    virtual tbool CCL_API isSeekable () const;
    virtual int64 CCL_API seek (int64 pos, int mode);
    virtual void*CCL_API getMemoryAddress () const;
    virtual uint32 CCL_API getBytesWritten () const;
    virtual tbool CCL_API setBytesWritten (uint32 bytesWritten);
    virtual tbool CCL_API allocateMemoryForStream (uint32 size);
};

Inherited Members

public:
    // enums

    enum OpenMode;
    enum SeekMode;

    // fields

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

    // methods

    virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
    virtual unsigned int CCL_API retain () = 0;
    virtual unsigned int CCL_API release () = 0;
    Unknown& operator = (const Unknown&);
    unsigned int getRetainCount () const;
    virtual int CCL_API read (void* buffer, int size) = 0;
    virtual int CCL_API write (const void* buffer, int size) = 0;
    virtual int64 CCL_API tell () = 0;
    virtual tbool CCL_API isSeekable () const = 0;
    virtual int64 CCL_API seek (int64 pos, int mode) = 0;
    IStream bool rewind ();
    virtual void*CCL_API getMemoryAddress () const = 0;
    virtual uint32 CCL_API getBytesWritten () const = 0;
    virtual tbool CCL_API setBytesWritten (uint32 bytesWritten) = 0;
    virtual tbool CCL_API allocateMemoryForStream (uint32 size) = 0;
    IMemoryStream bool writeTo (IStream& dstStream) const;
    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;
    MemoryStream& take (MemoryStream& ms);
    MemoryStream& take (Buffer& buffer);
    bool copyFrom (const MemoryStream& ms);
    bool allocateMemory (uint32 size, bool initWithZero = false);
    const Buffer& getBuffer () const;
    uint32 getMemoryGrow () const;
    void setMemoryGrow (uint32 memoryGrow);
    uint32 getBytesWritten () const;
    bool setBytesWritten (uint32 bytesWritten);
    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 (Buffer& buffer);

Detailed Documentation

Methods

virtual int CCL_API read (void* buffer, int size)

Read data from stream.

virtual int CCL_API write (const void* buffer, int size)

Write data to stream.

virtual int64 CCL_API tell ()

Get current stream position in bytes.

virtual tbool CCL_API isSeekable () const

Returns true if stream is seekable.

virtual int64 CCL_API seek (int64 pos, int mode)

Move current stream position.

virtual void*CCL_API getMemoryAddress () const

Returns current memory base address, might change when resizing!

virtual uint32 CCL_API getBytesWritten () const

Returns number of bytes written to stream.

virtual tbool CCL_API setBytesWritten (uint32 bytesWritten)

Set number of bytes written to stream.

virtual tbool CCL_API allocateMemoryForStream (uint32 size)

Allocate memory of given size.