home *** CD-ROM | disk | FTP | other *** search
- /*
- File: VirtualFile.h
-
- Copyright: © 1991-1994 by Apple Computer, Inc.
- All rights reserved.
-
- Part of the AOCE Sample SMSAM Package. Consult the license
- which came with this software for your specific legal rights.
-
- */
-
-
-
- #ifndef __VIRTUALFILE__
- #define __VIRTUALFILE__
-
- #ifndef __ABSTRACTFILE__
- #include "AbstractFile.h"
- #endif
-
- #ifndef __OBJECTLIST__
- #include "ObjectList.h"
- #endif
-
- #pragma push
- #pragma segment VirtualFile
-
- class TVirtualFileList;
-
- /***********************************|****************************************/
-
- class TVirtualFile : public TAbstractFile
- {
- public:
- virtual ~TVirtualFile();
-
- // subclasses must override…
-
- virtual OSErr ReadData (void* buffer,long& count) = 0;
- virtual OSErr WriteData (const void* buffer, long& count) = 0;
-
- virtual OSErr SetPosition (short posMode, long posOff) = 0;
- virtual OSErr GetPosition (long& filePos) const = 0;
-
- virtual OSErr SetEnd (long logEof) = 0;
- virtual OSErr GetEnd (long& logEof) const = 0;
-
- // no need for subclasses to override…
-
- virtual void SetUserRef(long ref);
- virtual long GetUserRef() const;
-
- virtual void RegisterReference();
- virtual void UnregisterReference();
-
- virtual Boolean GetAutoDispose()const;
- virtual void SetAutoDispose(Boolean doDispose);
-
- virtual long LastUsed()const; // Return tickCount of when file was last used
-
- virtual ostream& operator >> ( ostream& ) const;
-
- protected: TVirtualFile ();
- TVirtualFile ( const TVirtualFile& );
- TVirtualFile& operator = ( const TVirtualFile& );
-
- virtual void UpdateUsage();
-
- long fUserRef; // Reserved for user
- long fReferenceCount; // Number of refs
- Boolean fAutoDispose; // If true, the object deletes itself when the reference count reaches zero
- unsigned long fLastUsed; // When file used last (in ticks)
- };
-
- DeclareList(TVirtualFile,TVirtualFileList);
-
- /***********************************|****************************************/
-
- #pragma pop
-
- #endif // defined __VIRTUALFILE__
-
-
-
-
-
-