SList Class Reference

#include <_link.h>

List of all members.

Public Member Functions

 SList ()
virtual ~SList ()
void Clear (void)
int32s GetCount (void)
LinkableGetHead (void)
LinkableGetTail (void)
void Append (Linkable *ptr)
void Insert (Linkable *prv, Linkable *ptr, Linkable *nxt)
LinkableRemoveHead (void)
LinkableRemove (Linkable *prv, Linkable *ptr)
void Iterator (void(*pf)(Linkable *))

Private Attributes

LinkablepHead
LinkablepTail
int32s Count


Detailed Description

Definition at line 64 of file _link.h.


Constructor & Destructor Documentation

SList::SList (  )  [inline]

Definition at line 72 of file _link.h.

00072 { Clear(); }

virtual SList::~SList (  )  [inline, virtual]

Definition at line 73 of file _link.h.

00073 {}


Member Function Documentation

void SList::Append ( Linkable ptr  )  [inline]

Definition at line 80 of file _link.h.

00080 { Insert( pTail, ptr, NULL ); }

void SList::Clear ( void   )  [inline]

Definition at line 75 of file _link.h.

00075 { pHead = pTail = NULL;  Count = 0; }

int32s SList::GetCount ( void   )  [inline]

Definition at line 76 of file _link.h.

00076 { return Count; }

Linkable* SList::GetHead ( void   )  [inline]

Definition at line 77 of file _link.h.

00077 { return pHead; }

Linkable* SList::GetTail ( void   )  [inline]

Definition at line 78 of file _link.h.

00078 { return pTail; }

void SList::Insert ( Linkable prv,
Linkable ptr,
Linkable nxt 
) [inline]

Definition at line 81 of file _link.h.

00082     { 
00083         if( ptr ) 
00084         { 
00085             if( prv == NULL || nxt == pHead ) pHead = ptr;
00086             if( nxt == NULL || prv == pTail ) pTail = ptr;
00087             ptr->Insert(prv, nxt); 
00088             Count++; 
00089         }
00090     }

void SList::Iterator ( void(*)(Linkable *)  pf  )  [inline]

Definition at line 104 of file _link.h.

00105     {
00106         for( Linkable* ptr = pHead; ptr; ptr=ptr->GetNext() ) pf( ptr );
00107     }

Linkable* SList::Remove ( Linkable prv,
Linkable ptr 
) [inline]

Definition at line 93 of file _link.h.

00094     { 
00095         if( ptr ) 
00096         { 
00097             if( ptr == pHead ) pHead = pHead->GetNext();
00098             if( ptr == pTail ) pTail = prv;
00099             ptr->Remove( prv ); 
00100             Count--; 
00101         } 
00102         return ptr;
00103     }

Linkable* SList::RemoveHead ( void   )  [inline]

Definition at line 92 of file _link.h.

00092 { return Remove( NULL, pHead ); }


Member Data Documentation

int32s SList::Count [private]

Definition at line 69 of file _link.h.

Linkable* SList::pHead [private]

Definition at line 67 of file _link.h.

Linkable* SList::pTail [private]

Definition at line 68 of file _link.h.


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

Generated on Thu Nov 28 14:47:25 2013 for red_wireless by  doxygen 1.5.7.1