ftp.nice.ch/pub/next/connectivity/infosystems/Archie.2.18.s.tar.gz#/Archie/File.h

This is File.h in view mode; [Download] [Up]

/* This is the beginnings of an abstract class which provides a object
	interface for tasks associated with files. It is a subclass of
	my Date class. */
#import <Date.h>
#import <objc/hashtable.h>	// NXAtom type
#import "InspectorInfo.h"	// Defines InspectorInfo class and InspectorInfoUpdate protocol
#import "FileInspectorInfo.h"	// Defines the InspectorInfo attributes we handle

@class ObjectList;

@interface File : Date <InspectorInfoUpdate>
{
	char fileMode[11];		// UNIX style file mode
	int fileSize;			// File size in bytes
	NXAtom sourceHost;		// Host from which the file orginated
	char *sourcePath;		// Full pathname of the file on sourceHost
	char *localPath;		// Full pathname of the file on local host
	char *pathString;		// String set by methods that parse the full pathname
	id delegate;			// An object which can perform ops for us
		// An InspectorInfo subclass used to interact with the info inspector panel
	FileInfo *fileInfo;
	FileType fileType;

	/* Additional info for directories & links */
		// An ObjectList of File objects for the directory
	ObjectList <ObjectArchival> *listing;
		// A flag indicating if listing is being loaded
	BOOL dirLoading;
		// A flag indicating if a previous load attempt failed to find any files
	BOOL emptyDir;
		// A File object for the link target if isLink == YES
	File *linkTarget;
		// An InspectorInfo subclass used to interact with the sort key inspector panel
	DirectorySortKey *sortKey;
}

/*\ ----------------------- Initialization Methods ----------------------- \*/
- init:(const char *) filename mode:(const char *) mode size:(int) size;
- init:(const char *) filename mode:(const char *) mode size:(int) size
	day:(int) day month:(int) month year:(int) year hour:(int) hour
	min:(int) min;

- setSourceHost:(const char *) host;
- setDelegate: theDelegate;
- loadDirectory: server;
- setDirLoading:(BOOL) flag;
- setEmptyDir:(BOOL) flag;
- setLinkTarget: target;

/*\ ----------------------- Info Methods ----------------------- \*/
- (const char *) localName;
- (const char *) sourceName;
- (const char *) sourceNameWithLink;
- (const char *) localPathname;
- (const char *) sourcePathname;
- (const char *) localDirectory;
- (const char *) sourceDirectory;
- (NXAtom) sourceHost;
- (const char *) modeString;
- (int) mode;
- (BOOL) isDirectory;
- (BOOL) isLink;
- (BOOL) isLocal;
- (int) fileSize;
- dirListing;
- (BOOL) dirLoading;
- (BOOL) emptyDir;
- linkTarget;
- (DirectorySortKey *) sortKey;
- (const char *) linkTargetName:(BOOL) getFullPath;
- fileFromPath:(const char *) subPath;

/*\ --------------------- Local Manipulation Methods --------------------- \*/
- (const char *) verifyPathname:(const char *) pathname
	collisionWarnings:(BOOL) collisionWarnings;
- createLocalFile:(NXStream *) stream path:(const char *) pathname
	collisionWarnings:(BOOL) collisionWarnings;
- copyFileTo:(const char *) targetPathname collisionWarnings:(BOOL) collisionWarnings;
- moveFileTo:(const char *) targetPathname collisionWarnings:(BOOL) collisionWarnings;
- linkFileTo:(const char *) targetPathname collisionWarnings:(BOOL) collisionWarnings;
- deleteFile:(BOOL) prompt;
- recycleFile;

/*\ ---------------------- Display Methods ---------------------- \*/
- (BOOL) openInWorkspace;

/*\ ------------------ ObjectArchival Protocol Methods ------------------ \*/
#define FILE_VERS		1	// Object release version
#define FILE_SUBVERS	1	// Object subrelease version
#define FILE_TYPE		0	// Object version type
/* Object versions we know about */
#define FILE_VERSION_0 1000
#define FILE_VERSION_1 1010

- readFromTStream:(NXTypedStream *) stream;	// Override
- writeToTStream:(NXTypedStream *) stream;	// Override

/*\ ------------- InspectorInfo Protocol & Related Methods ------------- \*/
- (BOOL) updateWithInspectorInfo:(InspectorInfo *) theInfo;
- (BOOL) getInspectorInfo: theInfo;

@end

/*\ ------------------- Informal FileDelegate Protocol ------------------- \*/
@interface Object(FileDelegate)
- (const char *) createLocalFile: theFile;
@end

/*\ ----------------------- Constants ----------------------- \*/
extern NXAtom LocalHost;

/* RCS Information:
	$Author: me $;
	$Date: 94/01/08 14:40:02 $;
	$Source: /usr1/me/NeXTSrc/Archie/RCS/File.h,v $;
	$Revision: 1.1 $;
	$Log:	File.h,v $
 * Revision 1.1  94/01/08  14:40:02  me
 * Check point of 2.09a version.
 * 
 * Revision 1.3  93/03/29  01:54:05  me
 * Updated for file inspection and updated the archival methods to read and write ObjectLists rather than Lists.
 * 
 * Revision 1.2  93/02/24  18:35:02  me
 * Added an emptyDir flag for marking directories with no files.
 * 
 * Revision 1.1  93/02/23  02:09:55  me
 * Version 2.01a of the project.
 * ;
*/

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.