Overview
Context
Changes
Modified configure.ac
from [cc022bbe90]
to [e73fb2f584].
︙ | | |
55
56
57
58
59
60
61
62
63
64
|
55
56
57
58
59
60
61
62
63
64
|
-
+
|
BUILDSYS_TOUCH_DEPS
dnl We don't call AC_PROG_CPP, but only AC_PROG_OBJCPP and set CPP to OBJCPP
dnl and add OBJCPPA.FLAGS to CPPFLAGS, thus we need to AC_SUBST these ourself
AC_SUBST(CPP)
AC_SUBST(CPPFLAGS)
AC_SUBST(PACKAGE, ObjFW)
AC_SUBST(PACKAGE, ObjXMPP)
AC_CONFIG_FILES([buildsys.mk extra.mk])
AC_OUTPUT
|
Modified src/XMPPRoster.h
from [6e37e7971b]
to [1f83f6aa00].
︙ | | |
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
-
+
-
-
+
+
+
|
@class XMPPConnection;
@class XMPPRosterItem;
@interface XMPPRoster: OFObject
{
XMPPConnection *connection;
OFMutableDictionary *groups;
OFMutableDictionary *rosterItems;
}
- initWithConnection: (XMPPConnection*)conn;
- (void)XMPP_addRosterItem: (XMPPRosterItem*)rosterItem;
- (OFArray*)groups;
- (OFArray*)rosterItemsInGroup: (OFString*)group;
- (void)XMPP_updateRosterItem: (XMPPRosterItem*)rosterItem;
- (void)XMPP_deleteRosterItem: (XMPPRosterItem*)rosterItem;
- (OFDictionary*)rosterItems;
- (void)addRosterItem: (XMPPRosterItem*)rosterItem;
- (void)updateRosterItem: (XMPPRosterItem*)rosterItem;
- (void)deleteRosterItem: (XMPPRosterItem*)rosterItem;
@end
|
Modified src/XMPPRoster.m
from [401105b7c9]
to [4eed8628a8].
︙ | | |
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
-
+
-
-
-
-
+
-
-
-
-
-
+
-
-
-
-
-
-
+
+
-
-
-
-
-
+
-
-
-
-
-
+
+
+
-
-
-
-
+
-
-
-
-
-
+
-
-
-
-
+
-
-
-
+
-
-
+
-
-
-
-
+
|
@implementation XMPPRoster
- initWithConnection: (XMPPConnection*)conn
{
self = [super init];
@try {
connection = [conn retain];
groups = [[OFMutableDictionary alloc] init];
rosterItems = [[OFMutableDictionary alloc] init];
} @catch (id e) {
[self release];
@throw e;
}
return self;
}
- (void)dealloc
{
[connection release];
[super dealloc];
}
- (void)XMPP_addRosterItem: (XMPPRosterItem*)rosterItem
{
if ([[rosterItem groups] count] > 0) {
OFEnumerator *enumerator;
OFString *group;
return [self XMPP_updateRosterItem: rosterItem];
enumerator = [[rosterItem groups] objectEnumerator];
while ((group = [enumerator nextObject]) != nil) {
OFMutableArray *rosterGroup =
[groups objectForKey: group];
}
if (rosterGroup == nil) {
rosterGroup = [OFMutableArray array];
[groups setObject: rosterGroup
forKey: group];
}
- (void)XMPP_updateRosterItem: (XMPPRosterItem*)rosterItem
[rosterGroup addObject: rosterItem];
}
} else {
OFMutableArray *rosterGroup = [groups objectForKey: @""];
{
if (rosterGroup == nil) {
rosterGroup = [OFMutableArray array];
[groups setObject: rosterGroup
forKey: @""];
}
[rosterItems setObject: rosterItem
forKey: [[rosterItem JID] bareJID]];
}
[rosterGroup addObject: rosterItem];
}
}
- (void)XMPP_deleteRosterItem: (XMPPRosterItem*)rosterItem
- (OFArray*)groups
{
OFMutableArray *ret = [OFMutableArray array];
OFEnumerator *enumerator;
OFString *group;
[rosterItems removeObjectForKey: [[rosterItem JID] bareJID]];
enumerator = [groups keyEnumerator];
while ((group = [enumerator nextObject]) != nil)
[ret addObject: group];
}
ret->isa = [OFArray class];
return ret;
}
- (OFArray*)rosterItemsInGroup: (OFString*)group
- (OFDictionary*)rosterItems
{
if (group == nil)
group = @"";
return [[[groups objectForKey: group] copy] autorelease];
return [[rosterItems copy] autorelease];
}
- (void)addRosterItem: (XMPPRosterItem*)rosterItem
{
[self updateRosterItem: rosterItem];
}
|
︙ | | |
Modified tests/test.m
from [d26de2a21f]
to [af27a5ba19].
︙ | | |
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
-
-
-
-
-
-
-
+
|
[conn requestRoster];
}
- (void)connectionDidReceiveRoster :(XMPPConnection*)conn
{
XMPPPresence *pres;
OFEnumerator *enumerator;
OFString *group;
of_log(@"Got roster! Groups: %@", [[conn roster] groups]);
enumerator = [[[conn roster] groups] objectEnumerator];
while ((group = [enumerator nextObject]) != nil)
of_log(@"Group %@: %@", group,
[[conn roster] rosterItemsInGroup: group]);
of_log(@"Got roster: %@", [[conn roster] rosterItems]);
pres = [XMPPPresence presence];
[pres addPriority: 10];
[pres addStatus: @"ObjXMPP test is working!"];
[conn sendStanza: pres];
}
|
︙ | | |