home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 21 / IOPROG_21.ISO / SOFT / LIBMAT.ZIP / MATBOX.HPP < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-16  |  2.2 KB  |  94 lines

  1. /**************************************************/
  2. /*    matbox.hpp header for matList family        */
  3. /**************************************************/
  4.  
  5.  
  6. /**************************************************/
  7. /*            MatClass Source File                */
  8. /*       Copyright of C. R. Birchenhall           */
  9. /*       University of Manchester, UK.            */
  10. /*   MatClass is freeware. This file should be    */
  11. /* made freely available to users of any software */
  12. /* whose creation is wholly or partly dependent   */
  13. /*                on this file.                   */
  14. /**************************************************/
  15.  
  16. #ifndef MATBOX_H
  17.  
  18. #define MATBOX_H
  19.  
  20. #ifndef MATRIX_H
  21. #include "matrix.hpp"
  22. #endif
  23.  
  24. struct matListNode 
  25. {
  26.    void        *item ;
  27.    matListNode *next ;
  28. } ; // matListNode
  29.  
  30. class matList 
  31. {
  32.  
  33.     protected :
  34.  
  35.        charArray     nm ; // name for series
  36.        matListNode   *top, *current, *sentinel ;
  37.  
  38.     public :
  39.  
  40.        matList( void ) ;
  41.        ~matList( void ) ;
  42.        matList( matList& list ) ;
  43.        void operator = ( matList& list ) ;
  44.  
  45.        charArray name( char *newName = 0 ) ;
  46.  
  47.        virtual int   store( void* item ) ;
  48.        virtual void* examine( void ) ;
  49.        virtual void* retrieve( void ) ;
  50.        virtual int   remove( void* target ) ;
  51.        virtual int   endOfList( void ) ;
  52.        virtual void  gotoHead( void ) ;
  53.        virtual void  gotoNext( void ) ;
  54.  
  55. } ; // matList
  56.  
  57. class matObjList : public matList 
  58. {
  59.  
  60.    public :
  61.  
  62.       matObjList( void ) ;
  63.       ~matObjList( void ) ;
  64.       matObjList( matObjList& list ) ;
  65.       void operator = ( matObjList& list ) ;
  66.  
  67.       virtual int        append( matObject* obj ) ;
  68.       virtual matObject* peek( void ) ;
  69.       virtual matObject* extract( void ) ;
  70.  
  71.       virtual void print( outFile& f = out ) ;
  72.  
  73. } ; // matObjList
  74.  
  75. class matrixList : public matObjList 
  76. {
  77.  
  78.    public :
  79.  
  80.       matrixList( void ) ;
  81.       matrixList( matrixList& list ) ;
  82.       ~matrixList( void ) ;
  83.       void operator = ( matrixList& list ) ;
  84.  
  85.       virtual int     attach( matrix* m ) ;
  86.       virtual matrix* view( void ) ;
  87.       virtual matrix* detach( void ) ;
  88.  
  89.       void dump( outFile& f = out ) ;
  90.  
  91. } ; // matrixList
  92.  
  93. #endif
  94.