Gorgon Game Engine
GarbageCollection< T_, C_ > Class Template Reference

This class acts like a regular collection, however, it performs garbage collection over its elements. More...

Inheritance diagram for GarbageCollection< T_, C_ >:
[legend]

Public Member Functions

void Collect ()
 
- Public Member Functions inherited from Collection< T_ >
 Collection ()=default
 Default constructor. More...
 
 Collection (Collection &&col)
 Move constructor. More...
 
 Collection (const Collection &)=delete
 Disabled. More...
 
template<typename... Args_>
 Collection (T_ &t, Args_ &... args)
 Initializing constructor. More...
 
template<typename... Args_>
 Collection (T_ *t, Args_ *... args)
 Initializing constructor. More...
 
bool Add (T_ &data)
 Adds a the given item to the end of the list if it is not already in the list. More...
 
template<typename... Args_>
int Add (T_ &data, Args_ &... args)
 Adds a the given item to the end of the list. More...
 
bool Add (T_ *Data)
 Adds the given item to the end of the list if it is not already in the list. More...
 
template<typename... Args_>
int Add (T_ *Data, Args_ *... args)
 Adds the given item to the end of the list, returns the number of added elements. More...
 
template<typename... Args_>
T_ & AddNew (Args_ &&... args)
 Creates a new item and adds to the end of the collection. More...
 
void Clear ()
 Removes all items from the list, allocated memory for the list stays. More...
 
void Collapse ()
 Clears the contents of the collection and releases the memory used for the list. More...
 
void Delete (const T_ *item)
 Deletes an item from the collection using its pointer. More...
 
void Delete (ConstIterator &it)
 
void Delete (Iterator &it)
 
void Delete (long index)
 Deletes an item from the collection using its index. More...
 
void Delete (T_ &data)
 Deletes an item from the collection using its reference. More...
 
void DeleteAll ()
 Deletes and removes all elements in the collection. More...
 
void Destroy ()
 Destroys the entire collection, effectively deleting the contents and the list including all the memory used by it. More...
 
Collection Duplicate () const
 Duplicates this collection. More...
 
Iterator Find (const T_ &item)
 Searches the position of a given item, if not found end iterator returned. More...
 
ConstIterator Find (const T_ &item) const
 Searches the position of a given item, if not found end iterator returned. More...
 
Iterator Find (const T_ *item)
 Searches the position of a given item, if not found end iterator returned. More...
 
ConstIterator Find (const T_ *item) const
 Searches the position of a given item, if not found end iterator returned. More...
 
long FindLocation (const T_ &item) const
 Searches the position of a given item, if not found -1 is returned. More...
 
long FindLocation (const T_ *item) const
 Searches the position of a given item, if not found -1 is returned. More...
 
T_ & Get (long index)
 Returns the element at the given index. Checks and throws if out of range. More...
 
T_ & Get (long index) const
 Returns the element at the given index. Checks and throws if out of range. More...
 
long GetCount () const
 Returns number of elements. More...
 
long GetSize () const
 Returns number of elements. More...
 
bool Insert (T_ &data, const T_ &before)
 this method adds the given object in front of the reference. More...
 
bool Insert (T_ &data, long before)
 this method adds the given object in front of the reference. More...
 
bool Insert (T_ *data, const T_ &before)
 this method adds the given object in front of the reference. More...
 
bool Insert (T_ *data, long before)
 this method adds the given object in front of the reference. More...
 
template<typename... Args_>
T_ & InsertNew (const T_ &before, Args_... args)
 Creates a new item and inserts it before the given reference. More...
 
template<typename... Args_>
T_ & InsertNew (long before, Args_... args)
 Creates a new item and inserts it before the given reference. More...
 
void MoveBefore (const T_ &index, const T_ &before)
 this method moves the given object in the collection in front of the reference More...
 
void MoveBefore (const T_ &index, long before)
 this method moves the given object in the collection in front of the reference More...
 
void MoveBefore (long index, const T_ &before)
 this method moves the given object in the collection in front of the reference More...
 
void MoveBefore (long index, long before)
 this method moves the given object in the collection in front of the reference More...
 
Adder operator+= (T_ &data)
 Adds items to the end of the list. Use comma to add more than one item. More...
 
Adder operator+= (T_ *Data)
 Adds items to the end of the list. Use comma to add more than one item. More...
 
Collectionoperator= (Collection &&col)
 Move assignment. More...
 
Collectionoperator= (const Collection &)=delete
 Disabled. More...
 
T_ & operator[] (long index)
 Returns the item at a given index. More...
 
T_ & operator[] (long index) const
 Returns the item at a given index. More...
 
T_ & Pop ()
 Removes and returns the last item in the collection. More...
 
bool Push (T_ &data)
 Adds a the given item to the end of the list if it is not already in the list. More...
 
bool Push (T_ *Data)
 Adds the given item to the end of the list if it is not already in the list. More...
 
void Remove (const T_ &data)
 Removes an item from the collection using its reference. More...
 
void Remove (const T_ *item)
 Removes an item from the collection using its pointer. More...
 
void Remove (ConstIterator &it)
 
void Remove (Iterator &it)
 
void Remove (long index)
 Removes an item from the collection using its index. More...
 
void Reserve (long amount)
 Allocates memory for the given amount of items. More...
 
void Sort ()
 Sorts items in the collection. More...
 
template<class P_ >
void Sort (P_ predicate=P_())
 Sorts items in the collection. More...
 
void Swap (Collection &col)
 Swaps the given collection with this one. More...
 
Iterator begin ()
 
Iterator end ()
 end iterator More...
 
Iterator First ()
 returns the iterator to the first item More...
 
Iterator Last ()
 returns the iterator to the last item More...
 
ConstIterator begin () const
 begin iterator More...
 
ConstIterator end () const
 end iterator More...
 
ConstIterator First () const
 returns the iterator to the first item More...
 
ConstIterator Last () const
 returns the iterator to the last item More...
 

Additional Inherited Members

- Public Types inherited from Collection< T_ >
typedef Iterator_< T_, CollectionIterator
 Regular iterator. More...
 

Detailed Description

template<class T_, template< class ...U_ > class C_ = Collection>
class Gorgon::Containers::GarbageCollection< T_, C_ >

This class acts like a regular collection, however, it performs garbage collection over its elements.

This class requires T_ to have a non member function called ShouldBeCollected which should return whether the item should be collected by garbage collector. This function should be resolved through ADL

Member Function Documentation

◆ Collect()

void Collect ( )

The documentation for this class was generated from the following file: