[neurun] Refine BackendManager ctor (#9058)
author이한종/On-Device Lab(SR)/Engineer/삼성전자 <hanjoung.lee@samsung.com>
Wed, 20 Nov 2019 12:00:12 +0000 (21:00 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Wed, 20 Nov 2019 12:00:12 +0000 (21:00 +0900)
- Use `split` helper function rather than directly parsing
- Use container's `empty()` method rather than checking size is 0

Signed-off-by: Hanjoung Lee <hanjoung.lee@samsung.com>
runtime/neurun/core/src/backend/BackendManager.cc

index 001944f..6cc1deb 100644 (file)
@@ -22,6 +22,7 @@
 #include "backend/IConfig.h"
 #include "util/logging.h"
 #include "util/ConfigSource.h"
+#include "misc/string_helpers.h"
 
 namespace neurun
 {
@@ -102,22 +103,13 @@ void BackendManager::loadBackend(const std::string &backend)
 BackendManager::BackendManager()
 {
   const auto backends = util::getConfigString(util::config::BACKENDS);
-  size_t prev_pos = 0;
-  auto pos = backends.find(";");
-  while (pos != std::string::npos)
+  for (auto &backend_id : nnfw::misc::split(backends, ';'))
   {
-    loadBackend(backends.substr(prev_pos, pos - prev_pos));
-    prev_pos = pos + 1;
-    pos = backends.find(";", prev_pos);
-  }
-  // if backends doesn't terminate with ";"
-  if (prev_pos < backends.size())
-  {
-    loadBackend(backends.substr(prev_pos));
+    loadBackend(backend_id);
   }
 
   // No loaded backend
-  if (_available_backends.size() == 0)
+  if (_available_backends.empty())
   {
     VERBOSE(BackendManager::loadBackend) << "There is no loaded backend\n";
     abort();