diff options
author | Florent Le Coz <louiz@louiz.org> | 2014-07-03 02:58:27 +0200 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2014-07-03 03:31:50 +0200 |
commit | 8c34576ea0d97a22760a68aec228c76ecf25ab60 (patch) | |
tree | 87acb287c35b3b036e1dce16085f29d72f0ec1c4 /src/network/socket_handler.hpp | |
parent | 04d999168ac4629f5e49939f3659b32b2da2563d (diff) | |
download | biboumi-8c34576ea0d97a22760a68aec228c76ecf25ab60.tar.gz biboumi-8c34576ea0d97a22760a68aec228c76ecf25ab60.tar.bz2 biboumi-8c34576ea0d97a22760a68aec228c76ecf25ab60.tar.xz biboumi-8c34576ea0d97a22760a68aec228c76ecf25ab60.zip |
Move some members of TCPSocketHandler into the SocketHandler class
Diffstat (limited to 'src/network/socket_handler.hpp')
-rw-r--r-- | src/network/socket_handler.hpp | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/src/network/socket_handler.hpp b/src/network/socket_handler.hpp index b3a08d3..9a894a4 100644 --- a/src/network/socket_handler.hpp +++ b/src/network/socket_handler.hpp @@ -1,18 +1,38 @@ -#ifndef SOCKET_HANDLER_INTERFACE_HPP -# define SOCKET_HANDLER_INTERFACE_HPP +#ifndef SOCKET_HANDLER_HPP +# define SOCKET_HANDLER_HPP + +#include <memory> + +class Poller; typedef int socket_t; class SocketHandler { public: - SocketHandler() {} + explicit SocketHandler(std::shared_ptr<Poller> poller, const socket_t socket): + poller(poller), + socket(socket) + {} virtual ~SocketHandler() {} - virtual socket_t get_socket() const = 0; virtual void on_recv() = 0; virtual void on_send() = 0; virtual void connect() = 0; virtual bool is_connected() const = 0; + socket_t get_socket() const + { return this->socket; } + +protected: + /** + * A pointer to the poller that manages us, because we need to communicate + * with it. + */ + std::shared_ptr<Poller> poller; + /** + * The handled socket. + */ + socket_t socket; + private: SocketHandler(const SocketHandler&) = delete; SocketHandler(SocketHandler&&) = delete; @@ -20,4 +40,4 @@ private: SocketHandler& operator=(SocketHandler&&) = delete; }; -#endif // SOCKET_HANDLER_INTERFACE_HPP +#endif // SOCKET_HANDLER_HPP |