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

#include <TDList.h>

Inheritance diagram for TGenericDList:
TDList< TFileSystem > TDList< TKeyframeLibrary > TDList< T >

Classes

class  TNode
 

Public Member Functions

void InsertSegmentAtHead (TNode *a_pNode1, TNode *a_pNode2)
 
void InsertSegmentAtTail (TNode *a_pNode1, TNode *a_pNode2)
 
void InsertHead (TNode *a_pNode)
 
void InsertTail (TNode *a_pNode)
 
void RemoveHead ()
 
void RemoveTail ()
 
TBOOL IsEmpty ()
 
TNodeHead ()
 
TNodeTail ()
 
TNodeBegin ()
 
TNodeEnd ()
 
void RemoveAll ()
 

Static Public Member Functions

static void InsertSegmentAfter (TNode *a_pNode1, TNode *a_pNode2, TNode *a_pNode3)
 
static void InsertSegmentBefore (TNode *a_pNode1, TNode *a_pNode2, TNode *a_pNode3)
 

Protected Member Functions

 TGenericDList ()
 
 ~TGenericDList ()
 

Detailed Description

Definition at line 6 of file TDList.h.

Constructor & Destructor Documentation

◆ TGenericDList()

TGenericDList::TGenericDList ( )
protected

Definition at line 75 of file TDList.cpp.

76{
77}

◆ ~TGenericDList()

TGenericDList::~TGenericDList ( )
protected

Definition at line 79 of file TDList.cpp.

80{
81 RemoveAll();
82}
void RemoveAll()
Definition TDList.cpp:100

Member Function Documentation

◆ Begin()

TNode * TGenericDList::Begin ( )
inline

Definition at line 65 of file TDList.h.

65{ return m_oRoot.Next(); }

◆ End()

TNode * TGenericDList::End ( )
inline

Definition at line 66 of file TDList.h.

66{ return &m_oRoot; }

◆ Head()

TNode * TGenericDList::Head ( )
inline

Definition at line 63 of file TDList.h.

63{ return m_oRoot.Next(); }

◆ InsertHead()

void TGenericDList::InsertHead ( TNode * a_pNode)
inline

Definition at line 52 of file TDList.h.

52{ a_pNode->InsertAfter( &m_oRoot ); }

◆ InsertSegmentAfter()

void TGenericDList::InsertSegmentAfter ( TNode * a_pNode1,
TNode * a_pNode2,
TNode * a_pNode3 )
static

Definition at line 59 of file TDList.cpp.

60{
61 a_pNode1->m_pNext = a_pNode3;
62 a_pNode2->m_pPrev = a_pNode3->m_pPrev;
63 a_pNode1->m_pNext->m_pPrev = a_pNode1;
64 a_pNode2->m_pPrev->m_pNext = a_pNode2;
65}

◆ InsertSegmentAtHead()

void TGenericDList::InsertSegmentAtHead ( TNode * a_pNode1,
TNode * a_pNode2 )

Definition at line 84 of file TDList.cpp.

85{
86 a_pNode1->m_pNext = &m_oRoot;
87 a_pNode2->m_pPrev = m_oRoot.m_pPrev;
88 a_pNode1->m_pNext->m_pPrev = a_pNode1;
89 a_pNode2->m_pPrev->m_pNext = a_pNode2;
90}

◆ InsertSegmentAtTail()

void TGenericDList::InsertSegmentAtTail ( TNode * a_pNode1,
TNode * a_pNode2 )

Definition at line 92 of file TDList.cpp.

93{
94 a_pNode2->m_pPrev = &m_oRoot;
95 a_pNode1->m_pNext = m_oRoot.m_pNext;
96 a_pNode2->m_pPrev->m_pNext = a_pNode2;
97 a_pNode1->m_pNext->m_pPrev = a_pNode1;
98}

◆ InsertSegmentBefore()

void TGenericDList::InsertSegmentBefore ( TNode * a_pNode1,
TNode * a_pNode2,
TNode * a_pNode3 )
static

Definition at line 67 of file TDList.cpp.

68{
69 a_pNode2->m_pPrev = a_pNode3;
70 a_pNode1->m_pNext = a_pNode3->m_pNext;
71 a_pNode2->m_pPrev->m_pNext = a_pNode2;
72 a_pNode1->m_pNext->m_pPrev = a_pNode1;
73}

◆ InsertTail()

void TGenericDList::InsertTail ( TNode * a_pNode)
inline

Definition at line 53 of file TDList.h.

53{ a_pNode->InsertBefore( &m_oRoot ); }

◆ IsEmpty()

TBOOL TGenericDList::IsEmpty ( )
inline

Definition at line 62 of file TDList.h.

62{ return m_oRoot.Next() == &m_oRoot; }

◆ RemoveAll()

void TGenericDList::RemoveAll ( )

Definition at line 100 of file TDList.cpp.

101{
102 while ( !IsEmpty() )
103 {
104 RemoveHead();
105 }
106}
TBOOL IsEmpty()
Definition TDList.h:62
void RemoveHead()
Definition TDList.h:54

◆ RemoveHead()

void TGenericDList::RemoveHead ( )
inline

Definition at line 54 of file TDList.h.

55 {
56 if ( !IsEmpty() ) m_oRoot.Next()->Remove();
57 }

◆ RemoveTail()

void TGenericDList::RemoveTail ( )
inline

Definition at line 58 of file TDList.h.

59 {
60 if ( !IsEmpty() ) m_oRoot.Prev()->Remove();
61 }

◆ Tail()

TNode * TGenericDList::Tail ( )
inline

Definition at line 64 of file TDList.h.

64{ return m_oRoot.Prev(); }

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