LLSkipList< DATA_TYPE, BINARY_DEPTH > Class Template Reference

#include <llskiplist.h>

Collaboration diagram for LLSkipList< DATA_TYPE, BINARY_DEPTH >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef BOOL(*) compare (const DATA_TYPE &first, const DATA_TYPE &second)
typedef compare insert_func
typedef compare equals_func

Public Member Functions

void init ()
 LLSkipList ()
 LLSkipList (insert_func insert_first, equals_func equals)
 ~LLSkipList ()
void setInsertFirst (insert_func insert_first)
void setEquals (equals_func equals)
BOOL addData (const DATA_TYPE &data)
BOOL checkData (const DATA_TYPE &data)
S32 getLength () const
BOOL moveData (const DATA_TYPE &data, LLSkipList *newlist)
BOOL removeData (const DATA_TYPE &data)
void removeAllNodes ()
void resetList ()
DATA_TYPE getCurrentData ()
DATA_TYPE getNextData ()
void removeCurrentData ()
DATA_TYPE getFirstData ()

Static Public Member Functions

static BOOL defaultEquals (const DATA_TYPE &first, const DATA_TYPE &second)

Private Member Functions

 LLSkipList (const LLSkipList &)
LLSkipListoperator= (const LLSkipList &)

Private Attributes

LLSkipNode mHead
LLSkipNodemUpdate [BINARY_DEPTH]
LLSkipNodemCurrentp
LLSkipNodemCurrentOperatingp
S32 mLevel
insert_func mInsertFirst
equals_func mEquals

Classes

class  LLSkipNode

Detailed Description

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
class LLSkipList< DATA_TYPE, BINARY_DEPTH >

Definition at line 39 of file llskiplist.h.


Member Typedef Documentation

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
typedef BOOL(*) LLSkipList< DATA_TYPE, BINARY_DEPTH >::compare(const DATA_TYPE &first, const DATA_TYPE &second)

Definition at line 42 of file llskiplist.h.

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
typedef compare LLSkipList< DATA_TYPE, BINARY_DEPTH >::equals_func

Definition at line 44 of file llskiplist.h.

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
typedef compare LLSkipList< DATA_TYPE, BINARY_DEPTH >::insert_func

Definition at line 43 of file llskiplist.h.


Constructor & Destructor Documentation

template<class DATA_TYPE, S32 BINARY_DEPTH>
LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipList (  )  [inline]

Definition at line 168 of file llskiplist.h.

References LLSkipList< DATA_TYPE, BINARY_DEPTH >::init().

template<class DATA_TYPE, S32 BINARY_DEPTH>
LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipList ( insert_func  insert_first,
equals_func  equals 
) [inline]

Definition at line 177 of file llskiplist.h.

References LLSkipList< DATA_TYPE, BINARY_DEPTH >::init().

template<class DATA_TYPE, S32 BINARY_DEPTH>
LLSkipList< DATA_TYPE, BINARY_DEPTH >::~LLSkipList (  )  [inline]

Definition at line 186 of file llskiplist.h.

References LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeAllNodes().

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipList ( const LLSkipList< DATA_TYPE, BINARY_DEPTH > &   )  [private]


Member Function Documentation

template<class DATA_TYPE, S32 BINARY_DEPTH>
BOOL LLSkipList< DATA_TYPE, BINARY_DEPTH >::addData ( const DATA_TYPE &  data  )  [inline]

Definition at line 204 of file llskiplist.h.

References level, LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mForward, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mHead, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mInsertFirst, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mLevel, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mUpdate, and S32.

Referenced by LLSkipList< DATA_TYPE, BINARY_DEPTH >::moveData().

template<class DATA_TYPE, S32 BINARY_DEPTH>
BOOL LLSkipList< DATA_TYPE, BINARY_DEPTH >::checkData ( const DATA_TYPE &  data  )  [inline]

Definition at line 267 of file llskiplist.h.

References level, LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mForward, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mHead, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mInsertFirst, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mLevel, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mUpdate, and S32.

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
static BOOL LLSkipList< DATA_TYPE, BINARY_DEPTH >::defaultEquals ( const DATA_TYPE &  first,
const DATA_TYPE &  second 
) [inline, static]

Definition at line 123 of file llskiplist.h.

template<class DATA_TYPE, S32 BINARY_DEPTH>
DATA_TYPE LLSkipList< DATA_TYPE, BINARY_DEPTH >::getCurrentData (  )  [inline]

Definition at line 458 of file llskiplist.h.

References LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentOperatingp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mData, and LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mForward.

template<class DATA_TYPE, S32 BINARY_DEPTH>
DATA_TYPE LLSkipList< DATA_TYPE, BINARY_DEPTH >::getFirstData (  )  [inline]

Definition at line 503 of file llskiplist.h.

References LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentOperatingp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mData, LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mForward, and LLSkipList< DATA_TYPE, BINARY_DEPTH >::mHead.

template<class DATA_TYPE, S32 BINARY_DEPTH>
S32 LLSkipList< DATA_TYPE, BINARY_DEPTH >::getLength (  )  const [inline]

Definition at line 315 of file llskiplist.h.

References LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mForward, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mHead, and NULL.

template<class DATA_TYPE, S32 BINARY_DEPTH>
DATA_TYPE LLSkipList< DATA_TYPE, BINARY_DEPTH >::getNextData (  )  [inline]

Definition at line 475 of file llskiplist.h.

References LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentOperatingp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mData, and LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mForward.

template<class DATA_TYPE, S32 BINARY_DEPTH>
void LLSkipList< DATA_TYPE, BINARY_DEPTH >::init (  )  [inline]

Definition at line 152 of file llskiplist.h.

References i, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentOperatingp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mForward, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mHead, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mLevel, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mUpdate, NULL, and S32.

Referenced by LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipList().

template<class DATA_TYPE, S32 BINARY_DEPTH>
BOOL LLSkipList< DATA_TYPE, BINARY_DEPTH >::moveData ( const DATA_TYPE &  data,
LLSkipList< DATA_TYPE, BINARY_DEPTH > *  newlist 
) [inline]

Definition at line 327 of file llskiplist.h.

References LLSkipList< DATA_TYPE, BINARY_DEPTH >::addData(), and LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeData().

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
LLSkipList& LLSkipList< DATA_TYPE, BINARY_DEPTH >::operator= ( const LLSkipList< DATA_TYPE, BINARY_DEPTH > &   )  [private]

template<class DATA_TYPE, S32 BINARY_DEPTH>
void LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeAllNodes (  )  [inline]

Definition at line 424 of file llskiplist.h.

References i, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentOperatingp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mForward, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mHead, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mUpdate, NULL, and S32.

Referenced by LLSkipList< DATA_TYPE, BINARY_DEPTH >::~LLSkipList().

template<class DATA_TYPE, S32 BINARY_DEPTH>
void LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeCurrentData (  )  [inline]

Definition at line 493 of file llskiplist.h.

References LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentOperatingp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mData, and LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeData().

template<class DATA_TYPE, S32 BINARY_DEPTH>
BOOL LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeData ( const DATA_TYPE &  data  )  [inline]

Definition at line 336 of file llskiplist.h.

References level, LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mForward, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mHead, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mInsertFirst, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mLevel, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mUpdate, and S32.

Referenced by LLSkipList< DATA_TYPE, BINARY_DEPTH >::moveData(), and LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeCurrentData().

template<class DATA_TYPE, S32 BINARY_DEPTH>
void LLSkipList< DATA_TYPE, BINARY_DEPTH >::resetList (  )  [inline]

Definition at line 450 of file llskiplist.h.

References LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentOperatingp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentp, LLSkipList< DATA_TYPE, BINARY_DEPTH >::LLSkipNode::mForward, and LLSkipList< DATA_TYPE, BINARY_DEPTH >::mHead.

template<class DATA_TYPE, S32 BINARY_DEPTH>
void LLSkipList< DATA_TYPE, BINARY_DEPTH >::setEquals ( equals_func  equals  )  [inline]

Definition at line 198 of file llskiplist.h.

References LLSkipList< DATA_TYPE, BINARY_DEPTH >::mEquals.

template<class DATA_TYPE, S32 BINARY_DEPTH>
void LLSkipList< DATA_TYPE, BINARY_DEPTH >::setInsertFirst ( insert_func  insert_first  )  [inline]

Definition at line 192 of file llskiplist.h.

References LLSkipList< DATA_TYPE, BINARY_DEPTH >::mInsertFirst.


Member Data Documentation

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
LLSkipNode* LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentOperatingp [private]

Definition at line 132 of file llskiplist.h.

Referenced by LLSkipList< DATA_TYPE, BINARY_DEPTH >::getCurrentData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::getFirstData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::getNextData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::init(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeAllNodes(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeCurrentData(), and LLSkipList< DATA_TYPE, BINARY_DEPTH >::resetList().

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
LLSkipNode* LLSkipList< DATA_TYPE, BINARY_DEPTH >::mCurrentp [private]

Definition at line 131 of file llskiplist.h.

Referenced by LLSkipList< DATA_TYPE, BINARY_DEPTH >::getCurrentData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::getFirstData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::getNextData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::init(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeAllNodes(), and LLSkipList< DATA_TYPE, BINARY_DEPTH >::resetList().

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
equals_func LLSkipList< DATA_TYPE, BINARY_DEPTH >::mEquals [private]

Definition at line 135 of file llskiplist.h.

Referenced by LLSkipList< DATA_TYPE, BINARY_DEPTH >::setEquals().

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
LLSkipNode LLSkipList< DATA_TYPE, BINARY_DEPTH >::mHead [private]

Definition at line 129 of file llskiplist.h.

Referenced by LLSkipList< DATA_TYPE, BINARY_DEPTH >::addData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::checkData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::getFirstData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::getLength(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::init(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeAllNodes(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeData(), and LLSkipList< DATA_TYPE, BINARY_DEPTH >::resetList().

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
insert_func LLSkipList< DATA_TYPE, BINARY_DEPTH >::mInsertFirst [private]

Definition at line 134 of file llskiplist.h.

Referenced by LLSkipList< DATA_TYPE, BINARY_DEPTH >::addData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::checkData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeData(), and LLSkipList< DATA_TYPE, BINARY_DEPTH >::setInsertFirst().

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
S32 LLSkipList< DATA_TYPE, BINARY_DEPTH >::mLevel [private]

Definition at line 133 of file llskiplist.h.

Referenced by LLSkipList< DATA_TYPE, BINARY_DEPTH >::addData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::checkData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::init(), and LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeData().

template<class DATA_TYPE, S32 BINARY_DEPTH = 10>
LLSkipNode* LLSkipList< DATA_TYPE, BINARY_DEPTH >::mUpdate[BINARY_DEPTH] [private]

Definition at line 130 of file llskiplist.h.

Referenced by LLSkipList< DATA_TYPE, BINARY_DEPTH >::addData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::checkData(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::init(), LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeAllNodes(), and LLSkipList< DATA_TYPE, BINARY_DEPTH >::removeData().


The documentation for this class was generated from the following file:
Generated on Thu Jul 1 06:11:46 2010 for Second Life Viewer by  doxygen 1.4.7