diff options
| -rw-r--r-- | Limber/main.cpp | 11 | ||||
| -rw-r--r-- | Swiften/Network/ConnectionServer.cpp | 8 | ||||
| -rw-r--r-- | Swiften/Network/ConnectionServer.h | 15 | ||||
| -rw-r--r-- | Swiften/Network/IncomingConnection.cpp | 8 | ||||
| -rw-r--r-- | Swiften/Network/IncomingConnection.h | 17 | ||||
| -rw-r--r-- | Swiften/Network/Makefile.inc | 2 | 
6 files changed, 55 insertions, 6 deletions
| diff --git a/Limber/main.cpp b/Limber/main.cpp index bc061e5..0893fc8 100644 --- a/Limber/main.cpp +++ b/Limber/main.cpp @@ -11,6 +11,8 @@  #include "Swiften/Base/ByteArray.h"  #include "Swiften/EventLoop/MainEventLoop.h"  #include "Swiften/EventLoop/SimpleEventLoop.h" +#include "Swiften/Network/IncomingConnection.h" +#include "Swiften/Network/ConnectionServer.h"  using namespace Swift; @@ -33,7 +35,7 @@ class SharedBuffer {  		boost::asio::const_buffer buffer_;  }; -class IncomingBoostConnection : public boost::enable_shared_from_this<IncomingBoostConnection> { +class IncomingBoostConnection : public IncomingConnection, public boost::enable_shared_from_this<IncomingBoostConnection> {  	public:  		typedef boost::shared_ptr<IncomingBoostConnection> pointer; @@ -64,7 +66,6 @@ class IncomingBoostConnection : public boost::enable_shared_from_this<IncomingBo  		}  		boost::asio::ip::tcp::socket socket_; -		std::string message_;  };  class BoostIOServiceThread { @@ -92,14 +93,12 @@ class BoostIOServiceThread {  		boost::thread thread_;  }; -class BoostConnectionServer { +class BoostConnectionServer : public ConnectionServer {  	public:  		BoostConnectionServer(int port, boost::asio::io_service& ioService) : acceptor_(ioService, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port)) {  			acceptNextConnection();  		} -		boost::signal<void (IncomingBoostConnection::pointer)> onNewConnection; -  	private:  		// Called from Asio thread  		void acceptNextConnection() { @@ -119,7 +118,7 @@ class BoostConnectionServer {  		boost::asio::ip::tcp::acceptor acceptor_;  }; -void doSomething(IncomingBoostConnection::pointer c) { +void doSomething(boost::shared_ptr<IncomingConnection> c) {  	c->write("Hello\n");  } diff --git a/Swiften/Network/ConnectionServer.cpp b/Swiften/Network/ConnectionServer.cpp new file mode 100644 index 0000000..7f63fee --- /dev/null +++ b/Swiften/Network/ConnectionServer.cpp @@ -0,0 +1,8 @@ +#include "Swiften/Network/ConnectionServer.h" + +namespace Swift { + +ConnectionServer::~ConnectionServer() { +} + +} diff --git a/Swiften/Network/ConnectionServer.h b/Swiften/Network/ConnectionServer.h new file mode 100644 index 0000000..d376308 --- /dev/null +++ b/Swiften/Network/ConnectionServer.h @@ -0,0 +1,15 @@ +#pragma once + +#include <boost/shared_ptr.hpp> +#include <boost/signal.hpp> + +#include "Swiften/Network/IncomingConnection.h" + +namespace Swift { +	class ConnectionServer { +		public: +			virtual ~ConnectionServer(); + +			boost::signal<void (boost::shared_ptr<IncomingConnection>)> onNewConnection; +	}; +} diff --git a/Swiften/Network/IncomingConnection.cpp b/Swiften/Network/IncomingConnection.cpp new file mode 100644 index 0000000..669f68e --- /dev/null +++ b/Swiften/Network/IncomingConnection.cpp @@ -0,0 +1,8 @@ +#include "Swiften/Network/IncomingConnection.h" + +namespace Swift { + +IncomingConnection::~IncomingConnection() { +} + +} diff --git a/Swiften/Network/IncomingConnection.h b/Swiften/Network/IncomingConnection.h new file mode 100644 index 0000000..eaa2ad6 --- /dev/null +++ b/Swiften/Network/IncomingConnection.h @@ -0,0 +1,17 @@ +#pragma once + +#include <boost/signal.hpp> + +#include "Swiften/Base/ByteArray.h" + +namespace Swift { +	class IncomingConnection { +		public: +			virtual ~IncomingConnection(); + +			virtual void write(const ByteArray& data) = 0; + +			//boost::signal<void (Error)> onError; +			boost::signal<void (const ByteArray&)> onDataRead; +	}; +} diff --git a/Swiften/Network/Makefile.inc b/Swiften/Network/Makefile.inc index 17b2838..b0f0fd1 100644 --- a/Swiften/Network/Makefile.inc +++ b/Swiften/Network/Makefile.inc @@ -4,6 +4,8 @@ SWIFTEN_SOURCES += \  	Swiften/Network/ConnectionFactory.cpp \  	Swiften/Network/BoostConnection.cpp \  	Swiften/Network/BoostConnectionFactory.cpp \ +	Swiften/Network/ConnectionServer.cpp \ +	Swiften/Network/IncomingConnection.cpp \  	Swiften/Network/Timer.cpp  include Swiften/Network/UnitTest/Makefile.inc | 
 Swift
 Swift