|
@@ -8,22 +8,22 @@
|
|
|
namespace Framework
|
|
|
{
|
|
|
template< class TYP >
|
|
|
- // Ein Eintrag in einer Linked List
|
|
|
+ //! Ein Eintrag in einer Linked List
|
|
|
struct ArrayEintrag
|
|
|
{
|
|
|
TYP var;
|
|
|
bool set = false;
|
|
|
- ArrayEintrag< TYP > *next = 0;
|
|
|
+ ArrayEintrag< TYP >* next = 0;
|
|
|
|
|
|
- // Setzt den Eintrag auf die Werte des anderen Eintrages
|
|
|
- ArrayEintrag &operator=( ArrayEintrag &r )
|
|
|
+ //! Setzt den Eintrag auf die Werte des anderen Eintrages
|
|
|
+ ArrayEintrag& operator=( ArrayEintrag& r )
|
|
|
{
|
|
|
var = r.var;
|
|
|
set = r.set;
|
|
|
next = r.next;
|
|
|
return *this;
|
|
|
}
|
|
|
- // Gibt den aktuell gespeicherten Wert zurück
|
|
|
+ //! Gibt den aktuell gespeicherten Wert zurück
|
|
|
operator TYP()
|
|
|
{
|
|
|
if( !set )
|
|
@@ -36,8 +36,8 @@ namespace Framework
|
|
|
}
|
|
|
return var;
|
|
|
}
|
|
|
- // inkrementiert durch die Linked List durch
|
|
|
- ArrayEintrag< TYP > &operator++() // prefix
|
|
|
+ //! inkrementiert durch die Linked List durch
|
|
|
+ ArrayEintrag< TYP >& operator++() //! prefix
|
|
|
{
|
|
|
if( !next )
|
|
|
{
|
|
@@ -50,8 +50,8 @@ namespace Framework
|
|
|
*this = *next;
|
|
|
return *next;
|
|
|
}
|
|
|
- // inkrementiert durch die Linked List durch
|
|
|
- ArrayEintrag< TYP > &operator++( int ) // postfix
|
|
|
+ //! inkrementiert durch die Linked List durch
|
|
|
+ ArrayEintrag< TYP >& operator++( int ) //! postfix
|
|
|
{
|
|
|
if( !next )
|
|
|
{
|
|
@@ -65,15 +65,15 @@ namespace Framework
|
|
|
return *next;
|
|
|
}
|
|
|
};
|
|
|
-
|
|
|
+
|
|
|
template< class TYP >
|
|
|
class Iterator
|
|
|
{
|
|
|
private:
|
|
|
- ArrayEintrag< TYP > *current;
|
|
|
+ ArrayEintrag< TYP >* current;
|
|
|
|
|
|
public:
|
|
|
- Iterator( ArrayEintrag< TYP > *start )
|
|
|
+ Iterator( ArrayEintrag< TYP >* start )
|
|
|
{
|
|
|
current = start;
|
|
|
while( current && !current->set )
|
|
@@ -82,12 +82,12 @@ namespace Framework
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- Iterator( const Iterator &it )
|
|
|
+ Iterator( const Iterator& it )
|
|
|
{
|
|
|
current = it.current;
|
|
|
}
|
|
|
|
|
|
- Iterator< TYP > &operator=( Iterator< TYP > &r )
|
|
|
+ Iterator< TYP >& operator=( Iterator< TYP >& r )
|
|
|
{
|
|
|
current = r.current;
|
|
|
return *this;
|
|
@@ -95,7 +95,7 @@ namespace Framework
|
|
|
|
|
|
bool hasNext()
|
|
|
{
|
|
|
- ArrayEintrag< TYP > *next = current->next;
|
|
|
+ ArrayEintrag< TYP >* next = current->next;
|
|
|
while( next && !next->set )
|
|
|
{
|
|
|
next = next->next;
|
|
@@ -115,12 +115,12 @@ namespace Framework
|
|
|
}
|
|
|
return Iterator( current->next );
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
operator bool()
|
|
|
{
|
|
|
return current != 0;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
operator TYP()
|
|
|
{
|
|
|
if( !current || !current->set )
|
|
@@ -134,7 +134,7 @@ namespace Framework
|
|
|
return current->var;
|
|
|
}
|
|
|
|
|
|
- Iterator< TYP > &operator++() // prefix
|
|
|
+ Iterator< TYP >& operator++() //! prefix
|
|
|
{
|
|
|
do
|
|
|
{
|
|
@@ -143,8 +143,8 @@ namespace Framework
|
|
|
} while( current && !current->set );
|
|
|
return *this;
|
|
|
}
|
|
|
-
|
|
|
- Iterator< TYP > operator++( int ) // postfix
|
|
|
+
|
|
|
+ Iterator< TYP > operator++( int ) //! postfix
|
|
|
{
|
|
|
Iterator< TYP > temp( *this );
|
|
|
do
|
|
@@ -154,7 +154,7 @@ namespace Framework
|
|
|
} while( current && !current->set );
|
|
|
return temp;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
TYP operator->()
|
|
|
{
|
|
|
if( !current || !current->set )
|
|
@@ -184,25 +184,25 @@ namespace Framework
|
|
|
#define _ val()
|
|
|
|
|
|
template< class TYP >
|
|
|
- // Eine Linked List von Klassen, die kein Reference Counting berteiben
|
|
|
+ //! Eine Linked List von Klassen, die kein Reference Counting berteiben
|
|
|
class Array
|
|
|
{
|
|
|
private:
|
|
|
- ArrayEintrag< TYP > *entries;
|
|
|
+ ArrayEintrag< TYP >* entries;
|
|
|
int ref;
|
|
|
|
|
|
public:
|
|
|
- // Erstellt eine neue Linked List
|
|
|
+ //! Erstellt eine neue Linked List
|
|
|
Array() noexcept
|
|
|
{
|
|
|
- entries = new ArrayEintrag< TYP >();
|
|
|
- entries->set = 0;
|
|
|
+ entries = new ArrayEintrag< TYP >();
|
|
|
+ entries->set = 0;
|
|
|
entries->next = 0;
|
|
|
ref = 1;
|
|
|
}
|
|
|
|
|
|
- // Kopiert eine Linked list
|
|
|
- Array( const Array &arr )
|
|
|
+ //! Kopiert eine Linked list
|
|
|
+ Array( const Array& arr )
|
|
|
{
|
|
|
entries = new ArrayEintrag< TYP >();
|
|
|
entries->set = 0;
|
|
@@ -213,18 +213,18 @@ namespace Framework
|
|
|
ref = 1;
|
|
|
}
|
|
|
|
|
|
- // Leert und löscht die Linked List
|
|
|
+ //! Leert und löscht die Linked List
|
|
|
~Array()
|
|
|
{
|
|
|
leeren();
|
|
|
delete entries;
|
|
|
}
|
|
|
|
|
|
- // Hängt ein Element ans Ende der Liste an
|
|
|
- // t: Das neue Element
|
|
|
+ //! Hängt ein Element ans Ende der Liste an
|
|
|
+ //! \param t Das neue Element
|
|
|
void add( TYP t )
|
|
|
{
|
|
|
- for( ArrayEintrag< TYP > *e = entries; 1; e = e->next )
|
|
|
+ for( ArrayEintrag< TYP >* e = entries; 1; e = e->next )
|
|
|
{
|
|
|
if( !e->set && !e->next )
|
|
|
{
|
|
@@ -241,26 +241,26 @@ namespace Framework
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // Fügt ein Element bei einer bestimmten Position in die Liste ein
|
|
|
- // t: das neue Element
|
|
|
- // i: Die Position, wo das Element eingefügt wird (danach der Index des neuen Elementes)
|
|
|
+ //! Fügt ein Element bei einer bestimmten Position in die Liste ein
|
|
|
+ //! \param t das neue Element
|
|
|
+ //! \param i Die Position, wo das Element eingefügt wird (danach der Index des neuen Elementes)
|
|
|
void add( TYP t, int i )
|
|
|
{
|
|
|
if( i < 0 )
|
|
|
return;
|
|
|
- ArrayEintrag< TYP > *e = entries;
|
|
|
+ ArrayEintrag< TYP >* e = entries;
|
|
|
for( int a = 0; a < i; ++a )
|
|
|
{
|
|
|
if( !e->next )
|
|
|
{
|
|
|
- ArrayEintrag< TYP > *ne = new ArrayEintrag< TYP >();
|
|
|
+ ArrayEintrag< TYP >* ne = new ArrayEintrag< TYP >();
|
|
|
ne->set = 0;
|
|
|
ne->next = 0;
|
|
|
e->next = ne;
|
|
|
}
|
|
|
e = e->next;
|
|
|
}
|
|
|
- ArrayEintrag< TYP > *ne = new ArrayEintrag< TYP >();
|
|
|
+ ArrayEintrag< TYP >* ne = new ArrayEintrag< TYP >();
|
|
|
ne->var = e->var;
|
|
|
ne->set = e->set;
|
|
|
ne->next = e->next;
|
|
@@ -269,19 +269,19 @@ namespace Framework
|
|
|
e->set = 1;
|
|
|
}
|
|
|
|
|
|
- // Setzt den Wert des i-ten Eintrags
|
|
|
- // t: der Neue Wert
|
|
|
- // i: Der Index des Eintrages der gesetzt werden soll
|
|
|
+ //! Setzt den Wert des i-ten Eintrags
|
|
|
+ //! \param t der Neue Wert
|
|
|
+ //! \param i Der Index des Eintrages der gesetzt werden soll
|
|
|
void set( TYP t, int i )
|
|
|
{
|
|
|
if( i < 0 )
|
|
|
return;
|
|
|
- ArrayEintrag< TYP > *e = entries;
|
|
|
+ ArrayEintrag< TYP >* e = entries;
|
|
|
for( int a = 0; a < i; ++a )
|
|
|
{
|
|
|
if( !e->next )
|
|
|
{
|
|
|
- ArrayEintrag< TYP > *ne = new ArrayEintrag< TYP >();
|
|
|
+ ArrayEintrag< TYP >* ne = new ArrayEintrag< TYP >();
|
|
|
ne->set = 0;
|
|
|
ne->next = 0;
|
|
|
e->next = ne;
|
|
@@ -292,15 +292,15 @@ namespace Framework
|
|
|
e->set = 1;
|
|
|
}
|
|
|
|
|
|
- // Verändert die Position des i-ten Elementes in der Liste
|
|
|
- // i: Der Index des Elementes, welches verschoben werden soll
|
|
|
- // p: Die Zielposition des Elementes (danach der neue Index des Elementes)
|
|
|
+ //! Verändert die Position des i-ten Elementes in der Liste
|
|
|
+ //! \param i Der Index des Elementes, welches verschoben werden soll
|
|
|
+ //! \param p Die Zielposition des Elementes (danach der neue Index des Elementes)
|
|
|
void setPosition( int i, int p )
|
|
|
{
|
|
|
if( i < 0 || p < 0 || i == p )
|
|
|
return;
|
|
|
- ArrayEintrag< TYP > *e = entries;
|
|
|
- ArrayEintrag< TYP > *ve = 0;
|
|
|
+ ArrayEintrag< TYP >* e = entries;
|
|
|
+ ArrayEintrag< TYP >* ve = 0;
|
|
|
for( int a = 0; a < i; ++a )
|
|
|
{
|
|
|
if( !e->next )
|
|
@@ -308,8 +308,8 @@ namespace Framework
|
|
|
ve = e;
|
|
|
e = e->next;
|
|
|
}
|
|
|
- ArrayEintrag< TYP > *e2 = entries == e ? e->next : entries;
|
|
|
- ArrayEintrag< TYP > *ve2 = 0;
|
|
|
+ ArrayEintrag< TYP >* e2 = entries == e ? e->next : entries;
|
|
|
+ ArrayEintrag< TYP >* ve2 = 0;
|
|
|
for( int a = 0; a < p; ++a )
|
|
|
{
|
|
|
if( !e2 )
|
|
@@ -323,23 +323,23 @@ namespace Framework
|
|
|
if( !e )
|
|
|
return;
|
|
|
if( !ve2 )
|
|
|
- entries = e;
|
|
|
+ entries = e;
|
|
|
else
|
|
|
ve2->next = e;
|
|
|
if( ve )
|
|
|
ve->next = e->next;
|
|
|
else
|
|
|
- entries = e->next;
|
|
|
+ entries = e->next;
|
|
|
e->next = e2;
|
|
|
}
|
|
|
|
|
|
- // Löscht ein Bestimmtes Element
|
|
|
- // i: Der Index des Elementes das gelöscht werden soll
|
|
|
+ //! Löscht ein Bestimmtes Element
|
|
|
+ //! \param i Der Index des Elementes das gelöscht werden soll
|
|
|
void remove( int i )
|
|
|
{
|
|
|
if( i < 0 )
|
|
|
return;
|
|
|
- ArrayEintrag< TYP > *e = entries;
|
|
|
+ ArrayEintrag< TYP >* e = entries;
|
|
|
for( int a = 0; a < i; ++a )
|
|
|
{
|
|
|
if( !e->next )
|
|
@@ -355,7 +355,7 @@ namespace Framework
|
|
|
}
|
|
|
else
|
|
|
e->set = 0;
|
|
|
- ArrayEintrag< TYP > *del = e->next;
|
|
|
+ ArrayEintrag< TYP >* del = e->next;
|
|
|
if( e->next )
|
|
|
e->next = e->next->next;
|
|
|
else
|
|
@@ -368,9 +368,9 @@ namespace Framework
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // Vertauscht zwei Elemente in der Liste
|
|
|
- // vi: Der Index des ersten Elementes
|
|
|
- // ni: Der Index des zweiten Elementes
|
|
|
+ //! Vertauscht zwei Elemente in der Liste
|
|
|
+ //! \param vi Der Index des ersten Elementes
|
|
|
+ //! \param ni Der Index des zweiten Elementes
|
|
|
void tausch( int vi, int ni )
|
|
|
{
|
|
|
if( vi < 0 || ni < 0 )
|
|
@@ -380,29 +380,29 @@ namespace Framework
|
|
|
set( tmp, vi );
|
|
|
}
|
|
|
|
|
|
- // Löscht alle Elemente der Liste
|
|
|
+ //! Löscht alle Elemente der Liste
|
|
|
void leeren()
|
|
|
{
|
|
|
- ArrayEintrag< TYP > *e2 = 0;
|
|
|
- for( ArrayEintrag< TYP > *e = entries; e; e = e->next )
|
|
|
+ ArrayEintrag< TYP >* e2 = 0;
|
|
|
+ for( ArrayEintrag< TYP >* e = entries; e; e = e->next )
|
|
|
{
|
|
|
delete e2;
|
|
|
e2 = e;
|
|
|
}
|
|
|
delete e2;
|
|
|
- entries = new ArrayEintrag< TYP >();
|
|
|
- entries->set = 0;
|
|
|
- entries->next = 0;
|
|
|
+ entries = new ArrayEintrag< TYP >();
|
|
|
+ entries->set = 0;
|
|
|
+ entries->next = 0;
|
|
|
}
|
|
|
|
|
|
- // Gibt einen Iterator zurück.
|
|
|
- // Mit ++ kann durch die Liste iteriert werden
|
|
|
+ //! Gibt einen Iterator zurück.
|
|
|
+ //! Mit ++ kann durch die Liste iteriert werden
|
|
|
Iterator< TYP > getIterator() const
|
|
|
{
|
|
|
return Iterator< TYP >( entries );
|
|
|
}
|
|
|
|
|
|
- // Gibt zurück, wie viele Elemente in der Liste sind
|
|
|
+ //! Gibt zurück, wie viele Elemente in der Liste sind
|
|
|
int getEintragAnzahl() const
|
|
|
{
|
|
|
int i = 0;
|
|
@@ -411,10 +411,10 @@ namespace Framework
|
|
|
return i;
|
|
|
}
|
|
|
|
|
|
- // Gibt den Wert des i-ten Elementes zurück
|
|
|
- // i: Der index des gesuchten Elementes
|
|
|
- // throws:
|
|
|
- // std::out_of_range wenn i < 0 oder i >= getEintragAnzahl()
|
|
|
+ //! Gibt den Wert des i-ten Elementes zurück
|
|
|
+ //! \param i Der index des gesuchten Elementes
|
|
|
+ //! throws:
|
|
|
+ //! std::out_of_range wenn i < 0 oder i >= getEintragAnzahl()
|
|
|
TYP get( int i ) const
|
|
|
{
|
|
|
if( i < 0 )
|
|
@@ -427,7 +427,7 @@ namespace Framework
|
|
|
err += i;
|
|
|
throw std::out_of_range( (char*)err );
|
|
|
}
|
|
|
- ArrayEintrag< TYP > *e = entries;
|
|
|
+ ArrayEintrag< TYP >* e = entries;
|
|
|
for( int a = 0; a < i && e; ++a )
|
|
|
e = e->next;
|
|
|
if( e && e->set )
|
|
@@ -441,14 +441,14 @@ namespace Framework
|
|
|
throw std::out_of_range( (char*)err );
|
|
|
}
|
|
|
|
|
|
- // Überprüft, ob ein Element in der Liste enthalten ist
|
|
|
- // i: Der Index des gesuchten Elementes
|
|
|
- // return: (true), wenn der Index vorhanden ist. (false) sonnst
|
|
|
+ //! Überprüft, ob ein Element in der Liste enthalten ist
|
|
|
+ //! \param i Der Index des gesuchten Elementes
|
|
|
+ //! \return (true), wenn der Index vorhanden ist. (false) sonnst
|
|
|
bool hat( int i ) const
|
|
|
{
|
|
|
if( i < 0 )
|
|
|
return 0;
|
|
|
- ArrayEintrag< TYP > *e = entries;
|
|
|
+ ArrayEintrag< TYP >* e = entries;
|
|
|
for( int a = 0; a < i && e; ++a )
|
|
|
e = e->next;
|
|
|
if( e && e->set )
|
|
@@ -456,12 +456,12 @@ namespace Framework
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- // Gibt den Index eines Wertes zurück
|
|
|
- // t: Der Wert, nach dem gesucht werden soll
|
|
|
+ //! Gibt den Index eines Wertes zurück
|
|
|
+ //! \param t Der Wert, nach dem gesucht werden soll
|
|
|
int getWertIndex( TYP t ) const
|
|
|
{
|
|
|
int ret = 0;
|
|
|
- for( ArrayEintrag< TYP > *e = entries; e; e = e->next )
|
|
|
+ for( ArrayEintrag< TYP >* e = entries; e; e = e->next )
|
|
|
{
|
|
|
if( e->set && e->var == t )
|
|
|
return ret;
|
|
@@ -470,17 +470,17 @@ namespace Framework
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
- // Erhöht den Reference Counting Zähler.
|
|
|
- // return: this.
|
|
|
- Array< TYP > *getThis()
|
|
|
+ //! Erhöht den Reference Counting Zähler.
|
|
|
+ //! \return this.
|
|
|
+ Array< TYP >* getThis()
|
|
|
{
|
|
|
++ref;
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
- // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
|
|
|
- // return: 0.
|
|
|
- Array< TYP > *release()
|
|
|
+ //! Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
|
|
|
+ //! \return 0.
|
|
|
+ Array< TYP >* release()
|
|
|
{
|
|
|
--ref;
|
|
|
if( !ref )
|
|
@@ -488,7 +488,7 @@ namespace Framework
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- Array &operator=( const Array &arr )
|
|
|
+ Array& operator=( const Array& arr )
|
|
|
{
|
|
|
leeren();
|
|
|
int anz = arr.getEintragAnzahl();
|
|
@@ -499,15 +499,15 @@ namespace Framework
|
|
|
};
|
|
|
|
|
|
template< class TYP >
|
|
|
- // Eine Linked List von Zeigern auf Zeichnunge, die Reference Counting berteiben
|
|
|
+ //! Eine Linked List von Zeigern auf Zeichnunge, die Reference Counting berteiben
|
|
|
class RCArray
|
|
|
{
|
|
|
private:
|
|
|
- ArrayEintrag< TYP* > *entries;
|
|
|
+ ArrayEintrag< TYP* >* entries;
|
|
|
int ref;
|
|
|
|
|
|
public:
|
|
|
- // Erstellt eine neue Linked List
|
|
|
+ //! Erstellt eine neue Linked List
|
|
|
RCArray() noexcept
|
|
|
{
|
|
|
entries = new ArrayEintrag< TYP* >();
|
|
@@ -516,8 +516,8 @@ namespace Framework
|
|
|
ref = 1;
|
|
|
}
|
|
|
|
|
|
- // Kopiert eine Linked list
|
|
|
- RCArray( const RCArray &arr )
|
|
|
+ //! Kopiert eine Linked list
|
|
|
+ RCArray( const RCArray& arr )
|
|
|
{
|
|
|
entries = new ArrayEintrag< TYP* >();
|
|
|
entries->set = 0;
|
|
@@ -528,18 +528,18 @@ namespace Framework
|
|
|
ref = 1;
|
|
|
}
|
|
|
|
|
|
- // Leert und löscht die Linked List
|
|
|
+ //! Leert und löscht die Linked List
|
|
|
~RCArray()
|
|
|
{
|
|
|
leeren();
|
|
|
delete entries;
|
|
|
}
|
|
|
|
|
|
- // Hängt ein Element ans Ende der Liste an
|
|
|
- // t: Das neue Element
|
|
|
+ //! Hängt ein Element ans Ende der Liste an
|
|
|
+ //! \param t Das neue Element
|
|
|
void add( TYP* t )
|
|
|
{
|
|
|
- for( ArrayEintrag< TYP* > *e = entries; 1; e = e->next )
|
|
|
+ for( ArrayEintrag< TYP* >* e = entries; 1; e = e->next )
|
|
|
{
|
|
|
if( !e->set && !e->next )
|
|
|
{
|
|
@@ -558,9 +558,9 @@ namespace Framework
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // Fügt ein Element bei einer bestimmten Position in die Liste ein
|
|
|
- // t: das neue Element
|
|
|
- // i: Die Position, wo das Element eingefügt wird (danach der Index des neuen Elementes)
|
|
|
+ //! Fügt ein Element bei einer bestimmten Position in die Liste ein
|
|
|
+ //! \param t das neue Element
|
|
|
+ //! \param i Die Position, wo das Element eingefügt wird (danach der Index des neuen Elementes)
|
|
|
void add( TYP* t, int i )
|
|
|
{
|
|
|
if( i < 0 )
|
|
@@ -569,19 +569,19 @@ namespace Framework
|
|
|
t->release();
|
|
|
return;
|
|
|
}
|
|
|
- ArrayEintrag< TYP* > *e = entries;
|
|
|
+ ArrayEintrag< TYP* >* e = entries;
|
|
|
for( int a = 0; a < i; ++a )
|
|
|
{
|
|
|
if( !e->next )
|
|
|
{
|
|
|
- ArrayEintrag< TYP* > *ne = new ArrayEintrag< TYP* >();
|
|
|
+ ArrayEintrag< TYP* >* ne = new ArrayEintrag< TYP* >();
|
|
|
ne->set = 0;
|
|
|
ne->next = 0;
|
|
|
e->next = ne;
|
|
|
}
|
|
|
e = e->next;
|
|
|
}
|
|
|
- ArrayEintrag< TYP* > *ne = new ArrayEintrag< TYP* >();
|
|
|
+ ArrayEintrag< TYP* >* ne = new ArrayEintrag< TYP* >();
|
|
|
ne->var = e->var;
|
|
|
ne->set = e->set;
|
|
|
ne->next = e->next;
|
|
@@ -590,9 +590,9 @@ namespace Framework
|
|
|
e->set = 1;
|
|
|
}
|
|
|
|
|
|
- // Setzt den Wert des i-ten Eintrags
|
|
|
- // t: der Neue Wert
|
|
|
- // i: Der Index des Eintrages der gesetzt werden soll
|
|
|
+ //! Setzt den Wert des i-ten Eintrags
|
|
|
+ //! \param t der Neue Wert
|
|
|
+ //! \param i Der Index des Eintrages der gesetzt werden soll
|
|
|
void set( TYP* t, int i )
|
|
|
{
|
|
|
if( i < 0 )
|
|
@@ -601,12 +601,12 @@ namespace Framework
|
|
|
t->release();
|
|
|
return;
|
|
|
}
|
|
|
- ArrayEintrag< TYP* > *e = entries;
|
|
|
+ ArrayEintrag< TYP* >* e = entries;
|
|
|
for( int a = 0; a < i; ++a )
|
|
|
{
|
|
|
if( !e->next )
|
|
|
{
|
|
|
- ArrayEintrag< TYP* > *ne = new ArrayEintrag< TYP* >();
|
|
|
+ ArrayEintrag< TYP* >* ne = new ArrayEintrag< TYP* >();
|
|
|
ne->set = 0;
|
|
|
ne->next = 0;
|
|
|
e->next = ne;
|
|
@@ -619,15 +619,15 @@ namespace Framework
|
|
|
e->set = 1;
|
|
|
}
|
|
|
|
|
|
- // Verändert die Position des i-ten Elementes in der Liste
|
|
|
- // i: Der Index des Elementes, welches verschoben werden soll
|
|
|
- // p: Die Zielposition des Elementes (danach der neue Index des Elementes)
|
|
|
+ //! Verändert die Position des i-ten Elementes in der Liste
|
|
|
+ //! \param i Der Index des Elementes, welches verschoben werden soll
|
|
|
+ //! \param p Die Zielposition des Elementes (danach der neue Index des Elementes)
|
|
|
void setPosition( int i, int p )
|
|
|
{
|
|
|
if( i < 0 || p < 0 || i == p )
|
|
|
return;
|
|
|
- ArrayEintrag< TYP* > *ve = 0;
|
|
|
- ArrayEintrag< TYP* > *e = entries;
|
|
|
+ ArrayEintrag< TYP* >* ve = 0;
|
|
|
+ ArrayEintrag< TYP* >* e = entries;
|
|
|
for( int a = 0; a < i; ++a )
|
|
|
{
|
|
|
if( !e->next )
|
|
@@ -635,8 +635,8 @@ namespace Framework
|
|
|
ve = e;
|
|
|
e = e->next;
|
|
|
}
|
|
|
- ArrayEintrag< TYP* > *e2 = entries == e ? e->next : entries;
|
|
|
- ArrayEintrag< TYP* > *ve2 = 0;
|
|
|
+ ArrayEintrag< TYP* >* e2 = entries == e ? e->next : entries;
|
|
|
+ ArrayEintrag< TYP* >* ve2 = 0;
|
|
|
for( int a = 0; a < p; ++a )
|
|
|
{
|
|
|
if( !e2 )
|
|
@@ -660,13 +660,13 @@ namespace Framework
|
|
|
e->next = e2;
|
|
|
}
|
|
|
|
|
|
- // Löscht ein Bestimmtes Element
|
|
|
- // i: Der Index des Elementes das gelöscht werden soll
|
|
|
+ //! Löscht ein Bestimmtes Element
|
|
|
+ //! \param i Der Index des Elementes das gelöscht werden soll
|
|
|
void remove( int i )
|
|
|
{
|
|
|
if( i < 0 )
|
|
|
return;
|
|
|
- ArrayEintrag< TYP* > *e = entries;
|
|
|
+ ArrayEintrag< TYP* >* e = entries;
|
|
|
for( int a = 0; a < i; ++a )
|
|
|
{
|
|
|
if( !e->next )
|
|
@@ -688,7 +688,7 @@ namespace Framework
|
|
|
e->var->release();
|
|
|
e->set = 0;
|
|
|
}
|
|
|
- ArrayEintrag< TYP* > *del = e->next;
|
|
|
+ ArrayEintrag< TYP* >* del = e->next;
|
|
|
if( e->next )
|
|
|
e->next = e->next->next;
|
|
|
else
|
|
@@ -701,9 +701,9 @@ namespace Framework
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // Vertauscht zwei Elemente in der Liste
|
|
|
- // vi: Der Index des ersten Elementes
|
|
|
- // ni: Der Index des zweiten Elementes
|
|
|
+ //! Vertauscht zwei Elemente in der Liste
|
|
|
+ //! \param vi Der Index des ersten Elementes
|
|
|
+ //! \param ni Der Index des zweiten Elementes
|
|
|
void tausch( int vi, int ni )
|
|
|
{
|
|
|
if( vi < 0 || ni < 0 )
|
|
@@ -713,11 +713,11 @@ namespace Framework
|
|
|
set( tmp, vi );
|
|
|
}
|
|
|
|
|
|
- // Löscht alle Elemente der Liste
|
|
|
+ //! Löscht alle Elemente der Liste
|
|
|
void leeren()
|
|
|
{
|
|
|
- ArrayEintrag< TYP* > *e2 = 0;
|
|
|
- for( ArrayEintrag< TYP* > *e = entries; e; e = e->next )
|
|
|
+ ArrayEintrag< TYP* >* e2 = 0;
|
|
|
+ for( ArrayEintrag< TYP* >* e = entries; e; e = e->next )
|
|
|
{
|
|
|
if( e2 && e2->var && e2->set )
|
|
|
e2->var->release();
|
|
@@ -732,14 +732,14 @@ namespace Framework
|
|
|
entries->next = 0;
|
|
|
}
|
|
|
|
|
|
- // Gibt einen Iterator zurück.
|
|
|
- // Mit ++ kann durch die Liste iteriert werden
|
|
|
+ //! Gibt einen Iterator zurück.
|
|
|
+ //! Mit ++ kann durch die Liste iteriert werden
|
|
|
Iterator< TYP* > getIterator() const
|
|
|
{
|
|
|
return Iterator< TYP* >( entries );
|
|
|
}
|
|
|
|
|
|
- // Gibt zurück, wie viele Elemente in der Liste sind
|
|
|
+ //! Gibt zurück, wie viele Elemente in der Liste sind
|
|
|
int getEintragAnzahl() const
|
|
|
{
|
|
|
int i = 0;
|
|
@@ -751,19 +751,19 @@ namespace Framework
|
|
|
int getLastIndex() const
|
|
|
{
|
|
|
int index = 0;
|
|
|
- ArrayEintrag< TYP * > *e = entries;
|
|
|
+ ArrayEintrag< TYP* >* e = entries;
|
|
|
for( ; e; ++index )
|
|
|
e = e->next;
|
|
|
return index - 1;
|
|
|
}
|
|
|
|
|
|
- // Gibt den Wert des i-ten Elementes zurück mit erhöhtem Reference Counter
|
|
|
- // i: Der index des gesuchten Elementes, (0) wenn der Index nicht existiert
|
|
|
- TYP *get( int i ) const
|
|
|
+ //! Gibt den Wert des i-ten Elementes zurück mit erhöhtem Reference Counter
|
|
|
+ //! \param i Der index des gesuchten Elementes, (0) wenn der Index nicht existiert
|
|
|
+ TYP* get( int i ) const
|
|
|
{
|
|
|
if( i < 0 )
|
|
|
return (TYP*)0;
|
|
|
- ArrayEintrag< TYP* > *e = entries;
|
|
|
+ ArrayEintrag< TYP* >* e = entries;
|
|
|
for( int a = 0; a < i && e; ++a )
|
|
|
e = e->next;
|
|
|
if( e && e->set && e->var )
|
|
@@ -771,13 +771,13 @@ namespace Framework
|
|
|
return (TYP*)0;
|
|
|
}
|
|
|
|
|
|
- // Gibt den Wert des i-ten Elementes zurück ohne erhöhten Reference Counter
|
|
|
- // i: Der index des gesuchten Elementes, (0) wenn der Index nicht existiert
|
|
|
- TYP *z( int i ) const // gibt den index - ten T zurück
|
|
|
+ //! Gibt den Wert des i-ten Elementes zurück ohne erhöhten Reference Counter
|
|
|
+ //! \param i Der index des gesuchten Elementes, (0) wenn der Index nicht existiert
|
|
|
+ TYP* z( int i ) const //! gibt den index - ten T zurück
|
|
|
{
|
|
|
if( i < 0 )
|
|
|
return (TYP*)0;
|
|
|
- ArrayEintrag< TYP* > *e = entries;
|
|
|
+ ArrayEintrag< TYP* >* e = entries;
|
|
|
for( int a = 0; a < i && e; ++a )
|
|
|
e = e->next;
|
|
|
if( e && e->set && e->var )
|
|
@@ -785,14 +785,14 @@ namespace Framework
|
|
|
return (TYP*)0;
|
|
|
}
|
|
|
|
|
|
- // Überprüft, ob ein Element in der Liste enthalten ist
|
|
|
- // i: Der Index des gesuchten Elementes
|
|
|
- // return: (true), wenn der Index vorhanden ist. (false) sonnst
|
|
|
+ //! Überprüft, ob ein Element in der Liste enthalten ist
|
|
|
+ //! \param i Der Index des gesuchten Elementes
|
|
|
+ //! \return (true), wenn der Index vorhanden ist. (false) sonnst
|
|
|
bool hat( int i ) const
|
|
|
{
|
|
|
if( i < 0 )
|
|
|
return 0;
|
|
|
- ArrayEintrag< TYP* > *e = entries;
|
|
|
+ ArrayEintrag< TYP* >* e = entries;
|
|
|
for( int a = 0; a < i && e; ++a )
|
|
|
e = e->next;
|
|
|
if( e && e->set )
|
|
@@ -800,17 +800,17 @@ namespace Framework
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- // Erhöht den Reference Counting Zähler.
|
|
|
- // return: this.
|
|
|
- RCArray< TYP > *getThis()
|
|
|
+ //! Erhöht den Reference Counting Zähler.
|
|
|
+ //! \return this.
|
|
|
+ RCArray< TYP >* getThis()
|
|
|
{
|
|
|
++ref;
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
- // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
|
|
|
- // return: 0.
|
|
|
- RCArray< TYP > *release()
|
|
|
+ //! Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
|
|
|
+ //! \return 0.
|
|
|
+ RCArray< TYP >* release()
|
|
|
{
|
|
|
--ref;
|
|
|
if( !ref )
|
|
@@ -818,7 +818,7 @@ namespace Framework
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- RCArray &operator=( const RCArray &arr )
|
|
|
+ RCArray& operator=( const RCArray& arr )
|
|
|
{
|
|
|
leeren();
|
|
|
int anz = arr.getEintragAnzahl();
|