Fix: constructor and include file missing.
authorRomain Forlot <romain.forlot@iot.bzh>
Wed, 3 May 2017 16:23:20 +0000 (18:23 +0200)
committerRomain Forlot <romain.forlot@iot.bzh>
Wed, 3 May 2017 16:23:20 +0000 (18:23 +0200)
Copy constructors are allowed since socket will never be closed during binding
runs.

Change-Id: Ie33e4b7e885d45e1ffeb980400df00ae2a97e45d
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 cab9906..116b4c5 100644 (file)
@@ -17,6 +17,9 @@
 
 #include "socketcan-bcm.hpp"
 
+#include <net/if.h>
+#include <sys/ioctl.h>
+
 namespace utils
 {
        /// @brief Construct a default, invalid, socket.
@@ -24,18 +27,15 @@ namespace utils
                : socketcan_t{}
        {}
 
-       /// @brief Construct a socket by moving an existing one.
-       socketcan_bcm_t::socketcan_bcm_t(socketcan_bcm_t&& s)
-               : socket_{s.socket_}
-       {
-               s.socket_ = INVALID_SOCKET;
-       }
-
        /// @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)
        {
-               if(socket_ != INVALID_SOCKET)
-                       ::close(socket_);
+               return socket_ != INVALID_SOCKET ? ::connect(socket_, addr, len) : 0;
        }
 
        /// @brief Open a raw socket CAN.
@@ -47,7 +47,7 @@ namespace utils
                close();
                
                struct ifreq ifr;
-               socket_ = open(PF_CAN, SOCK_DGRAM, CAN_BCM);
+               socket_ = socketcan_t::open(PF_CAN, SOCK_DGRAM, CAN_BCM);
 
                // Attempts to open a socket to CAN bus
                ::strcpy(ifr.ifr_name, device_name.c_str());
index 63c728c..c0a1bb2 100644 (file)
@@ -38,7 +38,7 @@ namespace utils
        {
        public:
                socketcan_bcm_t();
-               socketcan_bcm_t(const socketcan_bcm_t&) = delete;
+               socketcan_bcm_t(const socketcan_bcm_t&);
                socketcan_bcm_t(socketcan_bcm_t&&);
                virtual ~socketcan_bcm_t();
 
index 2c2b54e..23f8332 100644 (file)
 
 #include "socketcan-raw.hpp"
 
+#include <net/if.h>
+#include <sys/ioctl.h>
+
 namespace utils
 {
        /// @brief Construct a default, invalid, socket.
        socketcan_raw_t::socketcan_raw_t()
-               : socketcan_t{}, socket_{INVALID_SOCKET}
+               : socketcan_t{}
        {}
 
-       /// @brief Construct a socket by moving an existing one.
-       socketcan_raw_t::socketcan_raw_t(socketcan_raw_t&& s)
-               : socket_{s.socket_}
-       {
-               s.socket_ = INVALID_SOCKET;
-       }
-
        /// @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)
        {
-               if(socket_ != INVALID_SOCKET)
-                       ::close(socket_);
+               return socket_ != INVALID_SOCKET ? ::bind(socket_, addr, len) : 0;
        }
 
        /// @brief Open a raw socket CAN.
@@ -47,7 +47,7 @@ namespace utils
                close();
                
                struct ifreq ifr;
-               socket_ = open(PF_CAN, SOCK_RAW, CAN_RAW);
+               socket_ = socketcan_t::open(PF_CAN, SOCK_RAW, CAN_RAW);
 
                // Attempts to open a socket to CAN bus
                ::strcpy(ifr.ifr_name, device_name.c_str());
index 3c91029..71573da 100644 (file)
@@ -24,7 +24,7 @@ namespace utils
        {
        public:
                socketcan_raw_t();
-               socketcan_raw_t(const socketcan_raw_t&) = delete;
+               socketcan_raw_t(const socketcan_raw_t&);
                socketcan_raw_t(socketcan_raw_t&&);
                virtual ~socketcan_raw_t();
 
index 5a711c3..4d22654 100644 (file)
@@ -83,20 +83,6 @@ namespace utils
                return socket_ != INVALID_SOCKET ? ::setsockopt(socket_, level, optname, optval, optlen) : 0;
        }
 
-       /// @brief Bind the socket.
-       /// @return 0 if success.
-       int socketcan_t::bind(const struct sockaddr* addr, socklen_t len)
-       {
-               return socket_ != INVALID_SOCKET ? ::bind(socket_, addr, len) : 0;
-       }
-
-       /// @brief Connect the socket.
-       /// @return 0 if success.
-       int socketcan_t::connect(const struct sockaddr* addr, socklen_t len)
-       {
-               return socket_ != INVALID_SOCKET ? ::connect(socket_, addr, len) : 0;
-       }
-
        /// @brief Get the file descriptor.
        /// @return The socket's file descriptor
        int socketcan_t::socket() const
index 391fb46..3c02a4f 100644 (file)
@@ -34,7 +34,7 @@ namespace utils
        {
        public:
                socketcan_t();
-               socketcan_t(const socketcan_t&) = delete;
+               socketcan_t(const socketcan_t&);
                socketcan_t(socketcan_t&&);
                virtual ~socketcan_t();