blob: e74ae277594e1d55c42b32fdf1f006ad9467a3ba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
65
66
67
68
69
70
71
72
73
|
/*
* Copyright (c) 2010 Kevin Smith
* Licensed under the GNU General Public License v3.
* See Documentation/Licenses/GPLv3.txt for more information.
*/
#include <boost/bind.hpp>
#include <boost/thread.hpp>
#include "Swiften/Client/Client.h"
#include "Swiften/Network/BoostTimer.h"
#include "Swiften/EventLoop/EventLoop.h"
#include "Swiften/EventLoop/SimpleEventLoop.h"
#include "Swiften/Roster/GetRosterRequest.h"
#include "Swiften/Client/ClientXMLTracer.h"
#include "Swiften/Network/BoostIOServiceThread.h"
#include "Swiften/Network/MainBoostIOServiceThread.h"
using namespace Swift;
using namespace Swift;
bool connecting_ = false;
Client* client_;
SimpleEventLoop eventLoop_;
int count = 0;
void handleTick(boost::shared_ptr<BoostTimer> timer) {
std::cout << "Count " << count++ << std::endl;
if (timer) {
timer->stop();
}
if (connecting_) {
client_->disconnect();
} else {
if (count > 60) {
eventLoop_.stop();
return;
}
client_->connect();
}
connecting_ = !connecting_;
int delay = 500;
// int delay = 0;
boost::shared_ptr<BoostTimer> newTimer(BoostTimer::create(delay, &MainBoostIOServiceThread::getInstance().getIOService()));
newTimer->onTick.connect(boost::bind(&handleTick, timer));
newTimer->start();
}
int main(int, char**) {
char* jidChars = getenv("SWIFT_CLIENTTEST_JID");
if (!jidChars) {
std::cerr << "Please set the SWIFT_CLIENTTEST_JID environment variable" << std::endl;
return -1;
}
char* passChars = getenv("SWIFT_CLIENTTEST_PASS");
if (!passChars) {
std::cerr << "Please set the SWIFT_CLIENTTEST_PASS environment variable" << std::endl;
return -1;
}
JID jid(jidChars);
String pass(passChars);
client_ = new Swift::Client(jid, pass);
handleTick(boost::shared_ptr<BoostTimer>());
eventLoop_.run();
delete client_;
return 0;
}
|