diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-05-20 18:18:37 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-05-20 18:18:37 +0200 |
commit | 4bbe42a77b6782fd6889e673c10316f7e668eae8 (patch) | |
tree | 61509c698ee65e115abf69a8d5df197da97f9595 /src/Net/Listener.h | |
parent | 9ad913e5f181269050f0e10dac9589ac18733c31 (diff) | |
download | mad-4bbe42a77b6782fd6889e673c10316f7e668eae8.tar mad-4bbe42a77b6782fd6889e673c10316f7e668eae8.zip |
Listener Thread-sicher gemacht
Diffstat (limited to 'src/Net/Listener.h')
-rw-r--r-- | src/Net/Listener.h | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/Net/Listener.h b/src/Net/Listener.h index 0833cdf..903c907 100644 --- a/src/Net/Listener.h +++ b/src/Net/Listener.h @@ -29,29 +29,23 @@ namespace Mad { namespace Net { -// TODO XXX Thread-safeness XXX class Listener : boost::noncopyable { private: - class ServerConnection : public Connection { - public: - friend class Listener; - - ServerConnection(boost::asio::ssl::context &sslContext) : Connection(sslContext) {} - }; + boost::mutex mutex; std::string x905CertFile, x905KeyFile; boost::asio::ip::tcp::endpoint address; boost::asio::ip::tcp::acceptor acceptor; boost::asio::ssl::context sslContext; - std::map<boost::shared_ptr<ServerConnection>, std::pair<boost::signals::connection, boost::signals::connection> > connections; + std::map<boost::shared_ptr<Connection>, std::pair<boost::signals::connection, boost::signals::connection> > connections; boost::signal1<void, boost::shared_ptr<Connection> > signal; - void handleAccept(const boost::system::error_code &error, boost::shared_ptr<ServerConnection> con); + void handleAccept(const boost::system::error_code &error, boost::shared_ptr<Connection> con); - void handleConnect(boost::shared_ptr<ServerConnection> con); - void handleDisconnect(boost::shared_ptr<ServerConnection> con); + void handleConnect(boost::shared_ptr<Connection> con); + void handleDisconnect(boost::shared_ptr<Connection> con); public: Listener(const std::string &x905CertFile0, const std::string &x905KeyFile0, |