Ignore:
Timestamp:
Sep 19, 2013, 8:23:52 PM (12 years ago)
Author:
Frederik Heber <heber@…>
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:
bad589
Parents:
76096d
git-author:
Frederik Heber <heber@…> (08/23/13 08:18:43)
git-committer:
Frederik Heber <heber@…> (09/19/13 20:23:52)
Message:

Added Action::outputAsCLI() and ActionQueue::outputAsCLI().

  • prints sequence of Actions along with their options.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/Reaction_impl_pre.hpp

    r76096d r46b181  
    126126  );
    127127
     128// prints command line call for this Action for paramtypes with tokens
     129#define outputAsCLI_print(z,n,output) \
     130    output << \
     131    BOOST_PP_IF(n, BOOST_PP_STRINGIZE( ) , BOOST_PP_STRINGIZE() ) \
     132      << "--" << \
     133    BOOST_PP_SEQ_ELEM(n, paramtokens) \
     134      << " \"" << params. \
     135          BOOST_PP_SEQ_ELEM(n, paramreferences) \
     136          .get() \
     137      << "\"";
     138
     139// prints if statement to check two strings (paramtokens[n] vs. TOKEN)
     140#define checkpresenttoken_print(z, n, TOKEN, booltoken) \
     141    if ( std::string(\
     142        BOOST_PP_SEQ_ELEM(n, paramtokens) )\
     143        == getName()) \
     144        booltoken = false;
     145
    128146// prints set/queryCurrentValue (command) for paramreferences and paramtokens
    129147#define value_print(z, n, container, prefix) \
     
    184202        return dialog;
    185203};
     204
     205// =========== output as CLI ===========
     206void REACTION::outputAsCLI(std::ostream &ost) const {
     207  // check whether TOKEN is also an option
     208  // is a bit ugly as preprocessor cannot compare strings
     209  bool status = true;
     210#if defined paramtokens && BOOST_PP_NOT_EQUAL(MAXPARAMTYPES,0)
     211#define BOOST_PP_LOCAL_MACRO(n) checkpresenttoken_print(~, n, TOKEN, status)
     212#define BOOST_PP_LOCAL_LIMITS  (0, MAXPARAMTYPES-1)
     213#include BOOST_PP_LOCAL_ITERATE()
     214#endif
     215  if (status) { ost << "--" << TOKEN; }
     216  // then print option along with each argument if set
     217#if defined paramtypes && defined paramreferences && BOOST_PP_NOT_EQUAL(MAXPARAMTYPES,0)
     218#define BOOST_PP_LOCAL_MACRO(n) outputAsCLI_print(~, n, ost)
     219#define BOOST_PP_LOCAL_LIMITS  (0, MAXPARAMTYPES-1)
     220#include BOOST_PP_LOCAL_ITERATE()
     221#endif
     222}
    186223
    187224// =========== command for calling action directly ===========
Note: See TracChangeset for help on using the changeset viewer.