Builds again
[ITFoundation.git] / ITInetSocket.h
index 079d8ab..2430267 100755 (executable)
@@ -7,29 +7,46 @@
 //
 
 #import <Foundation/Foundation.h>
-
-@protocol ITInetSocketOwner
-- (void)requestCompleted:(NSString*)data;
-@end
+#import <netinet/in.h>
+#import <netdb.h>
+#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;
 }
-// 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