Changeset 03c902


Ignore:
Timestamp:
Aug 11, 2010, 2:04:15 PM (15 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:
31fb1d
Parents:
13e3c3
Message:

Actions may now have optional parameters.

  • an additional parameter in ValueStorage::queryCurrentValue() states whether value is optional or not in which case no assertion is thrown but wrong returned
  • new function MapOfActions::isCurrentValuePresent()
Location:
src/Actions
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/MapOfActions.cpp

    r13e3c3 r03c902  
    614614}
    615615
     616bool MapOfActions::isCurrentValuePresent(const char *name) const
     617{
     618  return (CurrentValue.find(name) != CurrentValue.end());
     619}
     620
    616621void MapOfActions::queryCurrentValue(const char * name, class atom * &_T)
    617622{
  • src/Actions/MapOfActions.hpp

    r13e3c3 r03c902  
    163163  void populateActions();
    164164
     165  bool isCurrentValuePresent(const char *name) const;
    165166  void queryCurrentValue(const char * name, class atom * &_T);
    166167  void queryCurrentValue(const char * name, const element * &_T);
  • src/Actions/ValueStorage.cpp

    r13e3c3 r03c902  
    1616#include "Patterns/Singleton_impl.hpp"
    1717
    18 ValueStorage::ValueStorage() {};
     18ValueStorage::ValueStorage() :
     19  MapOfActions_instance(MapOfActions::getInstance())
     20{};
    1921
    2022ValueStorage::~ValueStorage() {};
  • src/Actions/ValueStorage.hpp

    r13e3c3 r03c902  
    88#ifndef VALUESTORAGE_HPP_
    99#define VALUESTORAGE_HPP_
    10 
    1110
    1211#include "Actions/MapOfActions.hpp"
     
    2221
    2322public:
    24   template <typename T> void queryCurrentValue(const char *name, T &_T) {
    25     MapOfActions::getInstance().queryCurrentValue(name, _T);
    26   }
    27   template <typename T> void setCurrentValue(const char *name, T &_T) {
    28     MapOfActions::getInstance().setCurrentValue(name, _T);
     23  /** Gets a value from the storage
     24   * If the value is not present, an ASSERT is thrown unless optional is set to true.
     25   * \param _T key of value
     26   * \param optional whether this value is optional, i.e. may actually not be in the storage (i.e. may return false in this case).
     27   * \return true - value present, false - value not present (only given when optional set to true)
     28   */
     29  template <typename T> bool queryCurrentValue(const char *name, T &_T, const bool optional = false) {
     30    if (optional) {
     31      if (!MapOfActions_instance.isCurrentValuePresent(name))
     32        return false;
     33    }
     34    MapOfActions_instance.queryCurrentValue(name, _T);
     35    return true;
    2936  }
    3037
     38  /** Sets a value in the storage.
     39   * \param name key of value
     40   * \param _T value
     41   */
     42  template <typename T> void setCurrentValue(const char *name, T &_T) {
     43    MapOfActions_instance.setCurrentValue(name, _T);
     44  }
     45
     46  /** Obtain a descriptive text for a given key.
     47   * \param actionname key
     48   * \return text describing the key's contents
     49   */
    3150  std::string getDescription(std::string actionname);
    3251
     
    3453  ValueStorage();
    3554  ~ValueStorage();
     55
     56  MapOfActions &MapOfActions_instance;
    3657};
    3758
Note: See TracChangeset for help on using the changeset viewer.