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)26 IListIterBase::IListIterBase(const IListBase &list) : p_(list.head_)
27 {
28 }
29 
30 inline
done()31 int IListIterBase::done() const
32 {
33   return p_ == 0;
34 }
35 
36 inline
cur()37 Link *IListIterBase::cur() const
38 {
39   return p_;
40 }
41 
42 inline
next()43 void IListIterBase::next()
44 {
45   p_ = p_->next_;
46 }
47 
48 #ifdef SP_NAMESPACE
49 }
50 #endif
51 
52 #endif /* not IListIterBase_INCLUDED */
53