home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / CLASS.ZIP / CHAIN.H < prev    next >
Text File  |  1993-01-30  |  1KB  |  46 lines

  1. #ifndef CHAIN_H
  2. #define CHAIN_H
  3.  
  4.  
  5. #include "object.h"
  6.  
  7.  
  8. #define idForeachChainElementDelete 0
  9. #define idForeachChainElementSearch 1 // Needs function chaiElement::isEqual to be overloaded
  10. #define idForeachChainElementLast 1
  11.  
  12.  
  13. class chainElement;
  14.  
  15.  
  16. class chain : virtual public object        // container class
  17. {    public:
  18.     chainElement *pFirst, *pLast;
  19.     unsigned int iNumberOfElements;
  20.     chain(void);
  21.     virtual ~chain(void);
  22.     int foreach(unsigned int iMsg, void *pDummy);    // calls for each chainElement
  23.         virtual void bubbleSort(void);
  24. };
  25.  
  26.  
  27. class chainElement : virtual public object    // double linked list
  28. {    public:
  29.     chain *pParent;            // container 
  30.     chainElement *pPrev, *pSucc;
  31.     chainElement(chain *pParentNew);
  32.     chainElement(void);
  33.     virtual ~chainElement(void);
  34.     virtual int toBeCalledForeachElement(unsigned int iMsg, void *pDummy);
  35.         virtual void insertSorted(chain *pParentNew);
  36.     virtual Boolean laterThenThis(chainElement *pElement);
  37.     virtual void exchange(chainElement *pElement);
  38.        virtual Boolean isEqual(void *pDummy);
  39. #ifdef DEBUG
  40.     void checkConsistence(void);
  41. #endif /* DEBUG */
  42. };
  43.  
  44.  
  45. #endif /* !CHAIN_H */
  46.