129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
+
|
}
if ([connection supportsRosterVersioning]) {
OFString *ver =
[[rosterElement attributeForName: @"ver"] stringValue];
[dataStorage setStringValue: ver
forPath: @"roster.ver"];
[dataStorage save];
}
[delegates broadcastSelector: @selector(
roster:didReceiveRosterItem:)
withObject: self
withObject: rosterItem];
|
224
225
226
227
228
229
230
231
232
233
234
235
236
237
|
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
|
+
+
+
|
- (void)XMPP_updateRosterItem: (XMPPRosterItem*)rosterItem
{
if ([connection supportsRosterVersioning]) {
OFMutableDictionary *items = [[[dataStorage dictionaryForPath:
@"roster.items"] mutableCopy] autorelease];
if (items == nil)
items = [OFMutableDictionary dictionary];
if (![[rosterItem subscription] isEqual: @"remove"]) {
OFMutableDictionary *item = [OFMutableDictionary
dictionaryWithKeysAndObjects:
@"JID", [[rosterItem JID] bareJID],
@"subscription", [rosterItem subscription],
nil];
|
338
339
340
341
342
343
344
345
346
347
348
349
350
351
|
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
|
+
|
}
if ([connection supportsRosterVersioning]) {
OFString *ver =
[[rosterElement attributeForName: @"ver"] stringValue];
[dataStorage setStringValue: ver
forPath: @"roster.ver"];
[dataStorage save];
}
[delegates broadcastSelector: @selector(rosterWasReceived:)
withObject: self];
}
@end
|