author | Michael Krelin <hacker@klever.net> | 2012-12-08 21:19:17 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2012-12-11 21:59:29 (UTC) |
commit | 8808689fe340bec6e90ab13dd502292b0579cf1f (patch) (side-by-side diff) | |
tree | 45b7c863151341f687b74e40bffcbd7ab5468783 /pumpkin/XFer.h | |
parent | 6e7e413ca364d79673e523c09767c18e7cff1bec (diff) | |
download | pumpkin-osx/0.0.zip pumpkin-osx/0.0.tar.gz pumpkin-osx/0.0.tar.bz2 |
initial osx portosx/0.0
Signed-off-by: Michael Krelin <hacker@klever.net>
-rw-r--r-- | pumpkin/XFer.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/pumpkin/XFer.h b/pumpkin/XFer.h new file mode 100644 index 0000000..ffe7fc1 --- a/dev/null +++ b/pumpkin/XFer.h @@ -0,0 +1,68 @@ + +#import <Foundation/Foundation.h> +#import "PumpKIN.h" +#include <netinet/in.h> +#import "TFTPPacket.h" + +enum XFerState { + xferStateNone = 0, + xferStateConnecting, + xferStateXfer, + xferStateShutdown +}; + +@interface XFer : NSObject { + struct sockaddr_in peer; + PumpKIN *pumpkin; + CFSocketRef sockie; + CFRunLoopSourceRef runloopSource; + NSFileHandle *theFile; + uint16_t blockSize; + uint16_t acked; + unsigned long long xferSize; + uint16_t xferBlocks; + enum XFerState state; + NSString *xferType; + NSString *xferFilename; + NSTimeInterval retryTimeout; + NSTimeInterval giveupTimeout; + TFTPPacket *lastPacket; + NSTimer *retryTimer; + NSTimer *giveupTimer; + TFTPPacket *initialPacket; + NSString *xferPrefix; + + NSString *localFile; + + NSMutableArray *queue; +} +@property (readonly) struct sockaddr_in *peer; +@property (readonly) TFTPPacket *initialPacket; +@property (readonly) NSString *xferFilename; +@property (readonly) NSString *localFile; +@property (readonly) NSString *xferPrefix; + +- (id) init; +- (id) initWithPeer:(struct sockaddr_in *)sin andPacket:(TFTPPacket*)p; + +- (BOOL) createSocket; +- (void) callbackWithType:(CFSocketCallBackType)t addr:(CFDataRef)a data:(const void *)d; +- (void) queuePacket:(TFTPPacket*)p; + +- (void) eatTFTPPacket:(TFTPPacket*)p from:(struct sockaddr_in*)sin; + +- (id) cellValueForColumn:(NSString*)ci; + +- (void) updateView; +- (void) appear; +- (void) disappear; + +- (BOOL) isPeer:(struct sockaddr_in*)sin; + +- (void) abort; + +- (void) goOnWithVerdict:(int)verdict; + +- (BOOL) makeLocalFileName:(NSString*)xf; + +@end |