home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1998 / MacHack 1998.toast / Sessions / Completions / Completions Source / Files / FileInStream.h < prev    next >
Encoding:
Text File  |  1998-06-18  |  875 b   |  48 lines  |  [TEXT/CWIE]

  1. // FileInStream.h
  2.  
  3. #ifndef FileInStream_h
  4. #define FileInStream_h
  5.  
  6. #ifndef InStream_h
  7. #include "InStream.h"
  8. #endif
  9. #ifndef ParamBlockTask_h
  10. #include "ParamBlockTask.h"
  11. #endif
  12.  
  13. class FileReadingPath;
  14.  
  15. class FileInStream: public InStream,
  16.                           private ParamBlockTask
  17.   {
  18.     private:
  19.         virtual void Launch();
  20.         virtual void Kill();
  21.  
  22.         virtual void AtCompletion();
  23.     
  24.         enum { cacheBit = 16 };
  25.         enum { noCacheBit = 32 };
  26.         
  27.     protected:
  28.         virtual Task *NonblockingRead( Data );
  29.         virtual Task *BlockingRead( Data );
  30.         
  31.     public:
  32.         FileInStream();
  33.         ~FileInStream()                    {}
  34.         
  35.         bool HasFile() const                { return ioParam.ioRefNum != 0; }
  36.         void SetFile( const FileReadingPath&, uint32 position = 0 );
  37.         void ClearFile();
  38.         
  39.         uint32 Position() const;
  40.         void SetPosition( uint32 p );
  41.         
  42.         void SuggestCaching();
  43.         void SuggestNoCaching();
  44.         void ClearCachingSuggestion();
  45.   };
  46.  
  47. #endif
  48.