bool commandline_opts (int argc, char** argv) { #ifdef HAVE_MPI //Grid& gd = Grid::Instance(); //if (gd.rk == 0) { #endif cout << endl << "codeare " << VERSION ; #ifdef GIT_SHA1 cout << " [" << GIT_SHA1 << "]"; #endif cout << endl; #ifdef HAVE_MPI // } #endif std::stringstream intrinsics; #ifdef __MMX__ intrinsics << "MMX "; #endif #ifdef __SSE__ intrinsics << "SSE "; #endif #ifdef __SSE2__ intrinsics << "SSE2 "; #endif #ifdef __SSSE3__ intrinsics << "SSSE3 "; #endif #ifdef __AVX__ intrinsics << "AVX "; #endif #ifdef __AVX2__ intrinsics << "AVX2 "; #endif #ifdef __FMA__ intrinsics << "FMA "; #endif #ifdef __FMA4__ intrinsics << "FMA4 "; #endif Options opt; opt.addUsage ("Copyright (C) 2010-2014"); opt.addUsage ("Kaveh Vahedipour<*****@*****.**>"); opt.addUsage ("NYU School of Medicine"); opt.addUsage (intrinsics.str().c_str()); opt.addUsage ("Usage:"); opt.addUsage ("codeare -c <configuration_file> -b <base_dir> [OPTIONS]"); opt.addUsage (""); opt.addUsage (" -n, --name Remote service name (optional)"); opt.addUsage (" -d, --debug Debug level 0-40 (default: 0)"); opt.addUsage (" -b, --base Base directory of files"); opt.addUsage (" (default: current directory, i.e. '.'"); opt.addUsage (" -c, --config Configuration XML file name (default: codeare.xml"); opt.addUsage (" -i, --infile Binary data input file name"); opt.addUsage (" (optional: May be assigned in configuration)"); opt.addUsage (" -o, --outfile Binary data output file name"); opt.addUsage (" (optional: May be assigned in configuration)"); opt.addUsage (""); opt.addUsage (" -h, --help Print this help screen"); opt.addUsage (""); opt.setFlag ("help" , 'h'); opt.setOption ("name" , 'n'); opt.setOption ("debug" , 'd'); opt.setOption ("config", 'c'); opt.setOption ("base" , 'b'); opt.setOption ("infile", 'i'); opt.processCommandArgs(argc, argv); // Help screen if (/* !(opt.hasOptions()) ||*/ opt.getFlag("help")) { opt.printUsage(); return false; } // Debug level char* tmp = opt.getValue("debug"); debug = (tmp && atoi(tmp) >= 0 && atoi(tmp) <= 40) ? tmp : ZERO; // Remote service's CORBA name default "" if specified, remote access is assumed tmp = opt.getValue("name"); name = (tmp && strcmp(tmp,EMPTY)) ? tmp : 0; // Base directory for data tmp = opt.getValue("base"); base_dir = (tmp && strcmp(tmp,EMPTY)) ? tmp : CURRENT; // Configuration file, default: config.xml tmp = opt.getValue("config"); config = (tmp && strcmp(tmp,EMPTY)) ? tmp : (char*) "config.xml"; // Input file specified in command line infile = opt.getValue("infile"); config_file_uri = base_dir; config_file_uri += "/"; config_file_uri += std::string(config); return true; }
bool init (int argc, char** argv) { #ifdef HAVE_MPI //Grid& gd = Grid::Instance(); #endif // if (gd.rk == 0) { cout << endl; #ifdef REMOTE cout << "codeare remote client " << VERSION << endl; #else cout << "codeare local client " << VERSION << endl; #endif #ifdef GIT_COMMIT cout << "Commit " << GIT_COMMIT << " [" << GIT_COMMIT_DATE << "]" << endl; #endif // } Options *opt = new Options(); opt->addUsage ("Copyright (C) 2010-2012"); opt->addUsage ("Kaveh Vahedipour<*****@*****.**>"); opt->addUsage ("Juelich Research Centre"); opt->addUsage ("Medical Imaging Physics"); opt->addUsage (""); opt->addUsage ("Usage:"); #ifdef REMOTE opt->addUsage ("rclient -n <servicename> -t <test> [OPTIONS]"); #else opt->addUsage ("lclient -t <test> [OPTIONS]"); #endif opt->addUsage (""); #ifdef REMOTE opt->addUsage (" -n, --name Remote service name (for example: ReconService)"); #endif opt->addUsage (" -t, --test Test case (default: DummyRecon. Just connectivity test)"); opt->addUsage (" -v, --verbose Debug level 0-40 (default: 0)"); opt->addUsage (" -b, --base Base directory of approved files."); opt->addUsage (" -c, --config Configuration XML (NuFFT, CGSENSE)."); opt->addUsage (" -d, --data Incoming binary data in HDF5 format."); opt->addUsage (" -p, --pulses Pulses (Only excitation)."); opt->addUsage (""); opt->addUsage (" -h, --help Print this help screen"); opt->addUsage (""); opt->setFlag ("help" ,'h'); opt->setFlag ("pulses" ,'p'); #ifdef REMOTE opt->setOption ("name" , 'n'); #endif opt->setOption ("test" , 't'); opt->setOption ("verbose", 'v'); opt->setOption ("config" , 'c'); opt->setOption ("data" , 'd'); opt->setOption ("base" , 'b'); opt->processCommandArgs(argc, argv); if ( !(opt->hasOptions()) || opt->getFlag("help")) { opt->printUsage(); delete opt; return false; } verbose = (opt->getValue("verbose" ) && atoi(opt->getValue("verbose")) >= 0 && atoi(opt->getValue("verbose")) <= 40) ? opt->getValue("verbose") : (char*) "0"; name = (opt->getValue("name") && opt->getValue("name") != (char*)"") ? opt->getValue( "name") : (char*) "codeare" ; base = (opt->getValue("base") && opt->getValue("base") != (char*)"") ? opt->getValue( "base") : (char*) ""; data = (opt->getValue("data") && opt->getValue("data") != (char*)"") ? opt->getValue( "data") : (char*) ""; config = (opt->getValue("config") && opt->getValue("config") != (char*)"") ? opt->getValue( "config") : (char*) ""; test = (opt->getValue("test" ) && opt->getValue("test" ) != (char*)"") ? opt->getValue( "test") : (char*) "DummyRecon"; delete opt; return true; }