summaryrefslogtreecommitdiff
path: root/python/openvino/runtime/streaming/image_streaming_app/command_line.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'python/openvino/runtime/streaming/image_streaming_app/command_line.cpp')
-rw-r--r--python/openvino/runtime/streaming/image_streaming_app/command_line.cpp72
1 files changed, 72 insertions, 0 deletions
diff --git a/python/openvino/runtime/streaming/image_streaming_app/command_line.cpp b/python/openvino/runtime/streaming/image_streaming_app/command_line.cpp
new file mode 100644
index 0000000..794310b
--- /dev/null
+++ b/python/openvino/runtime/streaming/image_streaming_app/command_line.cpp
@@ -0,0 +1,72 @@
+// Copyright 2021-2023 Intel Corporation.
+//
+// This software and the related documents are Intel copyrighted materials,
+// and your use of them is governed by the express license under which they
+// were provided to you ("License"). Unless the License provides otherwise,
+// you may not use, modify, copy, publish, distribute, disclose or transmit
+// this software or the related documents without Intel's prior written
+// permission.
+//
+// This software and the related documents are provided as is, with no express
+// or implied warranties, other than those that are expressly stated in the
+// License.
+
+#include "command_line.h"
+#include <algorithm>
+
+static void TrimString(std::string& trimString) {
+ trimString.erase(0, trimString.find_first_not_of(" \n\r\t"));
+ trimString.erase(trimString.find_last_not_of(" \n\r\t") + 1);
+}
+
+static void MakeLower(std::string& stringValue) {
+ std::transform(stringValue.begin(), stringValue.end(), stringValue.begin(), ::tolower);
+}
+
+// Program -option=value
+CommandLine::CommandLine(int argumentCount, char* argumentValues[]) {
+ if (argumentCount > 0) _executableName = argumentValues[0];
+
+ for (int i = 1; i < argumentCount; i++) {
+ std::string inputString(argumentValues[i]);
+ std::string nextChar = inputString.substr(0, 1);
+ if ((nextChar == "-") or (nextChar == "/")) {
+ inputString = inputString.substr(1);
+ size_t equals = inputString.find("=");
+ std::string option;
+ std::string value;
+
+ if (equals == std::string::npos) {
+ option = inputString;
+ } else {
+ option = inputString.substr(0, equals);
+ value = inputString.substr(equals + 1);
+ }
+
+ TrimString(option);
+ TrimString(value);
+ MakeLower(option);
+ _optionMap[option] = value;
+ }
+ }
+}
+
+std::string CommandLine::GetOptionValue(const char* optionName) {
+ auto i = _optionMap.find(optionName);
+ if (i != _optionMap.end())
+ return i->second;
+ else
+ return "";
+}
+
+bool CommandLine::HaveOption(const char* optionName) { return (_optionMap.find(optionName) != _optionMap.end()); }
+
+bool CommandLine::GetOption(const char* optionName, std::string& optionValue) {
+ auto i = _optionMap.find(optionName);
+ if (i == _optionMap.end()) return false;
+
+ optionValue = i->second;
+ return true;
+}
+
+size_t CommandLine::NumOptions() { return _optionMap.size(); }