Resource: RFileSystem

global resource RFileSystem
   operations
      initialize ()
         "Called when execution starts."
      terminate ()
         "Called just before execution ends."

      openRead (file: RFile)  
         "Called before file is opened for reading."
      openCreate (file: RFile)
         "Called before file is created for writing.  At this point 
          in the execution, file must not exist."

      openOverwrite (file: RFile)     
         "Called before file is opened for writing.  At this point 
          in the execution, file exists."

      openAppend (file: RFile)
         "Called before file is opened for appending."

      close (file: RFile)                     
         "Called before file is closed."

      preDelete (file: RFile)                 
         "Called before file is deleted."
      postDelete (file: RFile)                
         "Called after file is deleted."

      renameNew (file: RFile, newfile: RFile
         "Called before file is renamed to new file newfile."
      renameReplace (file: RFile, newfile: RFile)     
         "Called before file is renamed to existing file newfile."
            
      makeDirectory (file: RFile)
         "Called before file is created as a directory."
            
      preWrite (file: RFile, n: int)
         "Called before up to n bytes are written to file.  File must have
          previously been passed to openCreate, openOverwrite or openAppend."

      postWrite (file: RFile, n: int)
         "Called after exactly n bytes were written to file. "

      preRead (file: RFile, n: int)
         "Called before up to n bytes are read from file.  File must have
          previously been passed to openRead."

      postRead (file: RFile, n: int)
         "Called after exactly n bytes were read from file."
            
      observeExists (file: RFile)
         "Called before revealing if file exists."
      observeWriteable (file: RFile)
         "Called before revealing if file is writeable. "
            
      
      observeReadable (file: RFile)
         "Called before revealing if file is writeable. "
      observeIsFile (file: RFile)
         "Called before revealing if file is a regular file (not a directory)."
      observeLength (file: RFile)
         "Called before revealing length of file."
      observeList (file: RFile)
         "Called before revealing the files in director file."

      observeLastModifiedTime (file: RFile)
         "Called before revealing when file was last modified."
      setLastModifiedTime (file: RFile)
         "Called before setting the last modified time of file."

      observeLastAccessTime (file: RFile)
         "Called before reveling last access time of file."
      setLastAccessTime (file: RFile)
         "Called before setting the last access time of file."

      observeCreationTime (file: RFile)
         "Called before revealing when file was created."
      setCreationTime (file: RFile)
         "Called before setting the creation time of file."

      observeAttributes (file: RFile)
         "Called before revealing miscellaneous attributes of file."
      setAttributes (file: RFile)
         "Called before setting miscellaneous attributes of file."
            
      group openFile (file: RFile)
         "Called before file is opened."
         openRead, openCreate, openOverwrite, openAppend, preDelete,
         renameNew (file: RFile, newfile: RFile) : openFile (file), 
         renameNew (file: RFile, newfile: RFile) : openFile (newfile),
         renameReplace (file: RFile, newfile: RFile) : openFile (file), 
         renameReplace (file: RFile, newfile: RFile) : openFile (newfile);
        
      group modifyFile (file: RFile)
         "Called before file is altered."
         openOverwrite, openAppend, openCreate, preDelete,
         setLastModifiedTime, setLastAccessTime, setCreationTime, setAttributes,
         renameNew (file: RFile, newfile: RFile): modifyFile (file),
         renameNew (file: RFile, newfile: RFile): modifyFile (newfile),
         renameReplace (file: RFile, newfile: RFile): modifyFile (file),
         renameReplace (file: RFile, newfile: RFile): modifyFile (newfile);

      group modifyExistingFile (file: RFile
         "Called before existing file is altered."
         openOverwrite, openAppend, preDelete,
         setLastModifiedTime, setLastAccessTime, setCreationTime, setAttributes,
         renameNew (file: RFile, newfile: RFile): modifyExistingFile (file),
         renameReplace (file: RFile, newfile: RFile): modifyExistingFile (file),
         renameReplace (file: RFile, newfile: RFile): modifyExistingFile (newfile);
        
      group observeProperty (file: RFile)
         "Called before any file property is revealed."
         observeExists, observeWriteable, 
         observeReadable, observeIsFile,
         observeLastModifiedTime, observeLength, observeList,
         observeCreationTime, observeLastAccessTime, observeAttributes;





About this file

Naccio Home Page
David Evans
University of Virginia, Computer Science