Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

Islist< T > Class Template Reference

#include <nilist.h>

Inheritance diagram for Islist< T >:

Inheritance graph
[legend]
Collaboration diagram for Islist< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

void insert (T *a)
void append (T *a)
void remove (T *a, T *prev)
T * get ()
T * find (int key)
int count ()

Private Member Functions

void insert (slink *a)
void append (slink *a)
void remove (slink *a, slink *prev)
void clear ()
slinklast ()
int ac ()
int rc ()

Friends

class Islist_iter< T >
class slist_base_iter

template<class T>
class Islist< T >


Member Function Documentation

int slist_base::ac  )  [inline, inherited]
 

Definition at line 65 of file nilist.h.

References slist_base::append_count_.

00065 {return append_count_;} /* XXX */

void slist_base::append slink a  )  [inherited]
 

Definition at line 80 of file nilist.cc.

References slist_base::append_count_, slist_base::count_, slist_base::last_, and slink::next_.

Referenced by Slist< T >::append(), and Islist< Segment >::append().

00081 {
00082     append_count_++; /* XXX */
00083     count_++;
00084     if (last_) {
00085         a->next_ = last_->next_;
00086         last_ = last_->next_ = a;
00087     }
00088     else
00089         last_ = a->next_ = a;
00090 }

template<class T>
void Islist< T >::append T *  a  )  [inline]
 

Definition at line 77 of file nilist.h.

00077 {slist_base::append(a);}

void slist_base::clear  )  [inline, inherited]
 

Definition at line 62 of file nilist.h.

References slist_base::last_.

00062 {last_ = 0;}

template<class T>
int Islist< T >::count  )  [inline]
 

Reimplemented from slist_base.

Definition at line 81 of file nilist.h.

00081 {return slist_base::count();}

template<class T>
T* Islist< T >::find int  key  )  [inline]
 

Reimplemented from slist_base.

Definition at line 80 of file nilist.h.

00080 {return (T*) slist_base::find(key);}

template<class T>
T* Islist< T >::get  )  [inline]
 

Reimplemented from slist_base.

Definition at line 79 of file nilist.h.

00079 {return (T* ) slist_base::get();}

void slist_base::insert slink a  )  [inherited]
 

Definition at line 48 of file nilist.cc.

References slist_base::count_, slist_base::last_, and slink::next_.

Referenced by Slist< T >::insert(), and Islist< Segment >::insert().

00049 {
00050     count_++;
00051     if (last_)
00052         a->next_ = last_->next_;
00053     else
00054         last_ = a;
00055     last_->next_ = a;
00056 }

template<class T>
void Islist< T >::insert T *  a  )  [inline]
 

Definition at line 76 of file nilist.h.

00076 {slist_base::insert(a);}

slink* slist_base::last  )  [inline, inherited]
 

Definition at line 64 of file nilist.h.

References slist_base::last_.

00064 {return last_;}    /* XXX */

int slist_base::rc  )  [inline, inherited]
 

Definition at line 66 of file nilist.h.

References slist_base::remove_count_.

00066 {return remove_count_;} /* XXX */

void slist_base::remove slink a,
slink prev
[inherited]
 

Definition at line 59 of file nilist.cc.

References slist_base::count_, slist_base::last_, slink::next_, and slist_base::remove_count_.

Referenced by Islist< Segment >::remove().

00060 {
00061     remove_count_++; /* XXX */
00062     count_--;
00063     if (prev && prev->next_ != a)
00064             printf("In remove(): Error: prev->next!=a  prev=%p  a=%p\n", prev, a);
00065     if (last_ == NULL) 
00066         return;
00067     if (prev == NULL)
00068         if (last_->next_ == a)
00069             prev = last_;
00070         else 
00071             return;
00072 
00073     prev->next_ = a->next_;
00074     if (last_ == a)             // a was last in list
00075         last_ = prev;
00076     if (last_->next_ == a)      // a was only one in list
00077         last_ = NULL;
00078 }

template<class T>
void Islist< T >::remove T *  a,
T *  prev
[inline]
 

Definition at line 78 of file nilist.h.

00078 {slist_base::remove(a,prev);}


Friends And Related Function Documentation

template<class T>
friend class Islist_iter< T > [friend]
 

Definition at line 74 of file nilist.h.

friend class slist_base_iter [friend, inherited]
 

Definition at line 67 of file nilist.h.


The documentation for this class was generated from the following file:
Generated on Tue Apr 20 12:54:01 2004 for NS2.26SourcesOriginal by doxygen 1.3.3