LBBase

LBBase is an abstract base class for layered buffer objects (e.g. LayerBuf, LayerArrBuf).

It is completely virtual:

class LBBase {
public:
    virtual void createLayer() = 0;
    virtual void freeLayer(uint iIndex) = 0;
    virtual void freeAllLayers() = 0;

    virtual uint getNumLayers() const = 0;
    virtual uint getLayerSize() const = 0;
    virtual void elementShift(uint iTo, uint iFrom) = 0;
    virtual void moveElements(uint iToLayer, uint iToIndex,
                              uint iFromLayer, uint iFromIndex,
                              uint iNum) = 0;

};
Code:

Public Methods

createLayer

virtual void createLayer() = 0;

Create a new layer or reuse anexisting free one.

freeLayer

virtual void freeLayer(uint iIndex) = 0;

Mark the layer as unused ot delete it if the strategy requires it.

iIndex

Index of the layer to be freed.

freeAllLayers

virtual void freeAllLayers() = 0;

Frees all layers and deletes them if necessary.

getNumLayers

virtual uint getNumLayers() const = 0;

Returns number of free layers.

getLayerSize

virtual uint getLayerSize() const = 0;

Returns layer size.

elementShift

virtual void elementShift(uint iTo, uint iFrom) = 0;

Moves an element to a different location.

iTo

Destination index.

iFrom

Original index of elemen,.

moveElements

virtual void moveElements(uint iToLayer, uint iToIndex, uint iFromLayer, uint iFromIndex, uint iNum) = 0;

Move iNum elements to a different location.

iToLayer

Index of destination layer.

iToIndex

Destination index in destination layer.

iFromLayer

Index of orignal layer.

iFromIndex

Original index of first element in original layer.

iNum

Number of elements to move.