Changeset 4792
- Timestamp:
- 05/27/07 14:29:37 (2 years ago)
- Files:
-
- WiredClient/trunk/WCApplicationController.m (modified) (3 diffs)
- WiredClient/trunk/WCConversation.h (modified) (1 diff)
- WiredClient/trunk/WCConversation.m (modified) (9 diffs)
- WiredClient/trunk/WCMessage.h (modified) (2 diffs)
- WiredClient/trunk/WCMessage.m (modified) (13 diffs)
- WiredClient/trunk/WCMessages.h (modified) (1 diff)
- WiredClient/trunk/WCMessages.m (modified) (22 diffs)
- WiredClient/trunk/WCServerConnection.h (modified) (2 diffs)
- WiredClient/trunk/WCServerConnection.m (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
WiredClient/trunk/WCApplicationController.m
r4752 r4792 29 29 #import "WCAboutWindow.h" 30 30 #import "WCApplicationController.h" 31 #import "WCChat.h" 31 32 #import "WCConsole.h" 32 33 #import "WCDock.h" … … 587 588 case WCEventsMessageReceived: 588 589 [GrowlApplicationBridge notifyWithTitle:NSLS(@"Message received", @"Growl event message received title") 589 description:[NSSWF:@"%@: %@", [ [(WCMessage *) info1 user] nick], [info1 message]]590 description:[NSSWF:@"%@: %@", [info1 userNick], [info1 message]] 590 591 notificationName:WCGrowlMessageReceived 591 iconData:[[[ (WCMessage *) info1 user] icon] TIFFRepresentation]592 iconData:[[[[connection chat] userWithUserID:[info1 userID]] icon] TIFFRepresentation] 592 593 priority:0.0 593 594 isSticky:NO … … 607 608 case WCEventsBroadcastReceived: 608 609 [GrowlApplicationBridge notifyWithTitle:NSLS(@"Broadcast received", @"Growl event broadcast received title") 609 description:[NSSWF:@"%@: %@", [ [(WCMessage *) info1 user] nick], [info1 message]]610 description:[NSSWF:@"%@: %@", [info1 userNick], [info1 message]] 610 611 notificationName:WCGrowlBroadcastReceived 611 iconData:[[[ (WCMessage *) info1 user] icon] TIFFRepresentation]612 iconData:[[[[connection chat] userWithUserID:[info1 userID]] icon] TIFFRepresentation] 612 613 priority:0.0 613 614 isSticky:NO WiredClient/trunk/WCConversation.h
r4439 r4792 33 33 @interface WCConversation : WIObject <NSCoding> { 34 34 WCMessageType _type; 35 WCUser *_user; 35 NSString *_key; 36 NSString *_userNick; 36 37 } 37 38 38 39 39 + (id)messageConversationWithUser:(WCUser *)user; 40 + (id)broadcastConversationWithUser:(WCUser *)user; 40 + (NSString *)keyForType:(WCMessageType)type user:(WCUser *)user connection:(WCServerConnection *)connection; 41 42 + (id)messageConversationWithUser:(WCUser *)user connection:(WCServerConnection *)connection; 43 + (id)broadcastConversationWithUser:(WCUser *)user connection:(WCServerConnection *)connection; 41 44 42 45 - (WCMessageType)type; 43 - (WCUser *)user; 46 - (NSString *)key; 47 - (NSString *)userNick; 44 48 45 49 @end WiredClient/trunk/WCConversation.m
r4439 r4792 32 32 @interface WCConversation(Private) 33 33 34 - (id)_initWithType:(WCMessageType)type user:(WCUser *)user ;34 - (id)_initWithType:(WCMessageType)type user:(WCUser *)user connection:(WCServerConnection *)connection; 35 35 36 36 @end … … 39 39 @implementation WCConversation(Private) 40 40 41 - (id)_initWithType:(WCMessageType)type user:(WCUser *)user {41 - (id)_initWithType:(WCMessageType)type user:(WCUser *)user connection:(WCServerConnection *)connection { 42 42 self = [super init]; 43 43 44 44 _type = type; 45 _user = [user retain]; 45 _key = [[self class] keyForType:type user:user connection:connection]; 46 _userNick = [[user nick] retain]; 46 47 47 48 return self; … … 53 54 @implementation WCConversation 54 55 55 + ( id)messageConversationWithUser:(WCUser *)user{56 return [ [[self alloc] _initWithType:WCMessagePrivateMessage user:user] autorelease];56 + (NSString *)keyForType:(WCMessageType)type user:(WCUser *)user connection:(WCServerConnection *)connection { 57 return [NSSWF:@"%u_%u_%u", type, [user userID], [connection connectionID]]; 57 58 } 58 59 59 60 60 61 61 + (id)broadcastConversationWithUser:(WCUser *)user { 62 return [[[self alloc] _initWithType:WCMessageBroadcast user:user] autorelease]; 62 #pragma mark - 63 64 + (id)messageConversationWithUser:(WCUser *)user connection:(WCServerConnection *)connection { 65 return [[[self alloc] _initWithType:WCMessagePrivateMessage user:user connection:connection] autorelease]; 66 } 67 68 69 70 + (id)broadcastConversationWithUser:(WCUser *)user connection:(WCServerConnection *)connection { 71 return [[[self alloc] _initWithType:WCMessageBroadcast user:user connection:connection] autorelease]; 63 72 } 64 73 … … 71 80 72 81 WIDecode(coder, _type); 73 WIDecode(coder, _user); 82 WIDecode(coder, _key); 83 WIDecode(coder, _userNick); 74 84 75 85 return self; … … 80 90 - (void)encodeWithCoder:(NSCoder *)coder { 81 91 WIEncode(coder, _type); 82 WIEncode(coder, _user); 92 WIEncode(coder, _key); 93 WIEncode(coder, _userNick); 83 94 } 84 95 … … 104 115 self, 105 116 type, 106 [self user ]];117 [self userNick]]; 107 118 } 108 119 … … 113 124 return NO; 114 125 115 return ([self type] == [(WCConversation *) object type]) && 116 ([[self user] isEqual:[(WCConversation *) object user]]); 126 return [[self key] isEqualToString:[object key]]; 117 127 } 118 128 … … 120 130 121 131 - (unsigned int)hash { 122 return [[self user] hash];132 return [[self key] hash]; 123 133 } 124 134 … … 133 143 134 144 135 - (WCUser *)user { 136 return _user; 145 - (NSString *)key { 146 return _key; 147 } 148 149 150 151 - (NSString *)userNick { 152 return _userNick; 137 153 } 138 154 WiredClient/trunk/WCMessage.h
r4439 r4792 40 40 41 41 42 @class WC User;42 @class WCConversation, WCUser; 43 43 44 44 @interface WCMessage : WIObject <NSCoding> { … … 47 47 unsigned int _userID; 48 48 BOOL _read; 49 WCUser *_user;49 NSString *_userNick; 50 50 NSString *_message; 51 51 NSDate *_date; 52 WCConversation *_conversation; 52 53 } 53 54 54 55 55 + (id)messageWithArguments:(NSArray *)arguments ;56 + (id)broadcastWithArguments:(NSArray *)arguments ;57 + (id)messageToUser:(WCUser *)user string:(NSString *)string ;56 + (id)messageWithArguments:(NSArray *)arguments user:(WCUser *)user conversation:(WCConversation *)conversation; 57 + (id)broadcastWithArguments:(NSArray *)arguments user:(WCUser *)user conversation:(WCConversation *)conversation; 58 + (id)messageToUser:(WCUser *)user string:(NSString *)string conversation:(WCConversation *)conversation; 58 59 59 60 - (WCMessageType)type; 60 61 - (WCMessageDirection)direction; 61 62 - (unsigned int)userID; 63 - (NSString *)userNick; 62 64 - (NSString *)message; 63 65 - (NSDate *)date; 66 - (WCConversation *)conversation; 64 67 65 - (void)setUser:(WCUser *)user;66 - (WCUser *)user;67 68 - (void)setRead:(BOOL)read; 68 69 - (BOOL)isRead; WiredClient/trunk/WCMessage.m
r4439 r4792 35 35 36 36 - (void)_setUserID:(unsigned int)userID; 37 - (void)_setUserNick:(NSString *)userNick; 37 38 - (void)_setMessage:(NSString *)message; 38 39 - (void)_setDate:(NSDate *)date; 40 - (void)_setConversation:(WCConversation *)conversation; 39 41 40 42 @end … … 58 60 - (void)_setUserID:(unsigned int)userID { 59 61 _userID = userID; 62 } 63 64 65 66 - (void)_setUserNick:(NSString *)userNick { 67 [userNick retain]; 68 [_userNick release]; 69 70 _userNick = userNick; 60 71 } 61 72 … … 78 89 } 79 90 91 92 93 - (void)_setConversation:(WCConversation *)conversation { 94 [conversation retain]; 95 [_conversation release]; 96 97 _conversation = conversation; 98 } 99 80 100 @end 81 101 … … 83 103 @implementation WCMessage 84 104 85 + (id)messageWithArguments:(NSArray *)arguments {105 + (id)messageWithArguments:(NSArray *)arguments user:(WCUser *)user conversation:(WCConversation *)conversation { 86 106 WCMessage *message; 87 107 88 108 message = [[self alloc] _initWithType:WCMessagePrivateMessage direction:WCMessageFrom]; 89 109 [message _setUserID:[[arguments safeObjectAtIndex:0] unsignedIntValue]]; 110 [message _setUserNick:[user nick]]; 90 111 [message _setMessage:[arguments safeObjectAtIndex:1]]; 91 112 [message _setDate:[NSDate date]]; 113 [message _setConversation:conversation]; 92 114 93 115 return [message autorelease]; … … 96 118 97 119 98 + (id)broadcastWithArguments:(NSArray *)arguments {120 + (id)broadcastWithArguments:(NSArray *)arguments user:(WCUser *)user conversation:(WCConversation *)conversation { 99 121 WCMessage *message; 100 122 101 123 message = [[self alloc] _initWithType:WCMessageBroadcast direction:WCMessageFrom]; 102 124 [message _setUserID:[[arguments safeObjectAtIndex:0] unsignedIntValue]]; 125 [message _setUserNick:[user nick]]; 103 126 [message _setMessage:[arguments safeObjectAtIndex:1]]; 104 127 [message _setDate:[NSDate date]]; 128 [message _setConversation:conversation]; 105 129 106 130 return [message autorelease]; … … 109 133 110 134 111 + (id)messageToUser:(WCUser *)user string:(NSString *)string {135 + (id)messageToUser:(WCUser *)user string:(NSString *)string conversation:(WCConversation *)conversation { 112 136 WCMessage *message; 113 137 114 138 message = [[self alloc] _initWithType:WCMessagePrivateMessage direction:WCMessageTo]; 115 139 [message _setUserID:[user userID]]; 140 [message _setUserNick:[user nick]]; 116 141 [message _setDate:[NSDate date]]; 117 142 [message _setMessage:string]; 118 119 [message setUser:user];143 [message _setConversation:conversation]; 144 120 145 [message setRead:YES]; 121 146 … … 126 151 127 152 - (void)dealloc { 128 [_user release];153 [_userNick release]; 129 154 [_message release]; 130 155 [_date release]; 156 [_conversation release]; 131 157 132 158 [super dealloc]; … … 144 170 WIDecode(coder, _userID); 145 171 WIDecode(coder, _read); 146 WIDecode(coder, _user );172 WIDecode(coder, _userNick); 147 173 WIDecode(coder, _message); 148 174 WIDecode(coder, _date); 175 WIDecode(coder, _conversation); 149 176 150 177 return self; … … 158 185 WIEncode(coder, _userID); 159 186 WIEncode(coder, _read); 160 WIEncode(coder, _user );187 WIEncode(coder, _userNick); 161 188 WIEncode(coder, _message); 162 189 WIEncode(coder, _date); 190 WIEncode(coder, _conversation); 163 191 } 164 192 … … 184 212 self, 185 213 type, 186 [self user ],214 [self userNick], 187 215 [self date]]; 188 216 } … … 210 238 211 239 240 - (NSString *)userNick { 241 return _userNick; 242 } 243 244 245 212 246 - (NSString *)message { 213 247 return _message; … … 222 256 223 257 224 - (void)setUser:(WCUser *)user { 225 [user retain]; 226 [_user release]; 227 228 _user = user; 229 } 230 231 232 233 - (WCUser *)user { 234 return _user; 258 - (WCConversation *)conversation { 259 return _conversation; 235 260 } 236 261 … … 263 288 NSComparisonResult result; 264 289 265 result = [[self user ] compareNick:[message user]];290 result = [[self userNick] compare:[message userNick] options:NSCaseInsensitiveSearch]; 266 291 267 292 if(result != NSOrderedSame) WiredClient/trunk/WCMessages.h
r4775 r4792 57 57 58 58 NSMutableArray *_titles; 59 NSMutableArray *_conversations; 59 NSMutableArray *_allConversations; 60 NSMutableDictionary *_conversations; 60 61 NSMutableArray *_allMessages; 61 62 NSMutableArray *_shownMessages; WiredClient/trunk/WCMessages.m
r4781 r4792 62 62 63 63 - (NSArray *)_conversationsForType:(WCMessageType)type; 64 - (WCConversation *)_conversationForType:(WCMessageType)type user:(WCUser *)user;65 64 - (NSArray *)_messagesForType:(WCMessageType)type; 66 65 - (NSArray *)_unreadMessagesForType:(WCMessageType)type; 67 - (NSArray *)_messagesFor Type:(WCMessageType)type fromUser:(WCUser *)userunreadOnly:(BOOL)unreadOnly;66 - (NSArray *)_messagesForConversation:(WCConversation *)conversation unreadOnly:(BOOL)unreadOnly; 68 67 - (NSArray *)_messagesSortedForView; 69 68 - (id)_selectedConversation; … … 91 90 [_titles addObject:NSLS(@"Broadcasts", @"Messages item")]; 92 91 93 _conversations = [[NSMutableArray alloc] init]; 92 _allConversations = [[NSMutableArray alloc] init]; 93 _conversations = [[NSMutableDictionary alloc] init]; 94 94 _allMessages = [[NSMutableArray alloc] init]; 95 95 _shownMessages = [[NSMutableArray alloc] init]; … … 127 127 NSString *title, *nick, *server, *time; 128 128 129 nick = [ [message user] nick];129 nick = [message userNick]; 130 130 server = [[self connection] name]; 131 131 time = [_dialogDateFormatter stringFromDate:[message date]]; … … 198 198 199 199 array = [NSMutableArray array]; 200 enumerator = [_ conversations objectEnumerator];200 enumerator = [_allConversations objectEnumerator]; 201 201 202 202 while((conversation = [enumerator nextObject])) { … … 208 208 209 209 return array; 210 }211 212 213 214 - (WCConversation *)_conversationForType:(WCMessageType)type user:(WCUser *)user {215 NSEnumerator *enumerator;216 WCConversation *conversation;217 218 enumerator = [_conversations objectEnumerator];219 220 while((conversation = [enumerator nextObject])) {221 if([conversation type] == type && [conversation user] == user)222 return conversation;223 }224 225 return NULL;226 210 } 227 211 … … 264 248 265 249 266 - (NSArray *)_messagesFor Type:(WCMessageType)type fromUser:(WCUser *)userunreadOnly:(BOOL)unreadOnly {250 - (NSArray *)_messagesForConversation:(WCConversation *)conversation unreadOnly:(BOOL)unreadOnly { 267 251 NSEnumerator *enumerator; 268 252 NSMutableArray *array; … … 270 254 271 255 array = [NSMutableArray array]; 272 enumerator = [unreadOnly ? [self _unreadMessagesForType: type] : [self _messagesForType:type] objectEnumerator];256 enumerator = [unreadOnly ? [self _unreadMessagesForType:[conversation type]] : [self _messagesForType:[conversation type]] objectEnumerator]; 273 257 274 258 while((message = [enumerator nextObject])) { 275 if([[message user] isEqual:user])259 if([[message conversation] isEqual:conversation]) 276 260 [array addObject:message]; 277 261 } … … 397 381 NSInteger row; 398 382 399 conversation = [ self _conversationForType:[message type] user:[message user]];383 conversation = [message conversation]; 400 384 row = [_conversationsOutlineView rowForItem:conversation]; 401 385 … … 469 453 470 454 - (void)_removeAllConversations { 455 [_allConversations removeAllObjects]; 471 456 [_conversations removeAllObjects]; 472 457 [_conversationsOutlineView reloadData]; … … 489 474 490 475 [_titles release]; 476 [_allConversations release]; 491 477 [_conversations release]; 492 478 [_allMessages release]; … … 627 613 - (void)messagesReceivedMessage:(NSNotification *)notification { 628 614 NSArray *arguments; 615 NSString *key; 629 616 WCUser *user; 630 617 WCMessage *message; 631 618 WCConversation *conversation; 632 619 633 arguments = [[notification userInfo] objectForKey:WCArgumentsKey]; 634 message = [WCMessage messageWithArguments:arguments]; 635 user = [[[self connection] chat] userWithUserID:[message userID]]; 620 arguments = [[notification userInfo] objectForKey:WCArgumentsKey]; 621 user = [[[self connection] chat] userWithUserID:[[arguments safeObjectAtIndex:0] unsignedIntValue]]; 636 622 637 623 if(!user || [user isIgnored]) 638 624 return; 639 640 [message setUser:user]; 641 625 626 key = [WCConversation keyForType:WCMessagePrivateMessage user:user connection:[self connection]]; 627 conversation = [_conversations objectForKey:key]; 628 629 if(!conversation) { 630 conversation = [WCConversation messageConversationWithUser:user connection:[self connection]]; 631 [_allConversations addObject:conversation]; 632 [_conversations setObject:conversation forKey:[conversation key]]; 633 634 } 635 636 message = [WCMessage messageWithArguments:arguments user:user conversation:conversation]; 637 642 638 [_allMessages addObject:message]; 643 644 conversation = [WCConversation messageConversationWithUser:user];645 646 if(![_conversations containsObject:conversation])647 [_conversations addObject:conversation];648 639 649 640 [_conversationsOutlineView reloadData]; … … 666 657 - (void)messagesReceivedBroadcast:(NSNotification *)notification { 667 658 NSArray *arguments; 659 NSString *key; 668 660 WCUser *user; 669 661 WCMessage *message; 670 662 WCConversation *conversation; 671 663 672 arguments = [[notification userInfo] objectForKey:WCArgumentsKey]; 673 message = [WCMessage broadcastWithArguments:arguments]; 674 user = [[[self connection] chat] userWithUserID:[message userID]]; 675 664 arguments = [[notification userInfo] objectForKey:WCArgumentsKey]; 665 user = [[[self connection] chat] userWithUserID:[[arguments safeObjectAtIndex:0] unsignedIntValue]]; 676 666 if(!user || [user isIgnored]) 677 667 return; 678 668 679 [message setUser:user]; 669 key = [WCConversation keyForType:WCMessagePrivateMessage user:user connection:[self connection]]; 670 conversation = [_conversations objectForKey:key]; 671 672 if(!conversation) { 673 conversation = [WCConversation messageConversationWithUser:user connection:[self connection]]; 674 [_allConversations addObject:conversation]; 675 [_conversations setObject:conversation forKey:[conversation key]]; 676 } 677 678 message = [WCMessage broadcastWithArguments:arguments user:user conversation:conversation]; 680 679 681 680 [_allMessages addObject:message]; 682 681 683 conversation = [WCConversation broadcastConversationWithUser:user];684 685 if(![_conversations containsObject:conversation])686 [_conversations addObject:conversation];687 688 682 [_conversationsOutlineView reloadData]; 689 683 [[_conversationsOutlineView delegate] outlineViewSelectionDidChange:NULL]; … … 907 901 - (IBAction)reply:(id)sender { 908 902 WCMessage *message; 903 WCUser *user; 909 904 910 905 message = [self _selectedMessage]; … … 913 908 return; 914 909 915 [self showPrivateMessageToUser:[message user]]; 910 user = [[[self connection] chat] userWithUserID:[message userID]]; 911 912 if(user) 913 [self showPrivateMessageToUser:user]; 916 914 } 917 915 … … 919 917 920 918 - (void)replySheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo { 919 NSString *key; 921 920 WCMessage *message; 922 921 WCConversation *conversation; 923 922 924 923 if(returnCode == NSAlertDefaultReturn) { 925 message = [WCMessage messageToUser:_messageUser string:[[[_replyTextView string] copy] autorelease]]; 924 key = [WCConversation keyForType:WCMessagePrivateMessage user:_messageUser connection:[self connection]]; 925 conversation = [_conversations objectForKey:key]; 926 927 if(!conversation) { 928 conversation = [WCConversation messageConversationWithUser:_messageUser connection:[self connection]]; 929 [_allConversations addObject:conversation]; 930 [_conversations setObject:conversation forKey:[conversation key]]; 931 } 932 933 message = [WCMessage messageToUser:_messageUser string:[[[_replyTextView string] copy] autorelease] conversation:conversation]; 934 926 935 [_allMessages addObject:message]; 927 936 928 conversation = [WCConversation messageConversationWithUser:_messageUser];929 930 if(![_conversations containsObject:conversation])931 [_conversations addObject:conversation];932 933 937 [[self connection] sendCommand:WCMessageCommand 934 withArgument:[NSSWF:@"%u", [ [message user]userID]]938 withArgument:[NSSWF:@"%u", [message userID]] 935 939 withArgument:[message message]]; 936 940 … … 1008 1012 NSString *name = NULL; 1009 1013 NSImage *image = NULL; 1010 WCUser *user;1011 1014 WCConversation *conversation; 1012 1015 unsigned int count = 0; … … 1023 1026 else if([item isKindOfClass:[WCConversation class]]) { 1024 1027 conversation = item; 1025 user = [conversation user]; 1026 name = [user nick]; 1028 name = [conversation userNick]; 1027 1029 image = NULL; 1028 count = [[self _messagesFor Type:[conversation type] fromUser:userunreadOnly:YES] count];1030 count = [[self _messagesForConversation:conversation unreadOnly:YES] count]; 1029 1031 } 1030 1032 … … 1043 1045 1044 1046 - (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item { 1045 WCUser *user; 1046 WCConversation *conversation; 1047 unsigned int count = 0; 1047 unsigned int count = 0; 1048 1048 1049 1049 if([item isKindOfClass:[NSString class]]) { … … 1054 1054 } 1055 1055 else if([item isKindOfClass:[WCConversation class]]) { 1056 conversation = item; 1057 user = [conversation user]; 1058 count = [[self _messagesForType:[conversation type] fromUser:user unreadOnly:YES] count]; 1056 count = [[self _messagesForConversation:item unreadOnly:YES] count]; 1059 1057 } 1060 1058 … … 1078 1076 - (void)outlineViewSelectionDidChange:(NSNotification *)notification { 1079 1077 NSArray *messages = NULL; 1080 WCUser *user;1081 WCConversation *conversation;1082 1078 id item; 1083 1079 … … 1091 1087 } 1092 1088 else if([item isKindOfClass:[WCConversation class]]) { 1093 conversation = item; 1094 user = [conversation user]; 1095 messages = [self _messagesForType:[conversation type] fromUser:user unreadOnly:NO]; 1089 messages = [self _messagesForConversation:item unreadOnly:NO]; 1096 1090 } 1097 1091 … … 1121 1115 if(column == _userTableColumn) { 1122 1116 if([message direction] == WCMessageTo) 1123 string = [NSSWF:NSLS(@"To: %@", @"Message to (nick)"), [ [message user] nick]];1117 string = [NSSWF:NSLS(@"To: %@", @"Message to (nick)"), [message userNick]]; 1124 1118 else 1125 string = [NSSWF:NSLS(@"From: %@", @"Message from (nick)"), [ [message user] nick]];1119 string = [NSSWF:NSLS(@"From: %@", @"Message from (nick)"), [message userNick]]; 1126 1120 1127 1121 return [[NSAttributedString attributedStringWithString:string] attributedStringByApplyingFilter:_userFilter]; WiredClient/trunk/WCServerConnection.h
r4751 r4792 42 42 IBOutlet NSButton *_connectButton; 43 43 44 NSUInteger _connectionID; 45 44 46 NSDictionary *_bookmark; 45 47 … … 158 160 - (BOOL)isHidden; 159 161 - (void)setBookmark:(NSDictionary *)bookmark; 162 - (NSUInteger)connectionID; 160 163 - (NSDictionary *)bookmark; 161 164 - (NSString *)name; WiredClient/trunk/WCServerConnection.m
r4775 r4792 47 47 @interface WCServerConnection(Private) 48 48 49 + (NSUInteger)_connectionID; 50 49 51 - (id)_initServerConnectionWithURL:(WIURL *)url bookmark:(NSDictionary *)bookmark; 50 52 … … 56 58 57 59 @implementation WCServerConnection(Private) 60 61 + (NSUInteger)_connectionID { 62 static NSUInteger connectionID; 63 64 return ++connectionID; 65 } 66 67 68 69 #pragma mark - 58 70 59 71 - (id)_initServerConnectionWithURL:(WIURL *)url bookmark:(NSDictionary *)bookmark { … … 867 879 [_progressIndicator startAnimation:self]; 868 880 881 _connectionID = [[self class] _connectionID]; 882 869 883 _sentLogin = NO; 870 884 _loginFailed = NO; … … 990 1004 991 1005 1006 - (NSUInteger)connectionID { 1007 return _connectionID; 1008 } 1009 1010 1011 992 1012 - (void)setBookmark:(NSDictionary *)bookmark { 993 1013 [bookmark retain];
