home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 October / Chip_1997-10_cd.bin / tema / sybase / powerj / h.z / WCQUEUE.H < prev    next >
C/C++ Source or Header  |  1996-11-06  |  2KB  |  84 lines

  1. //
  2. //  wcqueue.h    Defines the WATCOM Queue Container Class
  3. //
  4. //  Copyright by WATCOM International Corp. 1988-1996.  All rights reserved.
  5. //
  6. #ifndef _WCQUEUE_H_INCLUDED
  7. #define _WCQUEUE_H_INCLUDED
  8. #if !defined(_ENABLE_AUTODEPEND)
  9.   #pragma read_only_file;
  10. #endif
  11.  
  12. #ifndef __cplusplus
  13. #error wcqueue.h is for use with C++
  14. #endif
  15.  
  16. #ifndef _WCDEFS_H_INCLUDED
  17.  #include <wcdefs.h>
  18. #endif
  19. #ifndef _WCLIST_H_INCLUDED
  20.  #include <wclist.h>
  21. #endif
  22.  
  23.  
  24.  
  25. //
  26. //  The WCQueue template class defines a queue.  The template supplies
  27. //  the type of the data maintained in the queue, and the methods for
  28. //  manipulating the queue.
  29. //
  30. //  The insert operation does an append.  This is because an item
  31. //  inserted into a queue is actually the last item removed.
  32. //
  33. //  The class 'Type' should be properly defined for copy and assignment
  34. //  operations.
  35. //
  36.  
  37. template<class Type, class FType>
  38. class WCQueue : private FType {
  39. public:
  40.     inline WCQueue() {};
  41.     inline WCQueue( void * (*user_alloc)( size_t )
  42.                   , void (*user_dealloc)( void *, size_t )
  43.                 ) : FType( user_alloc, user_dealloc ) {};
  44.     inline ~WCQueue() {};
  45.  
  46.     inline WCbool insert( const Type & data )  {
  47.         return( FType::append( data ) );
  48.     };
  49.  
  50.     inline WCbool isEmpty() const {
  51.         return( FType::isEmpty() );
  52.     };
  53.  
  54.     inline int entries() const {
  55.         return( FType::entries() );
  56.     };
  57.  
  58.     inline Type get() {
  59.         return( FType::get() );
  60.     };
  61.  
  62.     inline Type first() const {
  63.         return( FType::find( 0 ) );
  64.     };
  65.  
  66.     inline Type last() const {
  67.         return( FType::findLast() );
  68.     };
  69.  
  70.     inline void clear() {
  71.         FType::clear();
  72.     };
  73.  
  74.     inline wc_state exceptions() const {
  75.         return( FType::exceptions() );
  76.     };
  77.  
  78.     inline wc_state exceptions( wc_state const set_flags ) {
  79.         return( FType::exceptions( set_flags ) );
  80.     };
  81. };
  82.  
  83. #endif
  84.