// // Copyright © 2019 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #include "CommandLineProcessor.hpp" #include #include namespace armnn { namespace gatordmock { bool CommandLineProcessor::ProcessCommandLine(int argc, char *argv[]) { cxxopts::Options options("GatordMock", "Simulate a Gatord server to interact with ArmNN external profiling."); try { options.add_options() ("h,help", "Display help messages") ("f,file", "The path to the file that contains instructions for the mock gatord.", cxxopts::value(m_File)) ("n,namespace", "The Unix domain socket namespace this server will bind to.\n" "This will always be prepended with \\0 to use the abstract namespace", cxxopts::value(m_UdsNamespace)->default_value("gatord_namespace")) ("e,echo", "Echo packets sent and received to stdout. Disabled by default. " "Default value = false.", cxxopts::value(m_Echo)->default_value("false")); } catch (const std::exception& e) { std::cerr << "Fatal internal error: [" << e.what() << "]" << std::endl; return false; } try { auto result = options.parse(argc, argv); if (result.count("help")) { std::cout << options.help() << std::endl; return false; } // Currently the file parameter is mandatory. if (!result.count("file")) { std::cout << "-f/--file parameter is mandatory." << std::endl; return false; } // Sets bool value correctly. if (result.count("echo")) { m_Echo = true; } } catch (const cxxopts::OptionException& e) { std::cerr << e.what() << std::endl; return false; } return true; } } // namespace gatordmock } // namespace armnn