Commit 8c34576e authored by louiz’'s avatar louiz’

Move some members of TCPSocketHandler into the SocketHandler class

parent 04d99916
#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
......@@ -38,8 +38,7 @@ using namespace std::chrono_literals;
namespace ph = std::placeholders;
TCPSocketHandler::TCPSocketHandler(std::shared_ptr<Poller> poller):
socket(-1),
poller(poller),
SocketHandler(poller, -1),
use_tls(false),
connected(false),
connecting(false)
......@@ -292,11 +291,6 @@ void TCPSocketHandler::close()
this->port.clear();
}
socket_t TCPSocketHandler::get_socket() const
{
return this->socket;
}
void TCPSocketHandler::send_data(std::string&& data)
{
#ifdef BOTAN_FOUND
......
......@@ -34,15 +34,13 @@ public:
};
#endif // BOTAN_FOUND
class Poller;
/**
* An interface, with a series of callbacks that should be implemented in
* subclasses that deal with a socket. These callbacks are called on various events
* (read/write/timeout, etc) when they are notified to a poller
* (select/poll/epoll etc)
*/
class TCPSocketHandler: SocketHandler
class TCPSocketHandler: public SocketHandler
{
protected:
~TCPSocketHandler() {}
......@@ -77,10 +75,6 @@ public:
* Watch the socket for send events, if our out buffer is not empty.
*/
void send_pending_data();
/**
* Returns the socket that should be handled by the poller.
*/
socket_t get_socket() const;
/**
* Close the connection, remove us from the poller
*/
......@@ -185,10 +179,6 @@ private:
*/
void on_tls_activated();
#endif // BOTAN_FOUND
/**
* The handled socket.
*/
socket_t socket;
/**
* Where data is added, when we want to send something to the client.
*/
......@@ -203,15 +193,6 @@ private:
socklen_t ai_addrlen;
protected:
/**
* A pointer to the poller that manages us, because we need to communicate
* with it, sometimes (for example to tell it that he now needs to watch
* write events for us). Do not ever try to delete it.
*
* And a raw pointer because we are not owning it, it is owning us
* (actually it is sharing our ownership with a Bridge).
*/
std::shared_ptr<Poller> poller;
/**
* Where data read from the socket is added until we can extract a full
* and meaningful “message” from it.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment