X-Git-Url: http://git.ithinksw.org/ITFoundation.git/blobdiff_plain/9aa66eeb5174dbc071f24e8f5ad13234f056a609..2f7f84d62451875f15d4ae8242b58689eb2bd44c:/ITInetSocket.h diff --git a/ITInetSocket.h b/ITInetSocket.h index 079d8ab..edbfa64 100755 --- a/ITInetSocket.h +++ b/ITInetSocket.h @@ -7,29 +7,50 @@ // #import - -@protocol ITInetSocketOwner -- (void)requestCompleted:(NSString*)data; -@end +#import +#import +#import "ITByteStream.h" enum { ITInetMaxConnections = 36 }; +typedef enum { + ITInetSocketConnecting, + ITInetSocketListening, + ITInetSocketReading, + ITInetSocketWriting, + ITInetSocketDisconnected +} ITInetSocketState; + +typedef enum { + ITInetHostNotFound, + ITInetConnectionDropped, + ITInetCouldNotConnect, +} ITInetSocketError; + +@protocol ITInetSocketOwner +- (void) dataRecieved:(in NSData*)data; +- (void) errorOccured:(ITInetSocketError)err during:(ITInetSocketState)state; +- (void) finishedConnecting; +@end + @interface ITInetSocket : NSObject { + @public int sockfd; int port; - NSString *destAddr; + id delegate; + struct addrinfo *ai; + ITByteStream *readPipe, *writePipe; + ITInetSocketState state; + NSArray *sarr; } -// Init --(id) initWithFD:(int)fd; ++(void)startAutoconnectingToService:(NSString*)type delegate:(id)d; -(id) initWithFD:(int)fd delegate:(id)d; -(id) initWithDelegate:(id)d; -+(NSArray*) socketsForRendezvousScan; //need args - -// Mutators (some of these must be set before you can connect) --(void) setPort:(int)port; --(void) setPortViaServiceName:(NSString*)name; --(void) setDest:(NSString*)dst; +-(void) connectToHost:(NSString*)host onPort:(short)port; +-(void) connectToHost:(NSString*)host onNamedPort:(NSString*)port; +-(void) connectWithSockaddrArray:(NSArray*)arr; +-(ITInetSocketState) state; @end