1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <assert.h>
#import <ObjFW/ObjFW.h>
#import "XMPPConnection.h"
#import "XMPPStanza.h"
@interface AppDelegate: OFObject
{
XMPPConnection *conn;
}
@end
|
>
>
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include <assert.h>
#import <ObjFW/ObjFW.h>
#import "XMPPConnection.h"
#import "XMPPStanza.h"
#import "XMPPIQ.h"
#import "XMPPMessage.h"
#import "XMPPPresence.h"
@interface AppDelegate: OFObject
{
XMPPConnection *conn;
}
@end
|
21
22
23
24
25
26
27
28
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
|
XMPPPresence *pres = [XMPPPresence presence];
[pres addShow: @"chat"];
[pres addStatus: @"Bored"];
[pres addPriority: 20];
pres.to = @"alice@example.com";
pres.from = @"bob@example.org";
assert([[pres stringValue] isEqual: @"<presence to='alice@example.com' "
@"from='bob@example.org'><show>chat</show>"
@"<status>Bored</status><priority>20</priority>"
@"</presence>"]);
XMPPMessage *msg = [XMPPMessage messageWithType: @"chat"];
[msg addBody: @"Hello everyone"];
msg.to = @"jdev@conference.jabber.org";
msg.from = @"alice@example.com";
assert([[msg stringValue] isEqual: @"<message type='chat' "
@"to='jdev@conference.jabber.org' "
@"from='alice@example.com'><body>Hello everyone</body>"
@"</message>"]);
XMPPIQ *iq = [XMPPIQ IQWithType: @"set" ID: @"128"];
iq.to = @"juliet@capulet.lit";
iq.from = @"romeo@montague.lit";
assert([[iq stringValue] isEqual: @"<iq type='set' id='128' "
@"to='juliet@capulet.lit' "
@"from='romeo@montague.lit'/>"]);
OFXMLElement *elem = [OFXMLElement elementWithName: @"iq"];
[elem addAttributeWithName: @"from" stringValue: @"bob@localhost"];
[elem addAttributeWithName: @"to" stringValue: @"alice@localhost"];
[elem addAttributeWithName: @"type" stringValue: @"get"];
[elem addAttributeWithName: @"id" stringValue: @"42"];
XMPPStanza *stanza = [XMPPStanza stanzaWithElement: elem];
assert([[elem stringValue] isEqual: [stanza stringValue]]);
assert(([[OFString stringWithFormat: @"%@, %@, %@, %@", stanza.from,
stanza.to, stanza.type, stanza.ID]
isEqual: @"bob@localhost, alice@localhost, get, 42"]));
conn = [[XMPPConnection alloc] init];
if (arguments.count != 3) {
of_log(@"Invalid count of command line arguments!");
[OFApplication terminateWithStatus: 1];
}
|
|
|
|
|
|
|
|
|
|
|
|
24
25
26
27
28
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
|
XMPPPresence *pres = [XMPPPresence presence];
[pres addShow: @"chat"];
[pres addStatus: @"Bored"];
[pres addPriority: 20];
pres.to = @"alice@example.com";
pres.from = @"bob@example.org";
assert([[pres stringValue] isEqual: @"<presence to='alice@example.com' "
@"from='bob@example.org'><show>chat</show>"
@"<status>Bored</status><priority>20</priority>"
@"</presence>"]);
XMPPMessage *msg = [XMPPMessage messageWithType: @"chat"];
[msg addBody: @"Hello everyone"];
msg.to = @"jdev@conference.jabber.org";
msg.from = @"alice@example.com";
assert([[msg stringValue] isEqual: @"<message type='chat' "
@"to='jdev@conference.jabber.org' "
@"from='alice@example.com'><body>Hello everyone</body>"
@"</message>"]);
XMPPIQ *iq = [XMPPIQ IQWithType: @"set" ID: @"128"];
iq.to = @"juliet@capulet.lit";
iq.from = @"romeo@montague.lit";
assert([[iq stringValue] isEqual: @"<iq type='set' id='128' "
@"to='juliet@capulet.lit' "
@"from='romeo@montague.lit'/>"]);
OFXMLElement *elem = [OFXMLElement elementWithName: @"iq"];
[elem addAttributeWithName: @"from" stringValue: @"bob@localhost"];
[elem addAttributeWithName: @"to" stringValue: @"alice@localhost"];
[elem addAttributeWithName: @"type" stringValue: @"get"];
[elem addAttributeWithName: @"id" stringValue: @"42"];
XMPPStanza *stanza = [XMPPStanza stanzaWithElement: elem];
assert([[elem stringValue] isEqual: [stanza stringValue]]);
assert(([[OFString stringWithFormat: @"%@, %@, %@, %@", stanza.from,
stanza.to, stanza.type, stanza.ID]
isEqual: @"bob@localhost, alice@localhost, get, 42"]));
conn = [[XMPPConnection alloc] init];
if (arguments.count != 3) {
of_log(@"Invalid count of command line arguments!");
[OFApplication terminateWithStatus: 1];
}
|