Don't destroy socket by default as they will always be open.
authorRomain Forlot <romain.forlot@iot.bzh>
Fri, 5 May 2017 16:39:13 +0000 (18:39 +0200)
committerRomain Forlot <romain.forlot@iot.bzh>
Fri, 5 May 2017 16:42:30 +0000 (18:42 +0200)
Now derivated class use constructor from base class and we don't destroy
socket when a socket object is over since it may be copied before. So closing
them is in charge of dev, well me...

Change-Id: I0440119017a3e56bb83d0194a6908dc3e2b8f745
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
CAN-binder/low-can-binding/utils/socketcan-bcm.cpp
CAN-binder/low-can-binding/utils/socketcan-bcm.hpp
CAN-binder/low-can-binding/utils/socketcan-raw.cpp
CAN-binder/low-can-binding/utils/socketcan-raw.hpp
CAN-binder/low-can-binding/utils/socketcan.cpp
CAN-binder/low-can-binding/utils/socketcan.hpp

index d115f00..835f724 100644 (file)
 
 namespace utils
 {
-       /// @brief Construct a default, invalid, socket.
-       socketcan_bcm_t::socketcan_bcm_t()
-               : socketcan_t{}
-       {}
-
-       /// @brief Destruct the socket.
-       socketcan_bcm_t::~socketcan_bcm_t()
-       {}
-
        /// @brief Connect the socket.
        /// @return 0 if success.
        int socketcan_bcm_t::connect(const struct sockaddr* addr, socklen_t len)
index c0a1bb2..deb30c6 100644 (file)
@@ -37,10 +37,7 @@ namespace utils
        class socketcan_bcm_t : public socketcan_t
        {
        public:
-               socketcan_bcm_t();
-               socketcan_bcm_t(const socketcan_bcm_t&);
-               socketcan_bcm_t(socketcan_bcm_t&&);
-               virtual ~socketcan_bcm_t();
+               using socketcan_t::socketcan_t;
 
                virtual int open(std::string device_name);
 
index 23f8332..589f6ab 100644 (file)
 
 namespace utils
 {
-       /// @brief Construct a default, invalid, socket.
-       socketcan_raw_t::socketcan_raw_t()
-               : socketcan_t{}
-       {}
-
-       /// @brief Destruct the socket.
-       socketcan_raw_t::~socketcan_raw_t()
-       {}
-
        /// @brief Bind the socket.
        /// @return 0 if success.
        int socketcan_raw_t::bind(const struct sockaddr* addr, socklen_t len)
index 71573da..e18ff1f 100644 (file)
@@ -23,11 +23,7 @@ namespace utils
        class socketcan_raw_t : public socketcan_t
        {
        public:
-               socketcan_raw_t();
-               socketcan_raw_t(const socketcan_raw_t&);
-               socketcan_raw_t(socketcan_raw_t&&);
-               virtual ~socketcan_raw_t();
-
+               using socketcan_t::socketcan_t;
                virtual int open(std::string device_name);
 
        private:
index 4d22654..f52aaa6 100644 (file)
@@ -31,6 +31,11 @@ namespace utils
                : socket_{INVALID_SOCKET}
        {}
 
+       /// @brief Construct a socket by copying an existing one.
+       socketcan_t::socketcan_t(const socketcan_t& s)
+               : socket_{s.socket_}
+       {}
+
        /// @brief Construct a socket by moving an existing one.
        socketcan_t::socketcan_t(socketcan_t&& s)
                : socket_{s.socket_}
@@ -38,12 +43,8 @@ namespace utils
                s.socket_ = INVALID_SOCKET;
        }
 
-       /// @brief Destruct the socket.
        socketcan_t::~socketcan_t()
-       {
-               if(socket_ != INVALID_SOCKET)
-                       ::close(socket_);
-       }
+       {}
 
        const struct sockaddr_can& socketcan_t::get_tx_address() const
        {
index e911664..76b5121 100644 (file)
@@ -34,7 +34,7 @@ namespace utils
        {
        public:
                socketcan_t();
-               socketcan_t(const socketcan_t&);
+               socketcan_t(const socketcan_t& s);
                socketcan_t(socketcan_t&&);
                virtual ~socketcan_t();