//
#import <Foundation/Foundation.h>
-
-@protocol ITInetSocketOwner
-- (void)requestCompleted:(NSString*)data;
-@end
+#import <netinet/in.h>
+#import <netdb.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;
}
-// Init
--(id) initWithFD:(int)fd;
-(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;
+-(ITInetSocketState) state;
@end