This is File.h in view mode; [Download] [Up]
/***********************************************************************\
Common class for accessing files in all Convert programs
Copyright (C) 1993 David John Burrowes
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
The author, David John Burrowes, can be reached at:
davidjohn@kira.net.netcom.com
David John Burrowes
1926 Ivy #10
San Mateo, CA 94403-1367
\***********************************************************************/
/*
====================================================================
This is the interface file for the File class. Full documentation for this class can be found in the File.rtf file. I will not duplicate all that fine information here.
This is $Revision: 1.6 $ of this file
It was last modified by $Author: death $ on $Date: 93/04/04 23:44:23 $
Note that this file was created while using the New Century Schoolbook Roman typeface. You may find that some things line up strangely if you don't use that family.
*$Log: File.h,v $
* Revision 1.6 93/04/04 23:44:23 death
* Sun Apr 4 23:44:23 PDT 1993
*
* Revision 1.5 93/01/10 15:07:53 death
* Sun Jan 10 15:07:52 PST 1993
*
* Revision 1.4 92/07/26 13:57:52 death
* Update so all works with the font converter...
*
* Revision 1.2 92/04/05 22:51:05 death
* Miscelaneous revisions. This is the last version of version 1.
*
* Revision 1.1 92/03/29 12:18:23 death
* Initial revision
*
*====================================================================
*/
//
// Import our parent class' definition
//
#import "ResultObject.h"
#import "common.h"
//
// For stat info...
//
#include <sys/types.h>
#include <sys/stat.h>
//
// Define types for positions in the underlying file.
//
typedef PositiveInteger FilePos;
typedef FilePos FilePosDelta;
typedef Integer AccessType;
//
//
#define fileAtEOF 1
#define fileAtStart 2
#define fileInMiddle 3
//
// Now, define our interface. Again, see the File.rtf document for general info.
//
@interface File:ResultObject
{
CString FileName;
AccessType AccessMode;
NXStream* TheFile;
ino_t TheInode;
Integer FileLocation;
Boolean FileIsOpen;
}
- initAndUse:(roCString) pathname;
- initAndUseTemporary;
- CreateAndOpenFor: (AccessType) access;
- OpenExistingFor: (AccessType) access;
- ClearAndOpenExistingFor: (AccessType) access;
- ClearAndOpenFor: (AccessType) access;
- OpenFor: (AccessType) access;
- OpenWithAccess: (Integer) operation;
//
- CloseAndDelete;
- Close;
- CloseAndSave;
- free;
//
- AdvanceBytes: (FilePosDelta) byteLoc;
- BackupBytes: (FilePosDelta) byteLoc;
- (CString) GetBasename;
- (FilePos) GetCurrentPosition;
- (CString) GetExtension;
- (CString) GetFilename;
- (CString) GetPathname;
- (CString) GetDirectory;
- MoveTo: (PositiveInteger) byteLoc;
- (Byte) ReadByte;
- Read: (PositiveInteger) numBytes BytesInto: (ByteString) buffer;
- WriteByte: (Byte) theByte;
- Write: (PositiveInteger) numBytes BytesFrom: (ByteString) buffer;
- (PositiveInteger) FileSize;
- FileInfo;
- (Boolean) SameFileAs: (CString) someOtherFile;
//
// internal methods
//
- (CString) GetFullPathFrom: (roCString) pathname;
- ClearFile: (CString) pathname;
- CreateFile: (CString) pathname;
- (Boolean) FileExists: (CString) pathname;
@end
//
// Now, define some constants used by the class to define the kinds of errors that may occurr
//
#define FILE_READ 0
#define FILE_WRITE 1
#define FILE_READWRITE 2
#define FILE_APPEND 3
#define FILE_NOACCESS -1
//
// Error codes (using 100 to -300)
//
#define ERR_STRANGEPATH 50
#define ERR_BADACCESS -100
#define ERR_FILENOTOPEN -120
#define ERR_CANTOPEN -105
#define ERR_CANTDELETE -106
#define ERR_FILEREADONLY -150
#define ERR_FILEWRITEONLY -151
#define ERR_FILEAPPENDONLY -152
#define ERR_NOSUCHFILE -160
#define ERR_CREATEFAIL -170
#define ERR_FILEEXISTS -171
#define ERR_SOMEFILEOPEN -172
#define ERR_FILEDOESNTEXIST -173
#define ERR_CLEARFAIL -174
#define ERR_WRITINGERROR -200
#define ERR_FLUSHINGERROR -201
#define ERR_WROTEBADCHAR -202
#define ERR_READINGERROR -205
#define ERR_BADBACKUP -220
#define ERR_BADADVANCE -221
#define ERR_NODIRECTORY -250
#define ERR_CANTGETINFO -275
#define ERR_EOF -225
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.