Murl::ObjectArray< DataType > Class Template Reference

A generic array template class for non-moveable objects eg. NonCopyable classes. More...

#include "murl_object_array.h"

Classes

class  ConstIterator
 Definition of the const iterator. More...
 
class  Iterator
 Definition of the iterator. More...
 

Public Types

typedef DataType ValueType
 The template parameter value type. More...
 

Public Member Functions

 ObjectArray ()
 Construct an empty array.
 
 ObjectArray (const ObjectArray &other)
 Construct an array from an already existing one, performing a deep copy. More...
 
 ~ObjectArray ()
 Destroy the array and all of its contents.
 
void operator= (const ObjectArray &other)
 Assign the content of another array to this one, performing a deep copy. More...
 
void Clear ()
 Clear the array and remove the underlying storage.
 
void Empty ()
 Empty the array, but keep the underlying storage.
 
void Shrink ()
 Shrink the array so that the underlying storage is only as large as necessary.
 
Bool Trim (SInt32 n)
 Reduce the array to a given number of items. More...
 
Bool Drop (SInt32 n=1)
 Reduce the array by removing a given number of items from the end. More...
 
void Reserve (SInt32 n)
 Reserve storage space. More...
 
Bool SetCount (SInt32 n)
 Set the actual number of items in the array. More...
 
Bool SetCount (SInt32 n, const DataType &item)
 Set the actual number of items in the array. More...
 
Bool SetCountAndReserve (SInt32 n)
 Set the actual number of items in the array and reserve extra storage space. More...
 
Bool SetCountAndReserve (SInt32 n, const DataType &item)
 Set the actual number of items in the array and reserve extra storage space. More...
 
DataType & Set (SInt32 index, const DataType &item)
 Initialize an item with a given item. More...
 
DataType & Set (SInt32 index, DataType *item)
 Set a new allocated item at a given position. More...
 
Bool Set (SInt32 index, const DataType &item, SInt32 count)
 Initialize a range of items with a given item. More...
 
void Fill (const DataType &item)
 Fill all items with a given item. More...
 
void Swap (SInt32 index1, SInt32 index2)
 Swap two array items. More...
 
void Move (SInt32 source, SInt32 dest)
 Move an item from a source position to a destination position. More...
 
DataType & Add ()
 Add a new item at the end of the array. More...
 
DataType & Add (const DataType &item)
 Add a given item at the end of the array. More...
 
DataType & Add (DataType *item)
 Add a new allocated item at the end of the array. More...
 
template<class DataTypeT >
DataTypeT & Create ()
 Create and add an item at the end of the array. More...
 
Bool Add (const ObjectArray &other)
 Add a given array of items at the end of the array. More...
 
Bool Add (const ObjectArray &other, int offset, int count)
 Add a subset of given array of items at the end of the array. More...
 
DataType & Insert (SInt32 index)
 Insert a new item at a given position. More...
 
DataType & Insert (SInt32 index, const DataType &item)
 Insert a given item at a given position. More...
 
DataType & Insert (SInt32 index, DataType *item)
 Insert a new allocated item at a given position. More...
 
Bool Insert (SInt32 index, const DataType &item, SInt32 count)
 Insert a number of copies of a given item at a given position. More...
 
Bool InsertN (SInt32 index, SInt32 count=1)
 Insert a given number of new items at a given position. More...
 
Bool Insert (SInt32 index, const ObjectArray &other)
 Insert a given array of items at a given position. More...
 
Bool Insert (SInt32 index, const ObjectArray &other, SInt32 offset, SInt32 count)
 Insert a subset of given array of items at a given position. More...
 
Bool Remove (SInt32 index, SInt32 count=1)
 Remove (and destroy) a number of items at a given position. More...
 
void Remove (const SInt32 *sortedIndices, SInt32 count)
 Remove (and destroy) a number of items at given positions. More...
 
void Remove (const SInt32Array &sortedIndices)
 Remove (and destroy) a number of items at given positions. More...
 
SInt32 Find (const DataType &item) const
 Find the first occurrence of a given item in the array. More...
 
SInt32 Find (const DataType &item, SInt32 firstIndex) const
 Find the first occurrence of a given item in the array. More...
 
SInt32 FindLast (const DataType &item) const
 Find the last occurrence of a given item in the array. More...
 
SInt32 FindLast (const DataType &item, SInt32 lastIndex) const
 Find the last occurrence of a given item in the array. More...
 
DataType & Bottom ()
 Retrieve the first item from the array. More...
 
const DataType & Bottom () const
 Retrieve the first item from the array. More...
 
DataType & Top ()
 Retrieve the last item from the array. More...
 
const DataType & Top () const
 Retrieve the last item from the array. More...
 
DataType & At (SInt32 index)
 Retrieve the item at a given position from the array. More...
 
DataType & At (SInt32 index, const DataType &item)
 Retrieve the item at a given position from the array. More...
 
SInt32 GetCount () const
 Get the number of items in the array. More...
 
Bool IsEmpty () const
 Check if the array is empty. More...
 
SInt32 GetAlloc () const
 Get the number of actually allocated items. More...
 
Bool IsEqual (const ObjectArray &other) const
 Compare the array to another one. More...
 
Bool IsIndexValid (SInt32 index) const
 Check if a given index is a valid index. More...
 
DataType & operator[] (SInt32 index)
 Retrieve the item at a given position from the array. More...
 
const DataType & operator[] (SInt32 index) const
 Retrieve the item at a given position from the array. More...
 
DataType & Get (SInt32 index)
 Get the item at a given position from the array. More...
 
const DataType & Get (SInt32 index) const
 Get the item at a given position from the array. More...
 
DataType * Detach (SInt32 index)
 Removes the item at a given position and giving up ownership. More...
 
DataType * PopDetach ()
 Removes the item at the top position and giving up ownership. More...
 
DataType * Swap (SInt32 index, DataType *newItem)
 Swap the item at a given position with a new allocated item. More...
 
void Swap (ObjectArray &other)
 Exchange the content of the array with a given second one. More...
 
ConstIterator Begin () const
 Get the const iterator to the first item. More...
 
ConstIterator End () const
 Get the const iterator next to the last item. More...
 
ConstIterator GetIter (SInt32 index) const
 Get the const iterator of a specified index. More...
 
SInt32 GetIterIndex (ConstIterator iterator) const
 Get the item index by iterator. More...
 
Iterator Begin ()
 Get the iterator to the first item. More...
 
Iterator End ()
 Get the iterator next to the last item. More...
 
Iterator GetIter (SInt32 index)
 Get the iterator of a specified index. More...
 

Detailed Description

template<class DataType>
class Murl::ObjectArray< DataType >

A generic array template class for non-moveable objects eg. NonCopyable classes.

The object array class uses an array of pointers to the objects, this ensures that the object's memory location is unchanged when modifying the array.
This class is based on the NTL Array container, see http://www.ultimatepp.org

Template Parameters
DataTypeThe value's data type of the array.

Member Typedef Documentation

◆ ValueType

template<class DataType>
typedef DataType Murl::ObjectArray< DataType >::ValueType

The template parameter value type.

Constructor & Destructor Documentation

◆ ObjectArray()

template<class DataType>
Murl::ObjectArray< DataType >::ObjectArray ( const ObjectArray< DataType > &  other)
inline

Construct an array from an already existing one, performing a deep copy.

Parameters
otherThe array to copy.

Member Function Documentation

◆ operator=()

template<class DataType>
void Murl::ObjectArray< DataType >::operator= ( const ObjectArray< DataType > &  other)
inline

Assign the content of another array to this one, performing a deep copy.

Parameters
otherThe source array.

◆ Trim()

template<class DataType>
Bool Murl::ObjectArray< DataType >::Trim ( SInt32  n)
inline

Reduce the array to a given number of items.

Parameters
nThe new number of items in the array, must be smaller than the current item count.
Returns
true if successful.

Referenced by Murl::ObjectArray< InAppPurchase >::Drop().

◆ Drop()

template<class DataType>
Bool Murl::ObjectArray< DataType >::Drop ( SInt32  n = 1)
inline

Reduce the array by removing a given number of items from the end.

Parameters
nThe number of items to remove from the end.
Returns
true if successful.

◆ Reserve()

template<class DataType>
void Murl::ObjectArray< DataType >::Reserve ( SInt32  n)
inline

Reserve storage space.

If the given size is less than the actual size, nothing is done.

Parameters
nThe number of items the underlying storage should hold.

◆ SetCount() [1/2]

template<class DataType>
Bool Murl::ObjectArray< DataType >::SetCount ( SInt32  n)
inline

Set the actual number of items in the array.

If the given number is smaller than the current size, the array is trimmed, and existing items beyond the new size are destroyed. If the given number is higher, new items are initialized via the value type's default constructor. If the given number is also higher than the underlying storage's capacity, the storage is enlarged to hold exactly the requested number of items.

Parameters
nThe new number of items in the array.
Returns
true if successful.

Referenced by Murl::Logic::GraphInstanceObjects< InstanceObjectType >::Init().

◆ SetCount() [2/2]

template<class DataType>
Bool Murl::ObjectArray< DataType >::SetCount ( SInt32  n,
const DataType &  item 
)
inline

Set the actual number of items in the array.

If the given number is smaller than the current size, the array is trimmed, and existing items beyond the new size are destroyed. If the given number is higher, new items are initialized via the given value's copy constructor. If the given number is also higher than the underlying storage's capacity, the storage is enlarged to hold exactly the requested number of items.

Parameters
nThe new number of items in the array.
itemThe value to initialize any newly added items with.
Returns
true if successful.

◆ SetCountAndReserve() [1/2]

template<class DataType>
Bool Murl::ObjectArray< DataType >::SetCountAndReserve ( SInt32  n)
inline

Set the actual number of items in the array and reserve extra storage space.

If the given number is smaller than the current size, the array is trimmed, and existing items beyond the new size are destroyed. If the given number is higher, new items are initialized via the value type's default constructor. If the given number is also higher than the underlying storage's capacity, the storage is enlarged and some extra capacity is added.

Parameters
nThe new number of items in the array.
Returns
true if successful.

Referenced by Murl::ObjectArray< InAppPurchase >::At(), and Murl::ObjectArray< InAppPurchase >::Set().

◆ SetCountAndReserve() [2/2]

template<class DataType>
Bool Murl::ObjectArray< DataType >::SetCountAndReserve ( SInt32  n,
const DataType &  item 
)
inline

Set the actual number of items in the array and reserve extra storage space.

If the given number is smaller than the current size, the array is trimmed, and existing items beyond the new size are destroyed. If the given number is higher, new items are initialized via the given value's copy constructor. If the given number is also higher than the underlying storage's capacity, the storage is enlarged and some extra capacity is added.

Parameters
nThe new number of items in the array.
itemThe value to initialize any newly added items with.
Returns
true if successful.

◆ Set() [1/3]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::Set ( SInt32  index,
const DataType &  item 
)
inline

Initialize an item with a given item.

Parameters
indexThe index of the item to set.
itemThe source item to copy.
Returns
A reference to the set item.

Referenced by Murl::ObjectArray< InAppPurchase >::Fill(), and Murl::ObjectArray< InAppPurchase >::Set().

◆ Set() [2/3]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::Set ( SInt32  index,
DataType *  item 
)
inline

Set a new allocated item at a given position.

The array takes the ownership of the item.

Parameters
indexthe zero-based index where the new item should be set.
itemThe given item to be set.
Returns
A reference to the item.

◆ Set() [3/3]

template<class DataType>
Bool Murl::ObjectArray< DataType >::Set ( SInt32  index,
const DataType &  item,
SInt32  count 
)
inline

Initialize a range of items with a given item.

Parameters
indexThe index of the first item to set.
itemThe source item to copy.
countThe number of items to set.
Returns
true if successful.

◆ Fill()

template<class DataType>
void Murl::ObjectArray< DataType >::Fill ( const DataType &  item)
inline

Fill all items with a given item.

Parameters
itemThe source item to copy.

◆ Swap() [1/3]

template<class DataType>
void Murl::ObjectArray< DataType >::Swap ( SInt32  index1,
SInt32  index2 
)
inline

Swap two array items.

Parameters
index1The index of the first item.
index2The index of the second item.

◆ Move()

template<class DataType>
void Murl::ObjectArray< DataType >::Move ( SInt32  source,
SInt32  dest 
)
inline

Move an item from a source position to a destination position.

Removes the item at the source position and inserts it at the destination position without using the copy constructor.

Parameters
sourceThe index of the item to move.
destThe destination index to insert the item.

◆ Add() [1/5]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::Add ( )
inline

Add a new item at the end of the array.

The new item entry is initialized using the value type's default constructor.

Returns
A reference to the newly created item.

Referenced by Murl::ObjectArray< InAppPurchase >::Create().

◆ Add() [2/5]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::Add ( const DataType &  item)
inline

Add a given item at the end of the array.

The new item entry is initialized using the given item's copy constructor.

Parameters
itemThe given item to be inserted at the end of the array.
Returns
A reference to the newly created item.

◆ Add() [3/5]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::Add ( DataType *  item)
inline

Add a new allocated item at the end of the array.

The array takes the ownership of the item.

Parameters
itemThe given item to be inserted at the end of the array.
Returns
A reference to the item.

◆ Create()

template<class DataType>
template<class DataTypeT >
DataTypeT& Murl::ObjectArray< DataType >::Create ( )
inline

Create and add an item at the end of the array.

Template Parameters
DataTypeTThe type of object to create.
Returns
A reference to the newly created item.

◆ Add() [4/5]

template<class DataType>
Bool Murl::ObjectArray< DataType >::Add ( const ObjectArray< DataType > &  other)
inline

Add a given array of items at the end of the array.

The new item entries are initialized using the original items' copy constructors.

Parameters
otherThe given item array to be inserted.
Returns
true if successful.

◆ Add() [5/5]

template<class DataType>
Bool Murl::ObjectArray< DataType >::Add ( const ObjectArray< DataType > &  other,
int  offset,
int  count 
)
inline

Add a subset of given array of items at the end of the array.

The new item entries are initialized using the original items' copy constructors.

Parameters
otherThe given source item array.
offsetThe index into the source array specifying the first item to copy.
countThe number of source array items to copy.
Returns
true if successful.

◆ Insert() [1/6]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::Insert ( SInt32  index)
inline

Insert a new item at a given position.

The new item entry is initialized using the value type's default constructor.

Parameters
indexthe zero-based index where the new item should be inserted.
Returns
A reference to the newly created item.

Referenced by Murl::ObjectArray< InAppPurchase >::Add(), and Murl::ObjectArray< InAppPurchase >::Insert().

◆ Insert() [2/6]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::Insert ( SInt32  index,
const DataType &  item 
)
inline

Insert a given item at a given position.

The new item is initialized using the given item's copy constructor.

Parameters
indexthe zero-based index where the new item should be inserted.
itemThe given item to be inserted.
Returns
A reference to the newly created item.

◆ Insert() [3/6]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::Insert ( SInt32  index,
DataType *  item 
)
inline

Insert a new allocated item at a given position.

The array takes the ownership of the item.

Parameters
indexthe zero-based index where the new item should be inserted.
itemThe given item to be inserted.
Returns
A reference to the item.

◆ Insert() [4/6]

template<class DataType>
Bool Murl::ObjectArray< DataType >::Insert ( SInt32  index,
const DataType &  item,
SInt32  count 
)
inline

Insert a number of copies of a given item at a given position.

The new item entries are initialized using the given item's copy constructor.

Parameters
indexthe zero-based index where the new items should be inserted.
itemThe given item to be inserted.
countThe number of copies of the given item to insert.
Returns
true if successful.

◆ InsertN()

template<class DataType>
Bool Murl::ObjectArray< DataType >::InsertN ( SInt32  index,
SInt32  count = 1 
)
inline

Insert a given number of new items at a given position.

The new item entries are initialized using the value type's default constructor.

Parameters
indexthe zero-based index where the new items should be inserted.
countThe number of new items to be inserted.
Returns
true if successful.

Referenced by Murl::ObjectArray< InAppPurchase >::Insert().

◆ Insert() [5/6]

template<class DataType>
Bool Murl::ObjectArray< DataType >::Insert ( SInt32  index,
const ObjectArray< DataType > &  other 
)
inline

Insert a given array of items at a given position.

The new item entries are initialized using the original items' copy constructors.

Parameters
indexthe zero-based index where the new items should be inserted.
otherThe given item array to be inserted.
Returns
true if successful.

◆ Insert() [6/6]

template<class DataType>
Bool Murl::ObjectArray< DataType >::Insert ( SInt32  index,
const ObjectArray< DataType > &  other,
SInt32  offset,
SInt32  count 
)
inline

Insert a subset of given array of items at a given position.

The new item entries are initialized using the original items' copy constructors.

Parameters
indexthe zero-based index where the new items should be inserted.
otherThe given source item array.
offsetThe index into the source array specifying the first item to copy.
countThe number of source array items to copy.
Returns
true if successful.

◆ Remove() [1/3]

template<class DataType>
Bool Murl::ObjectArray< DataType >::Remove ( SInt32  index,
SInt32  count = 1 
)
inline

Remove (and destroy) a number of items at a given position.

Parameters
indexThe zero-based index from where to remove the items.
countThe number of items to remove.
Returns
true if successful.

Referenced by Murl::ObjectArray< InAppPurchase >::Remove().

◆ Remove() [2/3]

template<class DataType>
void Murl::ObjectArray< DataType >::Remove ( const SInt32 sortedIndices,
SInt32  count 
)
inline

Remove (and destroy) a number of items at given positions.

Parameters
sortedIndicesA pointer to sorted indices where to remove the items.
countThe number of items to remove, i.e. the number of indices.

◆ Remove() [3/3]

template<class DataType>
void Murl::ObjectArray< DataType >::Remove ( const SInt32Array sortedIndices)
inline

Remove (and destroy) a number of items at given positions.

Parameters
sortedIndicesA sorted array of indices where to remove the items.

◆ Find() [1/2]

template<class DataType>
SInt32 Murl::ObjectArray< DataType >::Find ( const DataType &  item) const
inline

Find the first occurrence of a given item in the array.

Parameters
itemThe item to find.
Returns
The index of the item, or -1 if the item was not found.

◆ Find() [2/2]

template<class DataType>
SInt32 Murl::ObjectArray< DataType >::Find ( const DataType &  item,
SInt32  firstIndex 
) const
inline

Find the first occurrence of a given item in the array.

Parameters
itemThe item to find.
firstIndexThe index where to start searching.
Returns
The index of the item, or -1 if the item was not found.

◆ FindLast() [1/2]

template<class DataType>
SInt32 Murl::ObjectArray< DataType >::FindLast ( const DataType &  item) const
inline

Find the last occurrence of a given item in the array.

Parameters
itemThe item to find.
Returns
The index of the item, or -1 if the item was not found.

◆ FindLast() [2/2]

template<class DataType>
SInt32 Murl::ObjectArray< DataType >::FindLast ( const DataType &  item,
SInt32  lastIndex 
) const
inline

Find the last occurrence of a given item in the array.

Parameters
itemThe item to find.
lastIndexThe index where to start searching.
Returns
The index of the item, or -1 if the item was not found.

◆ Bottom() [1/2]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::Bottom ( )
inline

Retrieve the first item from the array.

Returns
A reference to the first item.

◆ Bottom() [2/2]

template<class DataType>
const DataType& Murl::ObjectArray< DataType >::Bottom ( ) const
inline

Retrieve the first item from the array.

Returns
A const reference to the first item.

◆ Top() [1/2]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::Top ( )
inline

Retrieve the last item from the array.

Returns
A reference to the last item.

◆ Top() [2/2]

template<class DataType>
const DataType& Murl::ObjectArray< DataType >::Top ( ) const
inline

Retrieve the last item from the array.

Returns
A const reference to the last item.

◆ At() [1/2]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::At ( SInt32  index)
inline

Retrieve the item at a given position from the array.

If the given index is greater than the actual array size, the array is enlarged as needed, using the value type's default constructor for initializing.

Parameters
indexThe zero-based index of the item to retrieve.
Returns
A reference to the specified item.

◆ At() [2/2]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::At ( SInt32  index,
const DataType &  item 
)
inline

Retrieve the item at a given position from the array.

If the given index is greater than the actual array size, the array is enlarged as needed, using the given reference item's copy constructor for initializing.

Parameters
indexThe zero-based index of the item to retrieve.
itemThe reference item used for initialization.
Returns
A reference to the specified item.

◆ GetCount()

template<class DataType>
SInt32 Murl::ObjectArray< DataType >::GetCount ( ) const
inline

Get the number of items in the array.

Returns
The number of items.

Referenced by Murl::ObjectArray< InAppPurchase >::Add(), Murl::ObjectArray< InAppPurchase >::At(), Murl::Logic::GraphInstanceObjects< InstanceObjectType >::DeInit(), Murl::ObjectArray< InAppPurchase >::Drop(), Murl::ObjectArray< InAppPurchase >::Fill(), Murl::ObjectArray< InAppPurchase >::Find(), Murl::ObjectArray< InAppPurchase >::FindLast(), Murl::Logic::GraphInstanceObjects< InstanceObjectType >::GetInstance(), Murl::ObjectArray< InAppPurchase >::GetIter(), Murl::Logic::GraphInstanceObjects< InstanceObjectType >::GetNumberOfInstances(), Murl::Logic::GraphInstanceObjects< InstanceObjectType >::GetNumberOfRemaining(), Murl::Logic::GraphInstanceObjects< InstanceObjectType >::GetObtainedInstance(), Murl::ObjectArray< InAppPurchase >::Insert(), Murl::ObjectArray< InAppPurchase >::IsEqual(), Murl::Logic::GraphInstanceObjects< InstanceObjectType >::IsObtained(), Murl::Logic::GraphInstanceObjects< InstanceObjectType >::Obtain(), Murl::Logic::GraphInstanceObjects< InstanceObjectType >::ObtainAll(), Murl::Logic::GraphInstanceObjects< InstanceObjectType >::Release(), Murl::Logic::GraphInstanceObjects< InstanceObjectType >::ReleaseAll(), Murl::ObjectArray< InAppPurchase >::Remove(), Murl::ObjectArray< InAppPurchase >::Set(), Murl::Logic::GraphInstanceObjects< InstanceObjectType >::SetObtained(), Murl::ObjectArray< InAppPurchase >::Top(), Murl::ObjectArray< InAppPurchase >::Trim(), and Murl::Logic::GraphInstanceObjects< InstanceObjectType >::~GraphInstanceObjects().

◆ IsEmpty()

template<class DataType>
Bool Murl::ObjectArray< DataType >::IsEmpty ( ) const
inline

Check if the array is empty.

Returns
true if the array is empty, false otherwise.

Referenced by Murl::ObjectArray< InAppPurchase >::Insert().

◆ GetAlloc()

template<class DataType>
SInt32 Murl::ObjectArray< DataType >::GetAlloc ( ) const
inline

Get the number of actually allocated items.

Returns
The number of allocated items.

◆ IsEqual()

template<class DataType>
Bool Murl::ObjectArray< DataType >::IsEqual ( const ObjectArray< DataType > &  other) const
inline

Compare the array to another one.

Parameters
otherThe array to check against.
Returns
True if both arrays have identical contents.

◆ IsIndexValid()

template<class DataType>
Bool Murl::ObjectArray< DataType >::IsIndexValid ( SInt32  index) const
inline

Check if a given index is a valid index.

Parameters
indexThe index to check.
Returns
true if index >= 0 and index < GetCount().

◆ operator[]() [1/2]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::operator[] ( SInt32  index)
inline

Retrieve the item at a given position from the array.

Parameters
indexThe zero-based index of the item to retrieve.
Returns
A reference to the specified item.

◆ operator[]() [2/2]

template<class DataType>
const DataType& Murl::ObjectArray< DataType >::operator[] ( SInt32  index) const
inline

Retrieve the item at a given position from the array.

Parameters
indexThe zero-based index of the item to retrieve.
Returns
A const reference to the specified item.

◆ Get() [1/2]

template<class DataType>
DataType& Murl::ObjectArray< DataType >::Get ( SInt32  index)
inline

Get the item at a given position from the array.

Parameters
indexThe zero-based index of the item to retrieve.
Returns
A reference to the specified item.

◆ Get() [2/2]

template<class DataType>
const DataType& Murl::ObjectArray< DataType >::Get ( SInt32  index) const
inline

Get the item at a given position from the array.

Parameters
indexThe zero-based index of the item to retrieve.
Returns
A const reference to the specified item.

◆ Detach()

template<class DataType>
DataType* Murl::ObjectArray< DataType >::Detach ( SInt32  index)
inline

Removes the item at a given position and giving up ownership.

(!) The client is responsible for deletion of the returned item.

Parameters
indexThe zero-based index of the item to remove.
Returns
The pointer to the heap allocated item.

◆ PopDetach()

template<class DataType>
DataType* Murl::ObjectArray< DataType >::PopDetach ( )
inline

Removes the item at the top position and giving up ownership.

(!) The client is responsible for deletion of the returned item.

Returns
The pointer to the heap allocated item.

◆ Swap() [2/3]

template<class DataType>
DataType* Murl::ObjectArray< DataType >::Swap ( SInt32  index,
DataType *  newItem 
)
inline

Swap the item at a given position with a new allocated item.

The array takes the ownership of the item. (!) The client is responsible for deletion of the returned item.

Parameters
indexThe zero-based index of the item to swap.
newItemThe new allocated item to swap into.
Returns
The pointer to the swapped-out heap allocated item.

◆ Swap() [3/3]

template<class DataType>
void Murl::ObjectArray< DataType >::Swap ( ObjectArray< DataType > &  other)
inline

Exchange the content of the array with a given second one.

Parameters
otherThe second array.

◆ Begin() [1/2]

template<class DataType>
ConstIterator Murl::ObjectArray< DataType >::Begin ( ) const
inline

Get the const iterator to the first item.

Returns
The const iterator to the first item.

◆ End() [1/2]

template<class DataType>
ConstIterator Murl::ObjectArray< DataType >::End ( ) const
inline

Get the const iterator next to the last item.

Returns
The const iterator next to the last item.

◆ GetIter() [1/2]

template<class DataType>
ConstIterator Murl::ObjectArray< DataType >::GetIter ( SInt32  index) const
inline

Get the const iterator of a specified index.

Parameters
indexThe index for the iterator.
Returns
The const iterator or null if the index is out of range.

◆ GetIterIndex()

template<class DataType>
SInt32 Murl::ObjectArray< DataType >::GetIterIndex ( ConstIterator  iterator) const
inline

Get the item index by iterator.

(!) Adding or removing items will invalidate iterators.

Parameters
iteratorThe iterator of the item.
Returns
The index of the item, or -1 if the iterator is invalid.

◆ Begin() [2/2]

template<class DataType>
Iterator Murl::ObjectArray< DataType >::Begin ( )
inline

Get the iterator to the first item.

Returns
The iterator to the first item.

◆ End() [2/2]

template<class DataType>
Iterator Murl::ObjectArray< DataType >::End ( )
inline

Get the iterator next to the last item.

Returns
The iterator next to the last item.

◆ GetIter() [2/2]

template<class DataType>
Iterator Murl::ObjectArray< DataType >::GetIter ( SInt32  index)
inline

Get the iterator of a specified index.

Parameters
indexThe index for the iterator.
Returns
The iterator or null if the index is out of range.

The documentation for this class was generated from the following file:
  • murl_object_array.h


Copyright © 2011-2018 Spraylight GmbH.