home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1998 / MacHack 1998.toast / Papers / C++ Exceptions / µShell / Array Classes / (Hidden) / LinkedListIterator.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-05-25  |  1.2 KB  |  54 lines  |  [TEXT/CWIE]

  1. /*
  2.     File:        LinkedListIterator.h
  3.  
  4.     Contains:    stuff
  5.  
  6. */
  7.  
  8. #ifndef _LINKEDLISTITERATOR_
  9. #define _LINKEDLISTITERATOR_
  10. #pragma once
  11.  
  12. #include <Types.h>
  13.  
  14. class ListLink;
  15. class LinkedList;
  16.  
  17. //--------------------------------------------------------------------------------
  18.  
  19. class LinkedListIterator
  20. {
  21. protected:
  22.     LinkedList&                fList;             // The list we're iterating
  23.     ListLink*                fCurrentLink;     // Link to the current object in list
  24.     LinkedListIterator*        fNextIterator;     // Link to next iterator of this list
  25.  
  26.     friend class ListLink;
  27.     friend class LinkedList;
  28.     
  29. public:
  30.     LinkedListIterator(LinkedList& list, ListLink* start = nil);
  31.     ~LinkedListIterator();
  32.  
  33.     ListLink*    CurrentLink()    { return fCurrentLink; }
  34.     
  35.     virtual Boolean        MoreBefore();
  36.     virtual Boolean        MoreAfter();
  37.  
  38.     virtual ListLink*    FirstLink();
  39.     virtual ListLink*    LastLink();
  40.     virtual ListLink*    NextLink();
  41.     virtual ListLink*    PrevLink();
  42.  
  43. protected:
  44.     virtual void    LinkInserted(ListLink& link);    // Called after inserting a lin in list
  45.     virtual void    RemovingLink(ListLink& link);    // Called before removing a Link from list
  46.     virtual void    RemovingAllLinks(void);                        // Called before clearing the list
  47.     
  48. };
  49.  
  50. //--------------------------------------------------------------------------------
  51.  
  52. #endif // _LINKEDLISTITERATOR_
  53.  
  54.