summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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_;
};
}