summaryrefslogtreecommitdiff
path: root/src/network/socket_handler.hpp
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2014-07-03 02:58:27 +0200
committerFlorent Le Coz <louiz@louiz.org>2014-07-03 03:31:50 +0200
commit8c34576ea0d97a22760a68aec228c76ecf25ab60 (patch)
tree87acb287c35b3b036e1dce16085f29d72f0ec1c4 /src/network/socket_handler.hpp
parent04d999168ac4629f5e49939f3659b32b2da2563d (diff)
downloadbiboumi-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.hpp30
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