summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-08-01 22:56:13 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-08-01 22:56:13 (GMT)
commitaa3b4c09352cdfb2f999fc6c12faed6339405d03 (patch)
treee0f64dc8c2e78ddb7b8c7c76b1e0ae997009c5d9 /Swiften/Network/BoostConnectionServer.h
parent3a4c1c7a6fd03fed0bdfc3acc85d60ec1797361c (diff)
downloadswift-aa3b4c09352cdfb2f999fc6c12faed6339405d03.zip
swift-aa3b4c09352cdfb2f999fc6c12faed6339405d03.tar.bz2
Added BoostConnectionServer error signaling.
Diffstat (limited to 'Swiften/Network/BoostConnectionServer.h')
-rw-r--r--Swiften/Network/BoostConnectionServer.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/Swiften/Network/BoostConnectionServer.h b/Swiften/Network/BoostConnectionServer.h
index c92318e..d8e5eb4 100644
--- a/Swiften/Network/BoostConnectionServer.h
+++ b/Swiften/Network/BoostConnectionServer.h
@@ -3,6 +3,7 @@
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/asio.hpp>
+#include <boost/signal.hpp>
#include "Swiften/Network/BoostConnection.h"
#include "Swiften/Network/ConnectionServer.h"
@@ -11,15 +12,25 @@
namespace Swift {
class BoostConnectionServer : public ConnectionServer, public EventOwner, public boost::enable_shared_from_this<BoostConnectionServer> {
public:
+ enum Error {
+ Conflict,
+ UnknownError
+ };
BoostConnectionServer(int port, boost::asio::io_service* ioService);
void start();
+ void stop();
+
+ boost::signal<void (boost::optional<Error>)> onStopped;
private:
+ void stop(boost::optional<Error> e);
void acceptNextConnection();
void handleAccept(boost::shared_ptr<BoostConnection> newConnection, const boost::system::error_code& error);
private:
- boost::asio::ip::tcp::acceptor acceptor_;
+ int port_;
+ boost::asio::io_service* ioService_;
+ boost::asio::ip::tcp::acceptor* acceptor_;
};
}