home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / OTHERUTI / TCPP30-1.ZIP / CLASSINC.ZIP / DEQUE.H < prev    next >
C/C++ Source or Header  |  1992-02-18  |  3KB  |  123 lines

  1. /*------------------------------------------------------------------------*/
  2. /*                                                                        */
  3. /*  DEQUE.H                                                               */
  4. /*                                                                        */
  5. /*  Copyright Borland International 1991                                  */
  6. /*  All Rights Reserved                                                   */
  7. /*                                                                        */
  8. /*------------------------------------------------------------------------*/
  9.  
  10. #if !defined( __DEQUE_H )
  11. #define __DEQUE_H
  12.  
  13. #if defined( TEMPLATES )
  14.  
  15.     #if !defined( __DEQUES_H )
  16.     #include <Deques.h>
  17.     #endif  // __DEQUES_H
  18.  
  19.     #define Deque   BI_TCDequeAsDoubleList
  20.     #define PDeque  PBI_TCDequeAsDoubleList
  21.     #define RDeque  RBI_TCDequeAsDoubleList
  22.     #define RPDeque RPBI_TCDequeAsDoubleList
  23.     #define PCDeque PCBI_TCDequeAsDoubleList
  24.     #define RCDeque RCBI_TCDequeAsDoubleList
  25.  
  26.     _CLASSDEF( BI_TCDequeAsDoubleList )
  27.  
  28.     #define DequeIterator   BI_TCDequeAsDoubleListIterator
  29.     #define PDequeIterator  PBI_TCDequeAsDoubleListIterator
  30.     #define RDequeIterator  RBI_TCDequeAsDoubleListIterator
  31.     #define RPDequeIterator RPBI_TCDequeAsDoubleListIterator
  32.     #define PCDequeIterator PCBI_TCDequeAsDoubleListIterator
  33.     #define RCDequeIterator RCBI_TCDequeAsDoubleListIterator
  34.  
  35.     _CLASSDEF( BI_TCDequeAsDoubleListIterator )
  36.  
  37. #else   // TEMPLATES
  38.  
  39.     #if !defined( __CLSTYPES_H )
  40.     #include <ClsTypes.h>
  41.     #endif  // __CLSTYPES_H
  42.  
  43.     #if !defined( __CONTAIN_H )
  44.     #include <Contain.h>
  45.     #endif  // __CONTAIN_H
  46.  
  47.     #if !defined( __DBLLIST_H )
  48.     #include <DblList.h>
  49.     #endif  // __DBLLIST_H
  50.  
  51.     _CLASSDEF(Deque)
  52.  
  53.     class _CLASSTYPE Deque : public Container
  54.     {
  55.  
  56.     public:
  57.  
  58.         ~Deque()
  59.             {
  60.             flush();
  61.             }
  62.  
  63.         Object& peekLeft() const
  64.             {
  65.             return theDeque.peekAtHead();
  66.             }
  67.  
  68.         Object& peekRight() const
  69.             {
  70.             return theDeque.peekAtTail();
  71.             }
  72.  
  73.         Object& getLeft();
  74.         Object& getRight();
  75.  
  76.         void putLeft( Object& o )
  77.             {
  78.             theDeque.addAtHead( o ); itemsInContainer++;
  79.             }
  80.  
  81.         void putRight( Object& o )
  82.             {
  83.             theDeque.addAtTail( o ); itemsInContainer++;
  84.             }
  85.  
  86.         virtual void flush( DeleteType dt = DefDelete )
  87.             {
  88.             theDeque.flush( dt );
  89.             }
  90.  
  91.         virtual int isEmpty() const
  92.             {
  93.             return theDeque.isEmpty();
  94.             }
  95.  
  96.         virtual countType getItemsInContainer() const
  97.             {
  98.             return theDeque.getItemsInContainer();
  99.             }
  100.  
  101.         virtual ContainerIterator& initIterator() const;
  102.  
  103.         virtual classType isA() const
  104.             {
  105.             return dequeClass;
  106.             }
  107.  
  108.         virtual char _FAR *nameOf() const
  109.             {
  110.             return "Deque";
  111.             }
  112.  
  113.     private:
  114.  
  115.         DoubleList theDeque;
  116.  
  117.     };
  118.  
  119. #endif  // TEMPLATES
  120.  
  121. #endif  // __DEQUE_H
  122.  
  123.