Index: src/IRCConnection.h ================================================================== --- src/IRCConnection.h +++ src/IRCConnection.h @@ -26,95 +26,95 @@ @class IRCConnection; @class IRCUser; @protocol IRCConnectionDelegate @optional -- (void)connection: (IRCConnection*)connection - didCreateSocket: (OF_KINDOF(OFTCPSocket)*)socket; -- (void)connection: (IRCConnection*)connection - didReceiveLine: (OFString*)line; -- (void)connection: (IRCConnection*)connection - didSendLine: (OFString*)line; -- (void)connectionWasEstablished: (IRCConnection*)connection; -- (void)connection: (IRCConnection*)connection - didSeeUser: (IRCUser*)user - joinChannel: (OFString*)channel; -- (void)connection: (IRCConnection*)connection - didSeeUser: (IRCUser*)user - leaveChannel: (OFString*)channel - reason: (OFString*)reason; -- (void)connection: (IRCConnection*)connection - didSeeUser: (IRCUser*)user - changeNicknameTo: (OFString*)nickname; -- (void)connection: (IRCConnection*)connection - didSeeUser: (IRCUser*)user - kickUser: (OFString*)kickedUser - channel: (OFString*)channel - reason: (OFString*)reason; -- (void)connection: (IRCConnection*)connection - didSeeUserQuit: (IRCUser*)user - reason: (OFString*)reason; -- (void)connection: (IRCConnection*)connection - didReceiveMessage: (OFString*)msg - channel: (OFString*)channel - user: (IRCUser*)user; -- (void)connection: (IRCConnection*)connection - didReceivePrivateMessage: (OFString*)msg - user: (IRCUser*)user; -- (void)connection: (IRCConnection*)connection - didReceiveNotice: (OFString*)notice - user: (IRCUser*)user; -- (void)connection: (IRCConnection*)connection - didReceiveNotice: (OFString*)notice - channel: (OFString*)channel - user: (IRCUser*)user; -- (void)connection: (IRCConnection*)connection - didReceiveNamesForChannel: (OFString*)channel; -- (void)connectionWasClosed: (IRCConnection*)connection; +- (void)connection: (IRCConnection *)connection + didCreateSocket: (OF_KINDOF(OFTCPSocket) *)socket; +- (void)connection: (IRCConnection *)connection + didReceiveLine: (OFString *)line; +- (void)connection: (IRCConnection *)connection + didSendLine: (OFString *)line; +- (void)connectionWasEstablished: (IRCConnection *)connection; +- (void)connection: (IRCConnection *)connection + didSeeUser: (IRCUser *)user + joinChannel: (OFString *)channel; +- (void)connection: (IRCConnection *)connection + didSeeUser: (IRCUser *)user + leaveChannel: (OFString *)channel + reason: (OFString *)reason; +- (void)connection: (IRCConnection *)connection + didSeeUser: (IRCUser *)user + changeNicknameTo: (OFString *)nickname; +- (void)connection: (IRCConnection *)connection + didSeeUser: (IRCUser *)user + kickUser: (OFString *)kickedUser + channel: (OFString *)channel + reason: (OFString *)reason; +- (void)connection: (IRCConnection *)connection + didSeeUserQuit: (IRCUser *)user + reason: (OFString *)reason; +- (void)connection: (IRCConnection *)connection + didReceiveMessage: (OFString *)msg + channel: (OFString *)channel + user: (IRCUser *)user; +- (void)connection: (IRCConnection *)connection + didReceivePrivateMessage: (OFString *)msg + user: (IRCUser *)user; +- (void)connection: (IRCConnection *)connection + didReceiveNotice: (OFString *)notice + user: (IRCUser *)user; +- (void)connection: (IRCConnection *)connection + didReceiveNotice: (OFString *)notice + channel: (OFString *)channel + user: (IRCUser *)user; +- (void)connection: (IRCConnection *)connection + didReceiveNamesForChannel: (OFString *)channel; +- (void)connectionWasClosed: (IRCConnection *)connection; @end @interface IRCConnection: OFObject { Class _socketClass; OF_KINDOF(OFTCPSocket) *_socket; OFString *_server; uint16_t _port; OFString *_nickname, *_username, *_realname; - OFMutableDictionary *_channels; + OFMutableDictionary OF_GENERIC(OFString *, OFMutableSet *) *_channels; id _delegate; of_string_encoding_t _fallbackEncoding; of_time_interval_t _pingInterval, _pingTimeout; OFString *_pingData; OFTimer *_pingTimer; } @property (assign) Class socketClass; -@property (copy) OFString *server; +@property (nonatomic, copy) OFString *server; @property uint16_t port; -@property (copy) OFString *nickname, *username, *realname; +@property (nonatomic, copy) OFString *nickname, *username, *realname; @property (assign) id delegate; -@property (readonly, retain) OFTCPSocket *socket; +@property (readonly, nonatomic) OFTCPSocket *socket; @property of_string_encoding_t fallbackEncoding; @property of_time_interval_t pingInterval, pingTimeout; + (instancetype)connection; -- (void)sendLine: (OFString*)line; -- (void)sendLineWithFormat: (OFConstantString*)line, ...; +- (void)sendLine: (OFString *)line; +- (void)sendLineWithFormat: (OFConstantString *)line, ...; - (void)connect; - (void)disconnect; -- (void)disconnectWithReason: (OFString*)reason; -- (void)joinChannel: (OFString*)channelName; -- (void)leaveChannel: (OFString*)channel; -- (void)leaveChannel: (OFString*)channel - reason: (OFString*)reason; -- (void)sendMessage: (OFString*)msg - to: (OFString*)to; -- (void)sendNotice: (OFString*)notice - to: (OFString*)to; -- (void)kickUser: (OFString*)user - channel: (OFString*)channel - reason: (OFString*)reason; -- (void)changeNicknameTo: (OFString*)nickname; -- (void)processLine: (OFString*)line; +- (void)disconnectWithReason: (OFString *)reason; +- (void)joinChannel: (OFString *)channelName; +- (void)leaveChannel: (OFString *)channel; +- (void)leaveChannel: (OFString *)channel + reason: (OFString *)reason; +- (void)sendMessage: (OFString *)msg + to: (OFString *)to; +- (void)sendNotice: (OFString *)notice + to: (OFString *)to; +- (void)kickUser: (OFString *)user + channel: (OFString *)channel + reason: (OFString *)reason; +- (void)changeNicknameTo: (OFString *)nickname; +- (void)processLine: (OFString *)line; - (void)handleConnection; -- (OFSet*)usersInChannel: (OFString*)channel; +- (OFSet OF_GENERIC(OFString *) *)usersInChannel: (OFString *)channel; @end Index: src/IRCConnection.m ================================================================== --- src/IRCConnection.m +++ src/IRCConnection.m @@ -108,11 +108,11 @@ - (void)disconnect { [self disconnectWithReason: nil]; } -- (void)disconnectWithReason: (OFString*)reason +- (void)disconnectWithReason: (OFString *)reason { void *pool = objc_autoreleasePoolPush(); reason = [[reason componentsSeparatedByString: @"\n"] firstObject]; @@ -122,11 +122,11 @@ [self sendLineWithFormat: @"QUIT :%@", reason]; objc_autoreleasePoolPop(pool); } -- (void)joinChannel: (OFString*)channel +- (void)joinChannel: (OFString *)channel { void *pool = objc_autoreleasePoolPush(); channel = [[channel componentsSeparatedByString: @"\n"] firstObject]; @@ -133,18 +133,18 @@ [self sendLineWithFormat: @"JOIN %@", channel]; objc_autoreleasePoolPop(pool); } -- (void)leaveChannel: (OFString*)channel +- (void)leaveChannel: (OFString *)channel { [self leaveChannel: channel reason: nil]; } -- (void)leaveChannel: (OFString*)channel - reason: (OFString*)reason +- (void)leaveChannel: (OFString *)channel + reason: (OFString *)reason { void *pool = objc_autoreleasePoolPush(); channel = [[channel componentsSeparatedByString: @"\n"] firstObject]; reason = [[reason componentsSeparatedByString: @"\n"] firstObject]; @@ -157,20 +157,20 @@ [_channels removeObjectForKey: channel]; objc_autoreleasePoolPop(pool); } -- (void)sendLine: (OFString*)line +- (void)sendLine: (OFString *)line { if ([_delegate respondsToSelector: @selector(connection:didSendLine:)]) [_delegate connection: self didSendLine: line]; [_socket writeLine: line]; } -- (void)sendLineWithFormat: (OFConstantString*)format, ... +- (void)sendLineWithFormat: (OFConstantString *)format, ... { void *pool = objc_autoreleasePoolPush(); OFString *line; va_list args; @@ -182,35 +182,35 @@ [self sendLine: line]; objc_autoreleasePoolPop(pool); } -- (void)sendMessage: (OFString*)msg - to: (OFString*)to +- (void)sendMessage: (OFString *)msg + to: (OFString *)to { void *pool = objc_autoreleasePoolPush(); for (OFString *line in [msg componentsSeparatedByString: @"\n"]) [self sendLineWithFormat: @"PRIVMSG %@ :%@", to, line]; objc_autoreleasePoolPop(pool); } -- (void)sendNotice: (OFString*)notice - to: (OFString*)to +- (void)sendNotice: (OFString *)notice + to: (OFString *)to { void *pool = objc_autoreleasePoolPush(); for (OFString *line in [notice componentsSeparatedByString: @"\n"]) [self sendLineWithFormat: @"NOTICE %@ :%@", to, line]; objc_autoreleasePoolPop(pool); } -- (void)kickUser: (OFString*)user - channel: (OFString*)channel - reason: (OFString*)reason +- (void)kickUser: (OFString *)user + channel: (OFString *)channel + reason: (OFString *)reason { void *pool = objc_autoreleasePoolPush(); reason = [[reason componentsSeparatedByString: @"\n"] firstObject]; @@ -217,11 +217,11 @@ [self sendLineWithFormat: @"KICK %@ %@ :%@", channel, user, reason]; objc_autoreleasePoolPop(pool); } -- (void)changeNicknameTo: (OFString*)nickname +- (void)changeNicknameTo: (OFString *)nickname { void *pool = objc_autoreleasePoolPush(); nickname = [[nickname componentsSeparatedByString: @"\n"] firstObject]; @@ -229,11 +229,11 @@ [self sendLineWithFormat: @"NICK %@", nickname]; objc_autoreleasePoolPop(pool); } -- (void)IRC_processLine: (OFString*)line +- (void)IRC_processLine: (OFString *)line { OFArray *components; OFString *action = nil; if ([_delegate respondsToSelector: @@ -573,22 +573,22 @@ [_socket cancelAsyncRequests]; [_socket release]; _socket = nil; } -- (void)processLine: (OFString*)line +- (void)processLine: (OFString *)line { void *pool = objc_autoreleasePoolPush(); [self IRC_processLine: line]; objc_autoreleasePoolPop(pool); } -- (bool)socket: (OFTCPSocket*)socket - didReceiveWronglyEncodedLine: (OFString*)line - exception: (OFException*)exception +- (bool)socket: (OFTCPSocket *)socket + didReceiveWronglyEncodedLine: (OFString *)line + exception: (OFException *)exception { if (line != nil) { [self IRC_processLine: line]; [socket asyncReadLineWithTarget: self selector: @selector(socket: @@ -597,13 +597,13 @@ } return false; } -- (bool)socket: (OFTCPSocket*)socket - didReceiveLine: (OFString*)line - exception: (OFException*)exception +- (bool)socket: (OFTCPSocket *)socket + didReceiveLine: (OFString *)line + exception: (OFException *)exception { if (line != nil) { [self IRC_processLine: line]; return true; } @@ -621,11 +621,12 @@ if ([_delegate respondsToSelector: @selector(connectionWasClosed:)]) [_delegate connectionWasClosed: self]; [_pingTimer invalidate]; - [_socket cancelAsyncRequests]; + [_socket performSelector: @selector(cancelAsyncRequests) + afterDelay: 0]; [_socket release]; _socket = nil; return false; } @@ -635,10 +636,10 @@ [_socket asyncReadLineWithTarget: self selector: @selector(socket:didReceiveLine: exception:)]; } -- (OFSet*)usersInChannel: (OFString*)channel +- (OFSet OF_GENERIC(OFString *) *)usersInChannel: (OFString *)channel { return [[[_channels objectForKey: channel] copy] autorelease]; } @end Index: src/IRCUser.h ================================================================== --- src/IRCUser.h +++ src/IRCUser.h @@ -26,10 +26,10 @@ @interface IRCUser: OFObject { OFString *_nickname, *_username, *_hostname; } -@property (copy, readonly) OFString *nickname, *username, *hostname; +@property (readonly, nonatomic) OFString *nickname, *username, *hostname; -+ (instancetype)IRCUserWithString: (OFString*)string; -- initWithString: (OFString*)string; ++ (instancetype)IRCUserWithString: (OFString *)string; +- initWithString: (OFString *)string; @end Index: src/IRCUser.m ================================================================== --- src/IRCUser.m +++ src/IRCUser.m @@ -34,16 +34,16 @@ #import "IRCUser.h" @implementation IRCUser @synthesize username = _username, nickname = _nickname, hostname = _hostname; -+ (instancetype)IRCUserWithString: (OFString*)string ++ (instancetype)IRCUserWithString: (OFString *)string { return [[[self alloc] initWithString: string] autorelease]; } -- initWithString: (OFString*)string +- initWithString: (OFString *)string { char *tmp2 = NULL; self = [super init]; @@ -91,11 +91,11 @@ - copy { return [self retain]; } -- (OFString*)description +- (OFString *)description { return [OFString stringWithFormat: @"%@!%@@%@", _nickname, _username, _hostname]; } @end