1 // Copyright (c) 1994 James Clark 2 // See the file COPYING for copying permission. 3 #pragma ident "%Z%%M% %I% %E% SMI" 4 5 #ifndef IListIterBase_INCLUDED 6 #define IListIterBase_INCLUDED 1 7 8 #include "Link.h" 9 #include "IListBase.h" 10 11 #ifdef SP_NAMESPACE 12 namespace SP_NAMESPACE { 13 #endif 14 15 class SP_API IListIterBase { 16 public: 17 IListIterBase(const IListBase &); 18 int done() const; 19 Link *cur() const; 20 void next(); 21 private: 22 Link *p_; 23 }; 24 25 inline IListIterBase(const IListBase & list)26IListIterBase::IListIterBase(const IListBase &list) : p_(list.head_) 27 { 28 } 29 30 inline done()31int IListIterBase::done() const 32 { 33 return p_ == 0; 34 } 35 36 inline cur()37Link *IListIterBase::cur() const 38 { 39 return p_; 40 } 41 42 inline next()43void IListIterBase::next() 44 { 45 p_ = p_->next_; 46 } 47 48 #ifdef SP_NAMESPACE 49 } 50 #endif 51 52 #endif /* not IListIterBase_INCLUDED */ 53