diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-07-12 14:30:10 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-07-12 14:30:58 (GMT) |
commit | 2a64272ce320b4f542f2c381fe061a58bc1835fc (patch) | |
tree | 43ff1a0e235e7fe83a5f96704093a155f39e1511 /Swiften/Network | |
parent | 9d47ed3d783da724c653a17619df904fa7986be7 (diff) | |
download | swift-contrib-2a64272ce320b4f542f2c381fe061a58bc1835fc.zip swift-contrib-2a64272ce320b4f542f2c381fe061a58bc1835fc.tar.bz2 |
Created BoostIOServiceThread.
Diffstat (limited to 'Swiften/Network')
-rw-r--r-- | Swiften/Network/BoostIOServiceThread.cpp | 18 | ||||
-rw-r--r-- | Swiften/Network/BoostIOServiceThread.h | 23 | ||||
-rw-r--r-- | Swiften/Network/Makefile.inc | 1 |
3 files changed, 42 insertions, 0 deletions
diff --git a/Swiften/Network/BoostIOServiceThread.cpp b/Swiften/Network/BoostIOServiceThread.cpp new file mode 100644 index 0000000..01c3bf3 --- /dev/null +++ b/Swiften/Network/BoostIOServiceThread.cpp @@ -0,0 +1,18 @@ +#include "Swiften/Network/BoostIOServiceThread.h" + +namespace Swift { + +BoostIOServiceThread::BoostIOServiceThread() : thread_(boost::bind(&BoostIOServiceThread::doRun, this)) { +} + +BoostIOServiceThread::~BoostIOServiceThread() { + ioService_.stop(); + thread_.join(); +} + +void BoostIOServiceThread::doRun() { + boost::asio::io_service::work work(ioService_); + ioService_.run(); +} + +} diff --git a/Swiften/Network/BoostIOServiceThread.h b/Swiften/Network/BoostIOServiceThread.h new file mode 100644 index 0000000..ddc90bf --- /dev/null +++ b/Swiften/Network/BoostIOServiceThread.h @@ -0,0 +1,23 @@ +#pragma once + +#include <boost/asio.hpp> +#include <boost/thread.hpp> + +namespace Swift { + class BoostIOServiceThread { + public: + BoostIOServiceThread(); + ~BoostIOServiceThread(); + + boost::asio::io_service& getIOService() { + return ioService_; + } + + private: + void doRun(); + + private: + boost::asio::io_service ioService_; + boost::thread thread_; + }; +} diff --git a/Swiften/Network/Makefile.inc b/Swiften/Network/Makefile.inc index b0f0fd1..3e4ece6 100644 --- a/Swiften/Network/Makefile.inc +++ b/Swiften/Network/Makefile.inc @@ -6,6 +6,7 @@ SWIFTEN_SOURCES += \ Swiften/Network/BoostConnectionFactory.cpp \ Swiften/Network/ConnectionServer.cpp \ Swiften/Network/IncomingConnection.cpp \ + Swiften/Network/BoostIOServiceThread.cpp \ Swiften/Network/Timer.cpp include Swiften/Network/UnitTest/Makefile.inc |