summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouiz’ <louiz@louiz.org>2016-07-07 09:27:22 +0200
committerlouiz’ <louiz@louiz.org>2016-07-12 11:15:42 +0200
commit5328d0806fdc5becb9344b4d4320787a2b7c0712 (patch)
tree5d3547e1c84f7ef6b86e10842ed0bb87bf6b5588
parent9fb2e116c47a9d4e2866d34450d12dcb90d4a26c (diff)
downloadbiboumi-5328d0806fdc5becb9344b4d4320787a2b7c0712.tar.gz
biboumi-5328d0806fdc5becb9344b4d4320787a2b7c0712.tar.bz2
biboumi-5328d0806fdc5becb9344b4d4320787a2b7c0712.tar.xz
biboumi-5328d0806fdc5becb9344b4d4320787a2b7c0712.zip
Don’t use unique_ptr to store dns socket handlers
-rw-r--r--louloulibs/network/dns_handler.cpp14
-rw-r--r--louloulibs/network/dns_handler.hpp2
-rw-r--r--louloulibs/network/dns_socket_handler.hpp6
-rw-r--r--louloulibs/network/socket_handler.hpp6
4 files changed, 14 insertions, 14 deletions
diff --git a/louloulibs/network/dns_handler.cpp b/louloulibs/network/dns_handler.cpp
index 5e19f8c..24c4bcf 100644
--- a/louloulibs/network/dns_handler.cpp
+++ b/louloulibs/network/dns_handler.cpp
@@ -68,7 +68,7 @@ void DNSHandler::watch_dns_sockets(std::shared_ptr<Poller>& poller)
std::remove_if(this->socket_handlers.begin(), this->socket_handlers.end(),
[&readers](const auto& dns_socket)
{
- return !FD_ISSET(dns_socket->get_socket(), &readers);
+ return !FD_ISSET(dns_socket.get_socket(), &readers);
}),
this->socket_handlers.end());
@@ -81,8 +81,8 @@ void DNSHandler::watch_dns_sockets(std::shared_ptr<Poller>& poller)
this->socket_handlers.end(),
[i](const auto& socket_handler)
{
- return i == socket_handler->get_socket();
- });
+ return i == socket_handler.get_socket();
+ });
if (!read && !write) // No need to read or write to it
{ // If found, erase it and stop watching it because it is not
// needed anymore
@@ -95,12 +95,12 @@ void DNSHandler::watch_dns_sockets(std::shared_ptr<Poller>& poller)
if (it == this->socket_handlers.end())
{
this->socket_handlers.emplace(this->socket_handlers.begin(),
- std::make_unique<DNSSocketHandler>(poller, i));
+ poller, i);
it = this->socket_handlers.begin();
}
- poller->add_socket_handler(it->get());
+ poller->add_socket_handler(&*it);
if (write)
- poller->watch_send_events(it->get());
+ poller->watch_send_events(&*it);
}
}
// Cancel previous timer, if any.
@@ -116,7 +116,7 @@ void DNSHandler::watch_dns_sockets(std::shared_ptr<Poller>& poller)
[this]()
{
for (auto& dns_socket_handler: this->socket_handlers)
- dns_socket_handler->on_recv();
+ dns_socket_handler.on_recv();
},
"DNS timeout"));
}
diff --git a/louloulibs/network/dns_handler.hpp b/louloulibs/network/dns_handler.hpp
index e0feb11..d8b55c8 100644
--- a/louloulibs/network/dns_handler.hpp
+++ b/louloulibs/network/dns_handler.hpp
@@ -50,7 +50,7 @@ private:
* call to ares_fds. DNSSocketHandlers are added to it or removed from it
* in the watch_dns_sockets() method
*/
- std::vector<std::unique_ptr<DNSSocketHandler>> socket_handlers;
+ std::vector<DNSSocketHandler> socket_handlers;
ares_channel channel;
};
diff --git a/louloulibs/network/dns_socket_handler.hpp b/louloulibs/network/dns_socket_handler.hpp
index dba2f26..21ae4e1 100644
--- a/louloulibs/network/dns_socket_handler.hpp
+++ b/louloulibs/network/dns_socket_handler.hpp
@@ -17,11 +17,11 @@ class DNSSocketHandler: public SocketHandler
{
public:
explicit DNSSocketHandler(std::shared_ptr<Poller> poller, const socket_t socket);
- ~DNSSocketHandler() = default;
+ ~DNSSocketHandler();
+ DNSSocketHandler(DNSSocketHandler&&) = default;
+ DNSSocketHandler& operator=(DNSSocketHandler&&) = default;
DNSSocketHandler(const DNSSocketHandler&) = delete;
- DNSSocketHandler(DNSSocketHandler&&) = delete;
DNSSocketHandler& operator=(const DNSSocketHandler&) = delete;
- DNSSocketHandler& operator=(DNSSocketHandler&&) = delete;
/**
* Just call dns_process_fd, c-ares will do its work of send()ing or
diff --git a/louloulibs/network/socket_handler.hpp b/louloulibs/network/socket_handler.hpp
index eeb41fe..869ac3b 100644
--- a/louloulibs/network/socket_handler.hpp
+++ b/louloulibs/network/socket_handler.hpp
@@ -15,10 +15,10 @@ public:
socket(socket)
{}
virtual ~SocketHandler() {}
- SocketHandler(const SocketHandler&) = delete;
- SocketHandler(SocketHandler&&) = delete;
+ SocketHandler& operator=(SocketHandler&&) = default;
+ SocketHandler(SocketHandler&&) = default;
SocketHandler& operator=(const SocketHandler&) = delete;
- SocketHandler& operator=(SocketHandler&&) = delete;
+ SocketHandler(const SocketHandler&) = delete;
virtual void on_recv() = 0;
virtual void on_send() = 0;