MCPcopy Create free account
hub / github.com/cyrusbehr/tensorrt-cpp-api / parseArguments

Function parseArguments

src/cmd_line_parser.h:43–98  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41};
42
43inline bool parseArguments(int argc, char *argv[], CommandLineArguments &arguments) {
44 if (argc == 1) {
45 showHelp(argv);
46 return false;
47 }
48
49 for (int i = 1; i < argc; i++) {
50 std::string argument = argv[i];
51
52 if (argument.substr(0, 2) == "--") {
53 std::string flag = argument.substr(2);
54 std::string nextArgument;
55
56 if (flag == "onnx_model") {
57 if (!tryGetNextArgument(argc, argv, i, nextArgument, flag))
58 return false;
59
60 if (!Util::doesFileExist(nextArgument)) {
61 std::cout << "Error: Unable to find model at path '" << nextArgument << "' for flag '" << flag << "'" << std::endl;
62 return false;
63 }
64
65 arguments.onnxModelPath = nextArgument;
66 }
67
68 else if (flag == "trt_model") {
69 if (!tryGetNextArgument(argc, argv, i, nextArgument, flag))
70 return false;
71
72 if (!Util::doesFileExist(nextArgument)) {
73 std::cout << "Error: Unable to find model at path '" << nextArgument << "' for flag '" << flag << "'" << std::endl;
74 return false;
75 }
76
77 arguments.trtModelPath = nextArgument;
78 }
79
80 else {
81 std::cout << "Error: Unknown flag '" << flag << "'" << std::endl;
82 showHelp(argv);
83 return false;
84 }
85 } else {
86 std::cout << "Error: Unknown argument '" << argument << "'" << std::endl;
87 showHelp(argv);
88 return false;
89 }
90 }
91
92 if (arguments.onnxModelPath.empty() && arguments.trtModelPath.empty()) {
93 std::cout << "Error: Must specify either 'onnx_model' or 'trt_model'" << std::endl;
94 return false;
95 }
96
97 return true;
98}

Callers 1

mainFunction · 0.85

Calls 3

showHelpFunction · 0.85
tryGetNextArgumentFunction · 0.85
doesFileExistFunction · 0.85

Tested by

no test coverage detected