Add -[XMPPRoster deleteRosterItem:] and -[XMPPRosterItem copy].

This commit is contained in:
Jonathan Schleifer 2011-03-28 18:15:48 +02:00
parent 823ea0eb5e
commit 993d0a7596
3 changed files with 44 additions and 0 deletions

View file

@ -35,4 +35,6 @@
- (OFArray*)groups;
- (OFArray*)rosterItemsInGroup: (OFString*)group;
- (void)addRosterItem: (XMPPRosterItem*)rosterItem;
- (void)updateRosterItem: (XMPPRosterItem*)rosterItem;
- (void)deleteRosterItem: (XMPPRosterItem*)rosterItem;
@end

View file

@ -98,6 +98,11 @@
}
- (void)addRosterItem: (XMPPRosterItem*)rosterItem
{
[self updateRosterItem: rosterItem];
}
- (void)updateRosterItem: (XMPPRosterItem*)rosterItem
{
XMPPIQ *iq = [XMPPIQ IQWithType: @"set"
ID: [connection generateStanzaID]];
@ -122,4 +127,24 @@
[connection sendStanza: iq];
}
- (void)deleteRosterItem: (XMPPRosterItem*)rosterItem
{
XMPPIQ *iq = [XMPPIQ IQWithType: @"set"
ID: [connection generateStanzaID]];
OFXMLElement *query = [OFXMLElement elementWithName: @"query"
namespace: XMPP_NS_ROSTER];
OFXMLElement *item = [OFXMLElement elementWithName: @"item"
namespace: XMPP_NS_ROSTER];
[item addAttributeWithName: @"jid"
stringValue: rosterItem.JID.bareJID];
[item addAttributeWithName: @"subscription"
stringValue: @"remove"];
[query addChild: item];
[iq addChild: query];
[connection sendStanza: iq];
}
@end

View file

@ -30,6 +30,23 @@
return [[[self alloc] init] autorelease];
}
- copy
{
XMPPRosterItem *new = [[XMPPRosterItem alloc] init];
@try {
new->JID = [JID copy];
new->name = [name copy];
new->subscription = [subscription copy];
new->groups = [groups copy];
} @catch (id e) {
[new release];
@throw e;
}
return new;
}
- (OFString*)description
{
return [OFString stringWithFormat: @"<XMPPRosterItem, JID=%@, name=%@, "