home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c063 / 3.ddi / CLASSEXM.ZIP / FILEDATA.H < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-18  |  2.0 KB  |  95 lines

  1. #ifndef __FILEDATA_H
  2. #define __FILEDATA_H
  3.  
  4. #if !defined( __SORTABLE_H )
  5. #include <Sortable.h>
  6. #endif    // __SORTABLE_H
  7.  
  8. #if !defined( __STRNG_H )
  9. #include <Strng.h>
  10. #endif    // __STRNG_H
  11.  
  12. #if !defined( __LDATE_H )
  13. #include <LDate.h>
  14. #endif    // __LDATE_H
  15.  
  16. #if !defined( __LTIME_H )
  17. #include <LTime.h>
  18. #endif    // __LTIME_H
  19.  
  20. #ifndef __DIR_H
  21. #include <dir.h>
  22. #endif
  23.  
  24. const fileDataClass = __firstUserClass;
  25. const filesByNameClass = fileDataClass+1;
  26. const filesByDateClass = filesByNameClass+1;
  27. const filesBySizeClass = filesByDateClass+1;
  28.  
  29. class FileData: public Sortable
  30. {
  31.  
  32. public:
  33.  
  34.     FileData( ffblk& );
  35.  
  36.     virtual classType isA() const { return fileDataClass; }
  37.     virtual char *nameOf() const { return "FileData"; }
  38.     virtual int isEqual( const Object& ) const = 0;
  39.     virtual int isLessThan( const Object& ) const = 0;
  40.     virtual hashValueType hashValue() const { return 0; }
  41.     virtual void printOn( ostream& ) const;
  42.  
  43. protected:
  44.  
  45.     String fileName;
  46.     Date fileDate;
  47.     Time fileTime;
  48.     long fileSize;
  49.  
  50. };
  51.  
  52. class FilesByName:  public FileData
  53. {
  54.  
  55. public:
  56.  
  57.     FilesByName( ffblk& blk ) : FileData( blk ) {}
  58.  
  59.     virtual classType isA() const { return filesByNameClass; }
  60.     virtual char *nameOf() const { return "FilesByName"; }
  61.     virtual int isEqual( const Object& ) const;
  62.     virtual int isLessThan( const Object& ) const;
  63.  
  64. };
  65.  
  66. class FilesByDate:  public FileData
  67. {
  68.  
  69. public:
  70.  
  71.     FilesByDate( ffblk& blk ) : FileData( blk ) {}
  72.  
  73.     virtual classType isA() const { return filesByDateClass; }
  74.     virtual char *nameOf() const { return "FilesByDate"; }
  75.     virtual isEqual( const Object& ) const;
  76.     virtual isLessThan( const Object& ) const;
  77.  
  78. };
  79.  
  80. class FilesBySize:  public FileData
  81. {
  82.  
  83. public:
  84.  
  85.     FilesBySize( ffblk& blk ) : FileData( blk ) {}
  86.  
  87.     virtual classType isA() const { return filesBySizeClass; }
  88.     virtual char *nameOf() const { return "FilesBySize"; }
  89.     virtual isEqual( const Object& ) const;
  90.     virtual isLessThan( const Object& ) const;
  91.  
  92. };
  93.  
  94. #endif    
  95.