OpenBarnyard
 
Loading...
Searching...
No Matches
TGenericDList::TNode Class Reference

#include <TDList.h>

Inheritance diagram for TGenericDList::TNode:
TFileSystem TKeyframeLibrary TNativeFileSystem TNullFileSystem

Public Types

enum  TUninitialised { Unitiailised }
 

Public Member Functions

template<typename T>
T * As ()
 
void Remove ()
 
void InsertAfter (TNode *a_pNode)
 
void InsertBefore (TNode *a_pNode)
 
TBOOL IsLinked () const
 

Public Attributes

friend TGenericDList
 

Protected Member Functions

 TNode ()
 
 TNode (TUninitialised)
 
 ~TNode ()
 
TNodeNext () const
 
TNodePrev () const
 

Protected Attributes

TNodem_pNext
 
TNodem_pPrev
 

Friends

template<class T>
class TDList
 
template<class T, class Node>
class Toshi::T2Iterator
 

Detailed Description

Definition at line 9 of file TDList.h.

Member Enumeration Documentation

◆ TUninitialised

Enumerator
Unitiailised 

Definition at line 16 of file TDList.h.

17 {
19 };

Constructor & Destructor Documentation

◆ TNode() [1/2]

TGenericDList::TNode::TNode ( )
protected

Definition at line 12 of file TDList.cpp.

13{
14 Reset();
15}

◆ TNode() [2/2]

TGenericDList::TNode::TNode ( TUninitialised )
protected

Definition at line 17 of file TDList.cpp.

18{
19}

◆ ~TNode()

TGenericDList::TNode::~TNode ( )
protected

Definition at line 21 of file TDList.cpp.

22{
23 Remove();
24}

Member Function Documentation

◆ As()

template<typename T>
T * TGenericDList::TNode::As ( )
inline

Definition at line 23 of file TDList.h.

23{ return TSTATICCAST( T, this ); }
#define TSTATICCAST(POINTERTYPE, VALUE)
Definition Defines.h:69

◆ InsertAfter()

void TGenericDList::TNode::InsertAfter ( TNode * a_pNode)

Definition at line 26 of file TDList.cpp.

27{
28 TASSERT( !IsLinked(), "TNode::InsertAfter - TNode shouldn't be linked" );
29
30 m_pPrev = a_pNode;
31 m_pNext = a_pNode->m_pNext;
32 a_pNode->m_pNext = this;
33 m_pNext->m_pPrev = this;
34}
#define TASSERT(X,...)
Definition Defines.h:138
TBOOL IsLinked() const
Definition TDList.h:38

◆ InsertBefore()

void TGenericDList::TNode::InsertBefore ( TNode * a_pNode)

Definition at line 36 of file TDList.cpp.

37{
38 TASSERT( !IsLinked(), "TNode::InsertBefore - TNode shouldn't be linked" );
39
40 m_pNext = a_pNode;
41 m_pPrev = a_pNode->m_pPrev;
42 a_pNode->m_pPrev = this;
43 m_pPrev->m_pNext = this;
44}

◆ IsLinked()

TBOOL TGenericDList::TNode::IsLinked ( ) const
inline

Definition at line 38 of file TDList.h.

38{ return this != m_pNext; }

◆ Next()

TNode * TGenericDList::TNode::Next ( ) const
inlineprotected

Definition at line 30 of file TDList.h.

30{ return m_pNext; }

◆ Prev()

TNode * TGenericDList::TNode::Prev ( ) const
inlineprotected

Definition at line 31 of file TDList.h.

31{ return m_pPrev; }

◆ Remove()

void TGenericDList::TNode::Remove ( )

Definition at line 46 of file TDList.cpp.

47{
48 m_pNext->m_pPrev = m_pPrev;
49 m_pPrev->m_pNext = m_pNext;
50 Reset();
51}

Friends And Related Symbol Documentation

◆ TDList

template<class T>
friend class TDList
friend

Definition at line 13 of file TDList.h.

◆ Toshi::T2Iterator

template<class T, class Node>
friend class Toshi::T2Iterator
friend

Definition at line 14 of file TDList.h.

Member Data Documentation

◆ m_pNext

TNode* TGenericDList::TNode::m_pNext
protected

Definition at line 44 of file TDList.h.

◆ m_pPrev

TNode* TGenericDList::TNode::m_pPrev
protected

Definition at line 45 of file TDList.h.

◆ TGenericDList

friend TGenericDList::TNode::TGenericDList

Definition at line 12 of file TDList.h.


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