+/*!
+ * @protocol ITInetSocketDelegate
+ * @abstract Delegate methods for ITInetSocket
+ * @discussion ITInetSockets use these methods to communicate with their delegates
+ */
+@protocol ITInetSocketDelegate <DataReciever>
+/*!
+ * @method errorOccured:during:onSocket:
+ * @abstract Alerts the delegate of an error condition.
+ * @discussion The delegate can try retryCondition.
+ * @param err The error class.
+ * @param state What the socket was doing when the error occured.
+ * @param sender The socket the error occured on.
+ */
+- (oneway void) errorOccured:(ITInetSocketError)err during:(ITInetSocketState)state onSocket:(ITInetSocket*)sender;
+/*!
+ * @method finishedConnecting:
+ * @abstract Alerts the delegate of a successful connection attempt.
+ * @discussion The delegate should send whatever initial data is required for the protocol (nickname for IRC, etc.)
+ * @param sender The socket that established the connection.
+ */
+- (oneway void) finishedConnecting:(ITInetSocket *)sender;
+@end
+
+/*!
+ * @class ITInetSocket
+ * @abstract An Internet socket class.
+ * @discussion ITInetSocket is an Internet socket class supporting IPv6 and Rendezvous.
+ */
+@interface ITInetSocket : NSObject <DataReciever> {