This is FtpFile.m in view mode; [Download] [Up]
#import "FtpFile.h"
#import "FtpDirectory.h"
#import "NXmystd.h"
@implementation FtpFile
- initForName:(const char *)name withParent:aParent;
{
[super init];
myname = NXUniqueString(name);
parent = aParent;
timestamp = 0;
mysize = -1;
isDummy = NO;
isNew = YES;
isReadme = strstr(myname,"README")?YES:NO;
transferstatus = 0;
shouldreget = 0;
shouldautoopen = 0;
isselected = NO;
localPath = NULL;
return self;
}
- free;
{
return [super free];
}
- write:(NXTypedStream *)stream;
{
//LOGF("object version: %d\n",[Object version]);
[super write:stream];
if ([Object version] != 4)
{
NXWriteTypes(stream,"%Iiccc@",&myname,×tamp,&mysize,&isDummy,&isNew,&isReadme,&parent);
}
else
{
// for default cache (version 4)
NXWriteTypes(stream,"%icc@",&myname,&mysize,&isDummy,&isNew,&parent);
}
return self;
}
- read:(NXTypedStream *)stream;
{
[super read:stream];
//LOGF("object version: %d\n",[Object version]);
if ([Object version] >= 5)
{
NXReadTypes(stream, "%Iiccc@", &myname, ×tamp, &mysize, &isDummy, &isNew, &isReadme, &parent);
}
else if ([Object version] >= 4)
{
NXReadTypes(stream, "%icc@", &myname, &mysize, &isDummy, &isNew, &parent);
timestamp = 0;
isReadme = strstr(myname,"README")?YES:NO;
}
else if ([Object version] >= 3)
{
unsigned long count;
NXReadTypes(stream, "%IIiccc@", &myname, ×tamp, &count, &mysize, &isDummy, &isNew, &isReadme, &parent);
}
else if ([Object version] >= 2)
{
unsigned long count;
NXReadTypes(stream, "%IIccc@", &myname, ×tamp, &count, &isDummy, &isNew, &isReadme, &parent);
mysize = -1;
timestamp = 0;
}
else
{
unsigned long count;
NXReadTypes(stream,"%IIcc@",&myname,×tamp,&count,&isDummy,&isNew,&parent);
isReadme = strstr(myname,"README")?YES:NO;
mysize = -1;
timestamp = 0;
}
return self;
}
- awake;
{
[super awake];
transferstatus = 0;
shouldreget = 0;
shouldautoopen = 0;
localPath = NULL;
return self;
}
- (unsigned) timestamp;
{
return timestamp;
}
- (int) compareWith:otherFile;
{
if ([self isDummy])
return -1;
if ([otherFile isDummy])
return 1;
return strcasecmp(myname,[otherFile name]);
}
- (const char *) name;
{
//if (strchr(myname,'-'))
//{
// LOGF("myname = |%s|",myname);
//}
return myname;
}
- parentDir;
{
return parent;
}
- (BOOL) isFile;
{
return YES;
}
- (BOOL) isDir;
{
return NO;
}
- (BOOL) isReadme;
{
return isReadme;
}
- setFileSize:(long) s;
{
mysize = s;
return self;
}
- (long) fileSize;
{
return mysize;
}
- setDummy;
{
isDummy = TRUE;
return self;
}
- (BOOL) isDummy;
{
return isDummy;
}
- setNew:(BOOL)flag;
{
isNew = flag;
return self;
}
- (BOOL) isNew;
{
return isNew;
}
- setTransferStatus:(char) status;
{
if (transferstatus != status)
[parent setNeedsDisplay:YES];
transferstatus = status;
return self;
}
- (char) transferStatus;
{
return transferstatus;
}
- setShouldReget:(BOOL)flag;
{
shouldreget = flag;
return self;
}
- (BOOL) shouldReget;
{
return shouldreget;
}
- setShouldAutoOpen:(BOOL)flag;
{
shouldautoopen = flag;
return self;
}
- (BOOL) shouldAutoOpen;
{
return shouldautoopen;
}
- setLocalPath:(NXAtom)path;
{
localPath = path;
return self;
}
- (const char *) localPath;
{
return localPath;
}
- setLocalName:(NXAtom)name;
{
localName = name;
return self;
}
- (const char *) localName;
{
return localName?localName:myname;
}
// by Peter Lount
- fullPath:(char*)theFullPathPtr;
{
sprintf(theFullPathPtr,
"%s - %s (to %s)",
[self name], [parent path],
[self localPath]
);
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.