diff options
| author | Remko Tronçon <git@el-tramo.be> | 2010-12-18 10:16:05 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2010-12-18 10:16:05 (GMT) | 
| commit | 82a34212908a749964deb419e6baf476a247ed84 (patch) | |
| tree | d07cbb436284155a8497d75e9c6acb0a1f06795e | |
| parent | b5ad1ec998ec01501866c2ae5ea66c650b79c5cf (diff) | |
| download | swift-82a34212908a749964deb419e6baf476a247ed84.zip swift-82a34212908a749964deb419e6baf476a247ed84.tar.bz2 | |
Added initial BenchTool.
| -rw-r--r-- | Swiften/Client/ClientXMLTracer.h | 4 | ||||
| -rw-r--r-- | Swiften/Examples/BenchTool/.gitignore | 1 | ||||
| -rw-r--r-- | Swiften/Examples/BenchTool/BenchTool.cpp | 71 | ||||
| -rw-r--r-- | Swiften/Examples/BenchTool/SConscript | 9 | ||||
| -rw-r--r-- | Swiften/Examples/SConscript | 1 | 
5 files changed, 84 insertions, 2 deletions
| diff --git a/Swiften/Client/ClientXMLTracer.h b/Swiften/Client/ClientXMLTracer.h index f3cfd08..43fdda3 100644 --- a/Swiften/Client/ClientXMLTracer.h +++ b/Swiften/Client/ClientXMLTracer.h @@ -8,12 +8,12 @@  #include <boost/bind.hpp> -#include "Swiften/Client/Client.h" +#include <Swiften/Client/CoreClient.h>  namespace Swift {  	class ClientXMLTracer {  		public: -			ClientXMLTracer(Client* client) { +			ClientXMLTracer(CoreClient* client) {  				client->onDataRead.connect(boost::bind(&ClientXMLTracer::printData, '<', _1));  				client->onDataWritten.connect(boost::bind(&ClientXMLTracer::printData, '>', _1));  			} diff --git a/Swiften/Examples/BenchTool/.gitignore b/Swiften/Examples/BenchTool/.gitignore new file mode 100644 index 0000000..8220b3b --- /dev/null +++ b/Swiften/Examples/BenchTool/.gitignore @@ -0,0 +1 @@ +BenchTool diff --git a/Swiften/Examples/BenchTool/BenchTool.cpp b/Swiften/Examples/BenchTool/BenchTool.cpp new file mode 100644 index 0000000..a5c0925 --- /dev/null +++ b/Swiften/Examples/BenchTool/BenchTool.cpp @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * 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/TimerFactory.h" +#include "Swiften/Network/BoostNetworkFactories.h" +#include "Swiften/EventLoop/EventLoop.h" +#include "Swiften/EventLoop/SimpleEventLoop.h" +#include "Swiften/Roster/GetRosterRequest.h" +#include "Swiften/Client/ClientXMLTracer.h" +#include <Swiften/Base/sleep.h> +#include <Swiften/TLS/BlindCertificateTrustChecker.h> + +using namespace Swift; + +SimpleEventLoop eventLoop; +BoostNetworkFactories networkFactories(&eventLoop); +int numberOfConnectedClients = 0; + +void handleConnected() { +	numberOfConnectedClients++; +	std::cout << "Connected " << numberOfConnectedClients << std::endl; +} + +int main(int, char**) { +	int numberOfInstances = 1000; + +	char* jid = getenv("SWIFT_BENCHTOOL_JID"); +	if (!jid) { +		std::cerr << "Please set the SWIFT_BENCHTOOL_JID environment variable" << std::endl; +		return -1; +	} +	char* pass = getenv("SWIFT_BENCHTOOL_PASS"); +	if (!pass) { +		std::cerr << "Please set the SWIFT_BENCHTOOL_PASS environment variable" << std::endl; +		return -1; +	} + +	BlindCertificateTrustChecker trustChecker; +	std::vector<CoreClient*> clients; +	for (int i = 0; i < numberOfInstances; ++i) { +		CoreClient* client = new Swift::CoreClient(&eventLoop, &networkFactories, JID(jid), String(pass)); +		client->setCertificateTrustChecker(&trustChecker); +		client->onConnected.connect(&handleConnected); +		clients.push_back(client); +	} +	 +	for (size_t i = 0; i < clients.size(); ++i) { +		clients[i]->connect(); +	} + +	{ +		Timer::ref timer = networkFactories.getTimerFactory()->createTimer(30000); +		timer->onTick.connect(boost::bind(&SimpleEventLoop::stop, &eventLoop)); +		timer->start(); + +		eventLoop.run(); +	} + +	for (size_t i = 0; i < clients.size(); ++i) { +		delete clients[i]; +	} + +	return 0; +} diff --git a/Swiften/Examples/BenchTool/SConscript b/Swiften/Examples/BenchTool/SConscript new file mode 100644 index 0000000..bfd4cea --- /dev/null +++ b/Swiften/Examples/BenchTool/SConscript @@ -0,0 +1,9 @@ +import os + +Import("env") + +myenv = env.Clone() +myenv.UseFlags(myenv["SWIFTEN_FLAGS"]) +myenv.UseFlags(myenv["SWIFTEN_DEP_FLAGS"]) + +myenv.Program("BenchTool", ["BenchTool.cpp"]) diff --git a/Swiften/Examples/SConscript b/Swiften/Examples/SConscript index 7b9b491..9b9a35a 100644 --- a/Swiften/Examples/SConscript +++ b/Swiften/Examples/SConscript @@ -8,4 +8,5 @@ SConscript(dirs = [  	"ConnectivityTest",  	"LinkLocalTool",  	"ParserTester", +	"BenchTool",  ]) | 
 Swift
 Swift