Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
Headers/FileClass.h
/* |
File: FileClass.h |
Contains: TFile is a simple object that does file manipulations |
TFile.h contains the TFile class and subclass definitions. |
Written by: Kent Sandvik |
Copyright: Copyright © 1992-1999 by Apple Computer, Inc., All Rights Reserved. |
You may incorporate this Apple sample source code into your program(s) without |
restriction. This Apple sample source code has been provided "AS IS" and the |
responsibility for its operation is yours. You are not permitted to redistribute |
this Apple sample source code as "Apple sample source code" after having made |
changes. If you're going to re-distribute the source, we require that you make |
it clear in the source that the code was descended from Apple sample source |
code, but that you've made changes. |
Change History (most recent first): |
8/18/1999 Karl Groethe Updated for Metrowerks Codewarror Pro 2.1 |
*/ |
// Declare label for this header file |
#ifndef _FILECLASS_ |
#define _FILECLASS_ |
#ifndef _DTSCPLUSLIBRARY_ |
#include "DTSCPlusLibrary.h" |
#endif |
#ifndef __FILES__ |
#include <Files.h> |
#endif |
#ifndef __OSUTILS__ |
#include <OSUtils.h> |
#endif |
#ifndef __RESOURCES__ |
#include <Resources.h> |
#endif |
// globals |
const OSType kDefaultCreator = '????'; |
const OSType kDefaultType = 'TEXT'; |
const SignedByte kExclusiveReadWrite = 0; |
const long kNoOffset = 0L; |
// _________________________________________________________________________________________________________ // |
// TFile Class Interface. |
class TFile |
// Basic File class for file I/O handling. |
{ |
public: |
// CONSTRUCTORS AND DESTRUCTORS |
TFile(char* name = "UnTitled"); // define file based on name (current folder) |
TFile(FSSpec theSpec); // define file based on FSSpec |
TFile(short volume, // define file based on volume, dirID and name (FSSpec) |
long dirID, |
Str63 name); |
virtual~ TFile(); // default destructor |
virtual void Initialize(); // initialize fields to known values |
// MAIN INTERFACE |
virtual Boolean Create(); // create a file |
virtual Boolean Rename(char* newName); // rename the file |
virtual void Delete(); // delete the file |
virtual Boolean FileExists(); // check if file exists |
virtual Boolean Open(SignedByte permission) = 0;// open file |
virtual Boolean Close() = 0; // close file |
// ACCESSORS AND MUTATORS |
virtual void SetType(const OSType creator, // define file type and creator |
const OSType fileType); |
virtual void SetFileName(const Str63 fileName); // set name of file |
virtual FInfo GetFileInfo(); // get file information frome the specific file |
// FIELDS |
protected: |
FSSpec fFileSpec; // the generic container for File information |
OSType fFileType; // type of file |
OSType fCreator; // creator of file |
Boolean fOpened; // keep track if the file is open or not |
Boolean fFlushing; // should we flush after each file operation? |
short fRefNum; // reference number to the file |
OSErr fError; // latest error |
}; |
// _________________________________________________________________________________________________________ // |
// TDataFile Class Interface. |
class TDataFile : public TFile |
// TData file is a file that uses mainly the data fork of the file. |
{ |
public: |
// CONSTRUCTORS AND DESTRUCTORS |
TDataFile(char* name = "UnTitled"); // default constructor |
~TDataFile(); // default destructor |
// MAIN INTERFACE |
virtual Boolean Open(SignedByte permission = kExclusiveReadWrite);// exclusive read/write permission |
virtual Boolean Close(); // close the file |
virtual Boolean WriteHandle(Handle h); // write handle into disk |
virtual Handle ReadHandle(); // read handle from disk |
virtual Boolean Write(Ptr buffer, |
long bytes); // write bytes to disk from current mark |
virtual Boolean Read(Ptr buffer, |
long bytes); // read bytes from disk at current mark |
virtual Boolean SetMark(short from, |
long offset); // set offset of mark |
virtual long GetMark(); // get offset |
virtual Boolean Reset(); // set file mark to beginning of file |
virtual Boolean GotoEndOfFile(); // set file mark at end of file |
}; |
// _________________________________________________________________________________________________________ // |
// TResourceFile Class Interface. |
class TResourceFile : public TFile |
// TResourceFile uses mainly the resource fork of the file. |
{ |
public: |
// CONSTRUCTORS AND DESTRUCTORS |
TResourceFile(char* name = "UnTitled"); // default constructor |
~TResourceFile(); // default destructor |
// MAIN INTERFACE |
virtual Boolean Create(); // create a file |
virtual Boolean Open(SignedByte permission = kExclusiveReadWrite); // open the file |
virtual Boolean Close(); // close the file |
virtual Boolean HasResourceFork(); // test if file has resource fork or not |
virtual void Update(); // update the file |
virtual void Assign(); // assign the file to the first one in the resource chain |
}; |
// _________________________________________________________________________________________________________ // |
// MPreferences Class Interface. |
class MPreferences |
// Find and create files in the preferences section of the hard disk (future) |
{ |
public: |
}; |
// _________________________________________________________________________________________________________ // |
// MTempFile Class Interface. |
class MTempFile |
// Find and create files in the temp section of the hard disk (future) |
{ |
public: |
}; |
// _________________________________________________________________________________________________________ // |
// TLogFile Class Interface. (future) |
class TLogFile : public TFile |
{ |
public: |
}; |
#endif |
// _________________________________________________________________________________________________________ // |
/* Change History (most recent last): |
No Init. Date Comment |
1 khs 12/27/92 New file |
2 khs 1/14/93 Cleanup |
*/ |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14