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.