diff options
author | Thomas Habets <thomas@habets.se> | 2020-03-22 18:02:31 +0000 |
---|---|---|
committer | Martin Braun <martin@gnuradio.org> | 2020-03-27 08:46:42 -0700 |
commit | 38853cc231adf5ff70051801d19545adbcb1337b (patch) | |
tree | d5127c5a4853259cbed4cfb076257be85b5c2ab5 | |
parent | 94878530c26606b5b1d83d9dfb154e3b5e6e823a (diff) |
blocks/udp_source: Switch to smart pointers for socket
-rw-r--r-- | gr-blocks/lib/udp_source_impl.cc | 5 | ||||
-rw-r--r-- | gr-blocks/lib/udp_source_impl.h | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/gr-blocks/lib/udp_source_impl.cc b/gr-blocks/lib/udp_source_impl.cc index 230ec907b3..fc907b7722 100644 --- a/gr-blocks/lib/udp_source_impl.cc +++ b/gr-blocks/lib/udp_source_impl.cc @@ -19,6 +19,7 @@ #include <errno.h> #include <stdio.h> #include <string.h> +#include <boost/make_unique.hpp> #include <stdexcept> namespace gr { @@ -73,7 +74,7 @@ void udp_source_impl::connect(const std::string& host, int port) d_host, s_port, boost::asio::ip::resolver_query_base::passive); d_endpoint = *resolver.resolve(query); - d_socket = new boost::asio::ip::udp::socket(d_io_service); + d_socket = boost::make_unique<boost::asio::ip::udp::socket>(d_io_service); d_socket->open(d_endpoint.protocol()); boost::asio::socket_base::reuse_address roption(true); @@ -100,7 +101,7 @@ void udp_source_impl::disconnect() d_udp_thread.join(); d_socket->close(); - delete d_socket; + d_socket.reset(); d_connected = false; } diff --git a/gr-blocks/lib/udp_source_impl.h b/gr-blocks/lib/udp_source_impl.h index 418a19b37d..a0e8caa1d9 100644 --- a/gr-blocks/lib/udp_source_impl.h +++ b/gr-blocks/lib/udp_source_impl.h @@ -15,6 +15,7 @@ #include <gnuradio/thread/thread.h> #include <boost/asio.hpp> #include <boost/format.hpp> +#include <memory> namespace gr { namespace blocks { @@ -37,7 +38,7 @@ private: std::string d_host; unsigned short d_port; - boost::asio::ip::udp::socket* d_socket; + std::unique_ptr<boost::asio::ip::udp::socket> d_socket; boost::asio::ip::udp::endpoint d_endpoint; boost::asio::ip::udp::endpoint d_endpoint_rcvd; boost::asio::io_service d_io_service; |