Handle error in returning a vector by returning
authorRomain Forlot <romain.forlot@iot.bzh>
Tue, 21 Feb 2017 07:42:46 +0000 (07:42 +0000)
committerRomain Forlot <romain.forlot@iot.bzh>
Tue, 21 Feb 2017 11:00:03 +0000 (11:00 +0000)
an empty vector.

Fix: typo

Change-Id: Ibe859d3e67f6eea96b50e04cd230657be56a18c6
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
src/can-utils.cpp
src/can-utils.hpp

index 7178885..d2ddb1d 100644 (file)
@@ -153,8 +153,8 @@ can_message_t can_bus_dev_t::next_can_message()
        if(! can_message_q_.empty())
        {
                can_message_t can_msg = can_message_q_.front();
-               can_message_q_.pop()
-               return &can_msg;
+               can_message_q_.pop();
+               return can_msg;
        }
        
        has_can_message_ = false;
@@ -210,17 +210,18 @@ void can_bus_t::start_threads()
  * params[std::ifstream& conf_file] conf_file ifstream to the JSON configuration 
  * file located at the rootdir of the binding
  */
-int init_can_dev()
+int can_bus_t::init_can_dev()
 {
        std::vector<std::string> devices_name;
-       int i, t, ret;
+       int i, ret;
+       size_t t;
 
-       devices_name = read_conf(conf_file_);
+       devices_name = read_conf();
 
-       if (devices_name)
+       if (! devices_name.empty())
        {
                t = devices_name.size();
-               i=0
+               i=0;
 
                for(const auto& device : devices_name)
                {
@@ -242,7 +243,7 @@ int init_can_dev()
  * 
  * @return[std:vector<std::string>] return a vector of device name
  */
-std::vector<std::string> read_conf()
+std::vector<std::string> can_bus_t::read_conf()
 {
        std::vector<std::string> ret;
        json_object jo, canbus;
@@ -262,7 +263,7 @@ std::vector<std::string> read_conf()
                if (jo == NULL || !json_object_object_get_ex(&jo, "canbus", &&canbus))
                {
                        ERROR(interface_, "Can't find canbus node in the configuration file. Please review it.");
-                       ret = nullptr;
+                       ret.clear();
                }
                else if (json_object_get_type(canbus) != json_type_array)
                        ret.push_back(json_object_get_string(a));
@@ -273,10 +274,10 @@ std::vector<std::string> read_conf()
                        for (i = 0 ; i < n ; i++)
                        ret.push_back(json_object_get_string(json_object_array_get_idx(a, i)));
                }
-       return ret;
+               return ret;
        }
        ERROR(interface_, "Problem at reading the conf file");
-       return nullptr;
+       return ret.clear();
 }
 
 /**
index ee87790..d1310a6 100644 (file)
@@ -49,13 +49,6 @@ extern "C"
 
 #define CAN_ACTIVE_TIMEOUT_S 30
 
-/**
- * @brief Function representing thread activated by can bus objects
- */
-void can_reader(can_bus_dev_t& can_bus);
-void can_decode_message(can_bus_t& can_bus);
-void can_event_push(can_bus_t& can_bus);
-
 /**
  * @brief The type signature for a CAN signal decoder.
  *
@@ -399,3 +392,10 @@ bool isBusActive(can_bus_dev_t* bus);
  * busCount - the length of the buses array.
  */
 void logBusStatistics(can_bus_dev_t* buses, const int busCount);
+
+/**
+ * @brief Function representing thread activated by can bus objects
+ */
+void can_reader(can_bus_dev_t& can_bus);
+void can_decode_message(can_bus_t& can_bus);
+void can_event_push(can_bus_t& can_bus);
\ No newline at end of file