template class Core::IO::Array

Overview

Template class for element-based buffers. More…

#include <corebuffer.h>

template <class T>
class Array: protected Core::IO::Buffer
{
public:
    // construction

    Array (T* buffer = nullptr, uint32 size = 0, bool copy = true);
    Array (uint32 size, bool initWithZero = true);

    // methods

    bool resize (uint32 newSize);
    void zeroFill ();
    INLINE T* getAddress ();
    INLINE const T* getAddress () const;
    INLINE uint32 getSize () const;
    INLINE operator T* ();
    INLINE operator const T * () const;
    INLINE T& operator [] (int index);
    INLINE const T& operator [] (int index) const;
};

Inherited Members

public:
    // methods

    Buffer& take (Buffer& buffer);
    void* getAddress ();
    const void* getAddress () const;
    void* getAddressAligned ();
    const void* getAddressAligned () const;
    bool isNull () const;
    uint32 getSize () const;
    uint32 getAlignment () const;
    bool resize (uint32 newSize);
    void setAlignment (uint32 alignment);
    bool setValidSize (uint32 newSize);
    void zeroFill ();
    void byteFill (uint8 value);
    uint32 copyFrom (const void* src, uint32 srcSize);
    uint32 copyFrom (uint32 dstOffset, const void* src, uint32 srcSize);
    uint32 copyTo (void* dst, uint32 dstSize) const;

    template  <class T>
    T* as ();

    template  <class T>
    const T* as () const;

    operator void * ();
    operator char * ();
    operator const void * () const;
    operator const char * () const;
    bool operator == (const Buffer& buffer) const;

Detailed Documentation

Template class for element-based buffers.

Construction

Array (T* buffer = nullptr, uint32 size = 0, bool copy = true)

[HEAVY/LIGHT] Construct array with existing data.

Copies or just wraps the data.

Array (uint32 size, bool initWithZero = true)

[HEAVY] Construct array with given size.

Always allocates a new heap block.

Methods

bool resize (uint32 newSize)

Resize array to given number of elements.

void zeroFill ()

Fill array with zeros.

INLINE T* getAddress ()

Get array start address (writable).

INLINE const T* getAddress () const

Get array start address (read-only).

INLINE uint32 getSize () const

Get array size, i.e.

max. number of elements.