Changeset 7e6b00
- Timestamp:
- Jun 10, 2010, 4:13:23 PM (15 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
- Children:
- 61745cc
- Parents:
- 623e89
- Location:
- src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/MapOfActions.cpp
r623e89 r7e6b00 545 545 } 546 546 547 /** Returns the inverse to MapOfActions::ShortFormMap, i.e. lookup actionname for its short form. 548 * \return map from short form of action to name of action 549 */ 550 map <std::string, std::string> MapOfActions::getShortFormToActionMap() 551 { 552 map <std::string, std::string> result; 553 554 for (map<std::string, std::string>::iterator iter = ShortFormMap.begin(); iter != ShortFormMap.end(); ++iter) 555 result[iter->second] = iter->first; 556 557 return result; 558 } 547 559 548 560 -
src/Actions/MapOfActions.hpp
r623e89 r7e6b00 30 30 std::string getKeyAndShortForm(string actionname); 31 31 std::string getShortForm(string actionname); 32 map <std::string, std::string> getShortFormToActionMap(); 32 33 33 34 void AddOptionsToParser(); -
src/CommandLineParser.cpp
r623e89 r7e6b00 9 9 #include <fstream> 10 10 #include <iostream> 11 #include <map> 11 12 12 13 #include "Patterns/Singleton_impl.hpp" 13 14 #include "CommandLineParser.hpp" 15 #include "log.hpp" 16 #include "verbose.hpp" 14 17 15 18 using namespace std; … … 45 48 } 46 49 50 /** Scan the argument list for -a or --arguments and store their order for later use. 51 * \param &ShortFormToActionMap e.g. gives "help" for "h" 52 */ 53 void CommandLineParser::scanforSequenceOfArguments(map <std::string, std::string> &ShortFormToActionMap) 54 { 55 // go through all arguments 56 for (int i=1;i<argc;i++) { 57 (cout << Verbose(1) << "Checking on " << argv[i] << endl); 58 // check whether they begin with - or -- and check that next letter is not numeric, if so insert 59 if (argv[i][0] == '-') { 60 (cout << Verbose(1) << "Possible argument: " << argv[i] << endl); 61 if (argv[i][1] == '-') { 62 (cout << Verbose(1) << "Putting " << argv[i] << " into the sequence." << endl); 63 SequenceOfActions.push_back(&(argv[i][2])); 64 } else if (((argv[i][1] < '0') || (argv[i][1] > '9')) && ((argv[i][1] != '.'))) { 65 map <std::string, std::string>::iterator iter = ShortFormToActionMap.find(&(argv[i][1])); 66 if (iter != ShortFormToActionMap.end()) { 67 (cout << Verbose(1) << "Putting " << iter->second << " for " << iter->first << " into the sequence." << endl); 68 SequenceOfActions.push_back(iter->second); 69 } 70 } 71 } 72 } 73 } 47 74 48 75 … … 72 99 * \param **_argv argument array from main() 73 100 */ 74 void CommandLineParser::Run(int _argc, char **_argv )101 void CommandLineParser::Run(int _argc, char **_argv, map <std::string, std::string> &ShortFormToActionMap) 75 102 { 76 103 setOptions(_argc,_argv); 77 104 Parse(); 105 scanforSequenceOfArguments(ShortFormToActionMap); 78 106 } 79 107 -
src/CommandLineParser.hpp
r623e89 r7e6b00 15 15 #include "Patterns/Singleton.hpp" 16 16 17 #include <list> 17 18 18 19 class CommandLineParser : public Singleton<CommandLineParser> { … … 21 22 22 23 // Parses the command line arguments in CommandLineParser::**argv with currently known options. 23 void Run(int _argc, char **_argv );24 void Run(int _argc, char **_argv, std::map <std::string, std::string> &ShortFormToActionMap); 24 25 25 26 // Checks whether there have been any commands on the command line. … … 40 41 po::variables_map vm; 41 42 43 // private sequence of actions as they appeared on the command line 44 std::list<std::string> SequenceOfActions; 45 42 46 private: 43 47 // private constructor and destructor … … 57 61 void Parse(); 58 62 63 // as boost's program_options does not care about of order of appearance but we do for actions, 64 // we have to have a list and a function to obtain it. 65 void scanforSequenceOfArguments(std::map <std::string, std::string> &ShortFormToActionMap); 66 59 67 // argument counter and array passed on from main() 60 68 int argc; -
src/UIElements/CommandLineUI/CommandLineWindow.cpp
r623e89 r7e6b00 79 79 void CommandLineWindow::display() { 80 80 // go through all possible actions 81 for ( po::variables_map::iterator CommandRunner = CommandLineParser::getInstance().vm.begin(); CommandRunner != CommandLineParser::getInstance().vm.end(); ++CommandRunner) {82 cout << "Checking presence of " << CommandRunner->first<< endl;83 if (ActionRegistry::getInstance().isActionByNamePresent( CommandRunner->first))84 ActionRegistry::getInstance().getActionByName( CommandRunner->first)->call();81 for (std::list<std::string>::iterator CommandRunner = CommandLineParser::getInstance().SequenceOfActions.begin(); CommandRunner != CommandLineParser::getInstance().SequenceOfActions.end(); ++CommandRunner) { 82 cout << "Checking presence of " << *CommandRunner << endl; 83 if (ActionRegistry::getInstance().isActionByNamePresent(*CommandRunner)) 84 ActionRegistry::getInstance().getActionByName(*CommandRunner)->call(); 85 85 } 86 86 } -
src/builder.cpp
r623e89 r7e6b00 2315 2315 // handle remaining arguments by CommandLineParser 2316 2316 MapOfActions::getInstance().AddOptionsToParser(); 2317 CommandLineParser::getInstance().Run(ArgcSize,Arguments); 2317 map <std::string, std::string> ShortFormToActionMap = MapOfActions::getInstance().getShortFormToActionMap(); 2318 CommandLineParser::getInstance().Run(ArgcSize,Arguments, ShortFormToActionMap); 2318 2319 if (!CommandLineParser::getInstance().isEmpty()) { 2319 2320 DoLog(0) && (Log() << Verbose(0) << "Setting UI to CommandLine." << endl);
Note:
See TracChangeset
for help on using the changeset viewer.