home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Sample Code / AOCE Sample Code / PowerTalk Access Modules / Sample SMSAM / SampleSMSAM Source / VirtualFile / VirtualFile.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-28  |  2.0 KB  |  87 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        VirtualFile.h
  3.  
  4.     Copyright:    © 1991-1994 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Part of the AOCE Sample SMSAM Package.  Consult the license
  8.     which came with this software for your specific legal rights.
  9.  
  10. */
  11.  
  12.  
  13.  
  14. #ifndef __VIRTUALFILE__
  15. #define __VIRTUALFILE__
  16.  
  17. #ifndef __ABSTRACTFILE__
  18. #include "AbstractFile.h"
  19. #endif
  20.  
  21. #ifndef    __OBJECTLIST__
  22. #include "ObjectList.h"
  23. #endif
  24.  
  25. #pragma push
  26. #pragma segment VirtualFile
  27.  
  28. class TVirtualFileList;
  29.  
  30. /***********************************|****************************************/
  31.  
  32. class TVirtualFile  : public TAbstractFile
  33. {
  34. public:
  35.     virtual ~TVirtualFile();
  36.  
  37. // subclasses must override…
  38.  
  39.     virtual OSErr                     ReadData (void* buffer,long& count) = 0;
  40.     virtual OSErr                     WriteData (const void* buffer, long& count) = 0;
  41.  
  42.     virtual OSErr                     SetPosition (short posMode, long posOff) = 0;
  43.     virtual OSErr                     GetPosition (long& filePos) const = 0;
  44.  
  45.     virtual OSErr                     SetEnd (long logEof) = 0;
  46.     virtual OSErr                     GetEnd (long& logEof) const = 0;
  47.  
  48. // no need for subclasses to override…
  49.  
  50.     virtual void                     SetUserRef(long ref);
  51.     virtual    long                     GetUserRef() const;
  52.  
  53.     virtual void                     RegisterReference();
  54.     virtual void                     UnregisterReference();
  55.  
  56.     virtual    Boolean                 GetAutoDispose()const;
  57.     virtual void                     SetAutoDispose(Boolean doDispose);
  58.  
  59.     virtual long                     LastUsed()const;        // Return tickCount of when file was last used
  60.  
  61.     virtual ostream&                 operator >> ( ostream& ) const;
  62.  
  63. protected:    TVirtualFile ();
  64.             TVirtualFile ( const TVirtualFile& );
  65.             TVirtualFile&            operator = ( const TVirtualFile& );
  66.  
  67.     virtual void                     UpdateUsage();
  68.  
  69.             long                     fUserRef;            // Reserved for user
  70.             long                     fReferenceCount;    // Number of refs
  71.             Boolean                 fAutoDispose;        // If true, the object deletes itself when the reference count reaches zero
  72.             unsigned long             fLastUsed;            // When file used last (in ticks)
  73. };
  74.  
  75. DeclareList(TVirtualFile,TVirtualFileList);
  76.  
  77. /***********************************|****************************************/
  78.  
  79. #pragma pop
  80.  
  81. #endif    // defined __VIRTUALFILE__
  82.  
  83.  
  84.  
  85.  
  86.  
  87.