本文整理汇总了C++中Param::parseCommandLine方法的典型用法代码示例。如果您正苦于以下问题:C++ Param::parseCommandLine方法的具体用法?C++ Param::parseCommandLine怎么用?C++ Param::parseCommandLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Param
的用法示例。
在下文中一共展示了Param::parseCommandLine方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, const char** argv)
{
// list of all the valid options
Map<String, String> valid_options, valid_flags, option_lists;
valid_flags["--help"] = "help";
valid_flags["--debug"] = "debug";
valid_options["-ini"] = "ini";
// invalid, but keep for now in order to inform users where to find this functionality now
valid_options["-execute"] = "execute";
valid_options["-out_dir"] = "out_dir";
Param param;
param.parseCommandLine(argc, argv, valid_options, valid_flags, option_lists);
// '--help' given
if (param.exists("help"))
{
print_usage();
return 0;
}
// '-debug' given
if (param.exists("debug"))
{
LOG_INFO << "Debug flag provided. Enabling 'LOG_DEBUG' ..." << std::endl;
Log_debug.insert(cout); // allows to use LOG_DEBUG << "something" << std::endl;
}
// test if unknown options were given
if (param.exists("unknown"))
{
// if TOPPAS is packed as Mac OS X bundle it will get a -psn_.. parameter by default from the OS
// if this is the only unknown option it will be ignored .. maybe this should be solved directly
// in Param.h
if (!(param.getValue("unknown").toString().hasSubstring("-psn") && !param.getValue("unknown").toString().hasSubstring(", ")))
{
LOG_ERROR << "Unknown option(s) '" << param.getValue("unknown").toString() << "' given. Aborting!" << endl;
print_usage(Log_error);
return 1;
}
}
try
{
if (param.exists("execute") || param.exists("out_dir"))
{
LOG_ERROR << "The parameters '-execute' and '-out_dir' are not valid anymore. This functionality has been moved to the ExecutePipeline tool." << endl;
return 1;
}
QApplicationTOPP a(argc, const_cast<char**>(argv));
a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
TOPPASBase* mw = new TOPPASBase();
mw->show();
a.connect(&a, SIGNAL(fileOpen(QString)), mw, SLOT(openToppasFile(QString)));
// Create the splashscreen that is displayed while the application loads (version is drawn dynamically)
QPixmap qpm(":/TOPPAS_Splashscreen.png");
QPainter pt_ver(&qpm);
pt_ver.setFont(QFont("Helvetica [Cronyx]", 15, 2, true));
pt_ver.setPen(QColor(44, 50, 152));
pt_ver.drawText(490, 84, VersionInfo::getVersion().toQString());
QSplashScreen* splash_screen = new QSplashScreen(qpm);
splash_screen->show();
QApplication::processEvents();
StopWatch stop_watch;
stop_watch.start();
if (param.exists("ini"))
{
mw->loadPreferences((String)param.getValue("ini"));
}
if (param.exists("misc"))
{
mw->loadFiles(param.getValue("misc"), splash_screen);
}
else // remember this new window as obsolete once a real workflow is loaded without this window being touched
{ // if this is not desired, simply call newPipeline() without arguments
mw->newPipeline(mw->IDINITIALUNTITLED);
}
// We are about to show the application.
// Proper time to remove the splash screen, if at least 1.5 seconds have passed...
while (stop_watch.getClockTime() < 1.5) /*wait*/
{
}
stop_watch.stop();
splash_screen->close();
delete splash_screen;
#ifdef OPENMS_WINDOWSPLATFORM
FreeConsole(); // get rid of console window at this point (we will not see any console output from this point on)
AttachConsole(-1); // if the parent is a console, reattach to it - so we can see debug output - a normal user will usually not use cmd.exe to start a GUI)
#endif
int result = a.exec();
//.........这里部分代码省略.........
示例2: main
int main(int argc, const char** argv)
{
//list of all the valid options
Map<String, String> valid_options, valid_flags, option_lists;
valid_flags["--help"] = "help";
valid_options["-ini"] = "ini";
Param param;
param.parseCommandLine(argc, argv, valid_options, valid_flags, option_lists);
// '--help' given
if (param.exists("help"))
{
print_usage();
return 0;
}
// test if unknown options were given
if (param.exists("unknown"))
{
// if TOPPView is packed as Mac OS X bundle it will get a -psn_.. parameter by default from the OS
// if this is the only unknown option it will be ignored .. maybe this should be solved directly
// in Param.h
if (!(param.getValue("unknown").toString().hasSubstring("-psn") && !param.getValue("unknown").toString().hasSubstring(", ")))
{
cout << "Unknown option(s) '" << param.getValue("unknown").toString() << "' given. Aborting!" << endl;
print_usage();
return 1;
}
}
try
{
QApplicationTOPP a(argc, const_cast<char**>(argv));
a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
TOPPViewBase* mw = new TOPPViewBase();
a.connect(&a, SIGNAL(fileOpen(QString)), mw, SLOT(loadFile(QString)));
mw->show();
// Create the splashscreen that is displayed while the application loads
QSplashScreen* splash_screen = new QSplashScreen(QPixmap(":/TOPPView_Splashscreen.png"));
splash_screen->show();
splash_screen->showMessage("Loading parameters");
QApplication::processEvents();
StopWatch stop_watch;
stop_watch.start();
if (param.exists("ini"))
{
mw->loadPreferences((String)param.getValue("ini"));
}
//load command line files
if (param.exists("misc"))
{
mw->loadFiles(param.getValue("misc"), splash_screen);
}
// We are about to show the application.
// Proper time to remove the splashscreen, if at least 1.5 seconds have passed...
while (stop_watch.getClockTime() < 1.5) /*wait*/
{
}
stop_watch.stop();
splash_screen->close();
delete splash_screen;
#ifdef OPENMS_WINDOWSPLATFORM
FreeConsole(); // get rid of console window at this point (we will not see any console output from this point on)
AttachConsole(-1); // if the parent is a console, reattach to it - so we can see debug output - a normal user will usually not use cmd.exe to start a GUI)
#endif
int result = a.exec();
delete(mw);
return result;
}
//######################## ERROR HANDLING #################################
catch (Exception::UnableToCreateFile& e)
{
cout << String("Error: Unable to write file (") << e.what() << ")" << endl << "Code location: " << e.getFile() << ":" << e.getLine() << endl;
}
catch (Exception::FileNotFound& e)
{
cout << String("Error: File not found (") << e.what() << ")" << endl << "Code location: " << e.getFile() << ":" << e.getLine() << endl;
}
catch (Exception::FileNotReadable& e)
{
cout << String("Error: File not readable (") << e.what() << ")" << endl << "Code location: " << e.getFile() << ":" << e.getLine() << endl;
}
catch (Exception::FileEmpty& e)
{
cout << String("Error: File empty (") << e.what() << ")" << endl << "Code location: " << e.getFile() << ":" << e.getLine() << endl;
}
catch (Exception::ParseError& e)
{
cout << String("Error: Unable to read file (") << e.what() << ")" << endl << "Code location: " << e.getFile() << ":" << e.getLine() << endl;
}
catch (Exception::InvalidValue& e)
{
//.........这里部分代码省略.........
示例3: main
int main(int argc, const char** argv)
{
#if defined(__APPLE__)
// we do not want to load plugins as this leads to serious problems
// when shipping on mac os x
QApplication::setLibraryPaths(QStringList());
#endif
// ensure correct encoding of paths
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
Map<String, String> option_lists;
Map<String, String> options;
options["-print"] = "print";
Map<String, String> flags;
flags["--help"] = "help";
Param param;
param.parseCommandLine(argc, argv, options, flags, option_lists);
//catch command line errors
if (param.exists("help") //help requested
|| argc > 3 //too many arguments
|| (argc == 3 && !param.exists("print")) //three argument but no -print
|| (param.exists("print") && param.getValue("print") == "") //-print but no file given
)
{
cerr << endl
<< "INIFileEditor -- An editor for OpenMS configuration files." << endl
<< endl
<< "Usage:" << endl
<< " INIFileEditor [options] [file]" << endl
<< endl
<< "Options are:" << endl
<< " --help Shows this help and exits" << endl
<< " -print <file> Prints the content of the file to the command line and exits" << endl
<< endl;
return 0;
}
//print a ini file as text
if (param.exists("print"))
{
Param data;
ParamXMLFile paramFile;
try
{
paramFile.load(param.getValue("print"), data);
for (Param::ParamIterator it = data.begin(); it != data.end(); ++it)
{
cout << it.getName() << " = " << it->value << endl;
}
}
catch (Exception::BaseException& e)
{
LOG_ERROR << "Error while parsing file '" << param.getValue("print") << "'\n";
LOG_ERROR << e << "\n";
}
return 0;
}
//Create window
QApplicationTOPP app(argc, const_cast<char**>(argv));
//set plastique style unless windows / mac style is available
if (QStyleFactory::keys().contains("windowsxp", Qt::CaseInsensitive))
{
app.setStyle("windowsxp");
}
else if (QStyleFactory::keys().contains("macintosh", Qt::CaseInsensitive))
{
app.setStyle("macintosh");
}
else if (QStyleFactory::keys().contains("plastique", Qt::CaseInsensitive))
{
app.setStyle("plastique");
}
INIFileEditorWindow editor_window;
//Open passed file
if (argc == 2)
{
//cout << "OPEN: " << argv[1] << endl;
editor_window.openFile(argv[1]);
}
#ifdef OPENMS_WINDOWSPLATFORM
FreeConsole(); // get rid of console window at this point (we will not see any console output from this point on)
AttachConsole(-1); // if the parent is a console, reattach to it - so we can see debug output - a normal user will usually not use cmd.exe to start a GUI)
#endif
editor_window.show();
return app.exec();
}