home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / OTHERUTI / TCPP10-8.ZIP / CLASSEXM.ZIP / FILEDATA.H < prev    next >
C/C++ Source or Header  |  1990-09-26  |  8KB  |  311 lines

  1. #ifndef __FILEDATA_H
  2. #define __FILEDATA_H
  3.  
  4. //
  5. // This file contains proprietary information of Borland International.
  6. // Copying or reproduction without prior written approval is prohibited.
  7. //
  8. // Copyright (c) 1990
  9. // Borland International
  10. // 1800 Scotts Valley Dr.
  11. // Scotts Valley, CA 95066
  12. // (408) 438-8400
  13. //
  14.  
  15. // Contents ----------------------------------------------------------------
  16. //
  17. //      fileDataClass
  18. //      filesByNameClass
  19. //      filesByDateClass
  20. //      filesBySizeClass
  21. //
  22. //      FileData
  23. //
  24. //      FilesByName
  25. //      FilesByName::isEqual
  26. //      FilesByName::isLessThan
  27. //
  28. //      FilesByDate
  29. //      FilesByDate::isEqual
  30. //      FilesByDate::isLessThan
  31. //
  32. //      FilesBySize
  33. //      FilesBySize::isEqual
  34. //      FilesBySize::isLessThan
  35. //
  36. // Description
  37. //
  38. //      Defines file data classes.  These classes are used by DIRECTRY.CPP,
  39. //      which is part of the directory listing example program for the
  40. //      Turbo C++ class library.
  41. //
  42. // End ---------------------------------------------------------------------
  43.  
  44. // Interface Dependencies ---------------------------------------------------
  45.  
  46. #ifndef __DIR_H
  47. #include <dir.h>
  48. #define __DIR_H
  49. #endif
  50.  
  51. #ifndef __CLSDEFS_H
  52. #include <clsdefs.h>
  53. #endif
  54.  
  55. #ifndef __SORTABLE_H
  56. #include <sortable.h>
  57. #endif
  58.  
  59. #ifndef __STRNG_H
  60. #include <strng.h>
  61. #endif
  62.                                                              
  63. #ifndef __LDATE_H
  64. #include <ldate.h>
  65. #endif
  66.  
  67. #ifndef __LTIME_H
  68. #include <ltime.h>
  69. #endif
  70.  
  71. // End Interface Dependencies ------------------------------------------------
  72.  
  73.  
  74. // Macro //
  75.  
  76. // Summary -----------------------------------------------------------------
  77. //
  78. //      Defines a values for the file classes.  We start from the first
  79. //      available user class number.  The class numbers are defined
  80. //      in CLSDEFS.H, in the class library INCLUDE directory.
  81. //
  82. // End ---------------------------------------------------------------------
  83.  
  84. #define     fileDataClass       __firstUserClass
  85. #define     filesByNameClass    (fileDataClass+1)
  86. #define     filesByDateClass    (filesByNameClass+1)
  87. #define     filesBySizeClass    (filesByDateClass+1)
  88.  
  89. // Class //
  90.  
  91. class FileData: public Sortable
  92. {
  93. public:
  94.                             FileData( ffblk& );
  95.     virtual classType       isA() const { return fileDataClass; }
  96.     virtual char           *nameOf() const { return "FileData"; }
  97.     virtual int             isEqual( const Object& ) const = 0;
  98.     virtual int             isLessThan( const Object& ) const = 0;
  99.     virtual hashValueType   hashValue() const { return 0; }
  100.     virtual void            printOn( ostream& ) const;
  101. protected:
  102.     String                  fileName;
  103.     Date                    fileDate;
  104.     Time                    fileTime;
  105.     long                    fileSize;
  106. };
  107.  
  108. // Description -------------------------------------------------------------
  109. //
  110. //      Defines a base file class.  Class FileData is derived from the
  111. //      class Sortable, which is part of the class library.
  112. //
  113. // Constructor
  114. //
  115. //      FileData
  116. //
  117. //      Constructs a FileData object from the DOS file block.
  118. //
  119. // Public Members
  120. //
  121. //      isA
  122. //
  123. //      Returns the class type of FileData.
  124. //
  125. //      nameOf
  126. //
  127. //      Returns a pointer to the character string "FileData."
  128. //
  129. //      isEqual
  130. //
  131. //      Determines whether two file data objects are equal.
  132. //      Redeclared as pure virtual.
  133. //
  134. //      isLessThan
  135. //      Determines whether one file data object is less than another.
  136. //      Redeclared as pure virtual.
  137. //      
  138. //      hashValue
  139. //
  140. //      Returns a pre-defined hash value for a FileData object.
  141. //
  142. //      printOn
  143. //
  144. //      Prints the contents of a file data object.
  145. //
  146. // End ---------------------------------------------------------------------
  147.  
  148.  
  149. // Class //
  150.  
  151. class FilesByName:  public FileData
  152. {
  153. public:
  154.                             FilesByName( ffblk& blk ) : FileData( blk ) {}
  155.     virtual classType       isA() const { return filesByNameClass; }
  156.     virtual char           *nameOf() const { return "FilesByName"; }
  157.     virtual int             isEqual( const Object& ) const;
  158.     virtual int             isLessThan( const Object& ) const;
  159. };
  160.  
  161. // Description -------------------------------------------------------------
  162. //
  163. //      Defines a file class which is sorted by name.  Class FilesByName
  164. //      is derived from the class FileData, which is a user-defined
  165. //      base class.
  166. //
  167. // Constructor
  168. //
  169. //      FilesByName
  170. //
  171. //      Constructs a FilesByName object from the DOS file block.
  172. //
  173. // Public Members
  174. //
  175. //      isA
  176. //
  177. //      Returns the class type of FilesByName.
  178. //
  179. //      nameOf
  180. //
  181. //      Returns a pointer to the character string "FilesByName."
  182. //
  183. //      isEqual
  184. //
  185. //      Determines whether two file data objects are equal.
  186. //
  187. //      isLessThan
  188. //      Determines whether one file data object is less than another.
  189. //      
  190. // Inherited Members
  191. //
  192. //      hashValue
  193. //
  194. //      Inherited from FileData.
  195. //
  196. //      printOn
  197. //
  198. //      Inherited from FileData.
  199. //
  200. // End ---------------------------------------------------------------------
  201.  
  202.  
  203. // Class //
  204.  
  205. class FilesByDate:  public FileData
  206. {
  207. public:
  208.                             FilesByDate( ffblk& blk ) : FileData( blk ) {}
  209.     virtual classType       isA() const { return filesByDateClass; }
  210.     virtual char           *nameOf() const { return "FilesByDate"; }
  211.     virtual                 isEqual( const Object& ) const;
  212.     virtual                 isLessThan( const Object& ) const;
  213. };
  214.  
  215. // Description -------------------------------------------------------------
  216. //
  217. //      Defines a file class which is sorted by date.  Class FilesByDate
  218. //      is derived from the class FileData, which is a user-defined
  219. //      base class.
  220. //
  221. // Constructor
  222. //
  223. //      FilesByDate
  224. //
  225. //      Constructs a FilesByDate object from the DOS file block.
  226. //
  227. // Public Members
  228. //
  229. //      isA
  230. //
  231. //      Returns the class type of FilesByDate.
  232. //
  233. //      nameOf
  234. //
  235. //      Returns a pointer to the character string "FilesByDate."
  236. //
  237. //      isEqual
  238. //
  239. //      Determines whether two file data objects are equal.
  240. //
  241. //      isLessThan
  242. //      Determines whether one file data object is less than another.
  243. //      
  244. // Inherited Members
  245. //
  246. //      hashValue
  247. //
  248. //      Inherited from FileData.
  249. //
  250. //      printOn
  251. //
  252. //      Inherited from FileData.
  253. //
  254. // End ---------------------------------------------------------------------
  255.  
  256.  
  257. // Class //
  258.  
  259. class FilesBySize:  public FileData
  260. {
  261. public:
  262.                             FilesBySize( ffblk& blk ) : FileData( blk ) {}
  263.     virtual classType       isA() const { return filesBySizeClass; }
  264.     virtual char           *nameOf() const { return "FilesBySize"; }
  265.     virtual                 isEqual( const Object& ) const;
  266.     virtual                 isLessThan( const Object& ) const;
  267. };
  268.  
  269. // Description -------------------------------------------------------------
  270. //
  271. //      Defines a file class which is sorted by size.  Class FilesBySize
  272. //      is derived from the class FileData, which is a user-defined
  273. //      base class.
  274. //
  275. // Constructor
  276. //
  277. //      FilesBySize
  278. //
  279. //      Constructs a FilesBySize object from the DOS file block.
  280. //
  281. // Public Members
  282. //
  283. //      isA
  284. //
  285. //      Returns the class type of FilesBySize.
  286. //
  287. //      nameOf
  288. //
  289. //      Returns a pointer to the character string "FilesBySize."
  290. //
  291. //      isEqual
  292. //
  293. //      Determines whether two file data objects are equal.
  294. //
  295. //      isLessThan
  296. //      Determines whether one file data object is less than another.
  297. //      
  298. // Inherited Members
  299. //
  300. //      hashValue
  301. //
  302. //      Inherited from FileData.
  303. //
  304. //      printOn
  305. //
  306. //      Inherited from FileData.
  307. //
  308. // End ---------------------------------------------------------------------
  309.  
  310. #endif    // __FILEDATA_H //
  311.