Changeset e5c0a1 for src/Actions


Ignore:
Timestamp:
Aug 6, 2010, 2:01:13 PM (15 years ago)
Author:
Tillmann Crueger <crueger@…>
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, Candidate_v1.7.0, 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:
822f01
Parents:
2a76b0
Message:

Made the periodentafel return only "const element *" instead of "element * const", to avoid unexpected changes to stored elements

  • Note: returning "type * const" from a function does not make sense, since the pointer has to be copied anyway (calling convention), so the calling function can just do another copy to get a non const version of the pointer
Location:
src/Actions
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/AnalysisAction/PairCorrelationAction.cpp

    r2a76b0 re5c0a1  
    7676  ofstream output;
    7777  ofstream binoutput;
    78   std::vector< element *> elements;
     78  std::vector<const element *> elements;
    7979  string type;
    8080  Vector Point;
  • src/Actions/AnalysisAction/PointCorrelationAction.cpp

    r2a76b0 re5c0a1  
    7777  ofstream output;
    7878  ofstream binoutput;
    79   std::vector< element *> elements;
     79  std::vector<const element *> elements;
    8080  string type;
    8181  Vector Point;
     
    9797  cout << "Point to correlate to is  " << Point << endl;
    9898  CorrelationToPointMap *correlationmap = NULL;
    99   for(std::vector< element *>::iterator iter = elements.begin(); iter != elements.end(); ++iter)
     99  for(std::vector<const element *>::iterator iter = elements.begin(); iter != elements.end(); ++iter)
    100100    cout << "element is " << (*iter)->getSymbol() << endl;
    101101  std::vector<molecule*> molecules = World::getInstance().getSelectedMolecules();
  • src/Actions/AnalysisAction/SurfaceCorrelationAction.cpp

    r2a76b0 re5c0a1  
    7878  ofstream output;
    7979  ofstream binoutput;
    80   std::vector< element *> elements;
     80  std::vector<const element *> elements;
    8181  string type;
    8282  Vector Point;
  • src/Actions/AtomAction/AddAction.cpp

    r2a76b0 re5c0a1  
    5252
    5353Action::state_ptr AtomAddAction::performCall() {
    54   element * elemental = NULL;
     54  const element * elemental = NULL;
    5555  Vector position;
    5656
  • src/Actions/AtomAction/ChangeElementAction.cpp

    r2a76b0 re5c0a1  
    5050Action::state_ptr AtomChangeElementAction::performCall() {
    5151  atom *first = NULL;
    52   element *elemental = NULL;
     52  const element *elemental = NULL;
    5353
    5454  ValueStorage::getInstance().queryCurrentValue(NAME, elemental);
  • src/Actions/MapOfActions.cpp

    r2a76b0 re5c0a1  
    292292
    293293  // value types for the actions
    294   TypeMap["add-atom"] = &typeid(element);
     294  TypeMap["add-atom"] = &typeid(const element);
    295295  TypeMap["bond-file"] = &typeid(std::string);
    296296  TypeMap["bond-table"] = &typeid(std::string);
     
    298298  TypeMap["center-in-box"] = &typeid(BoxValue);
    299299  TypeMap["change-box"] = &typeid(BoxValue);
    300   TypeMap["change-element"] = &typeid(element);
     300  TypeMap["change-element"] = &typeid(const element);
    301301  TypeMap["change-molname"] = &typeid(std::string);
    302302  TypeMap["convex-envelope"] = &typeid(void);
     
    342342  TypeMap["distances"] = &typeid(VectorValue);
    343343  TypeMap["DoRotate"] = &typeid(bool);
    344   TypeMap["element"] = &typeid(element);
    345   TypeMap["elements"] = &typeid(std::vector<element *>);
     344  TypeMap["element"] = &typeid(const element);
     345  TypeMap["elements"] = &typeid(std::vector<const element *>);
    346346  TypeMap["end-step"] = &typeid(int);
    347347  TypeMap["id-mapping"] = &typeid(bool);
     
    380380  TypeEnumMap[&typeid(atom)] = Atom;
    381381  TypeEnumMap[&typeid(std::vector<atom *>)] = ListOfAtoms;
    382   TypeEnumMap[&typeid(element)] = Element;
    383   TypeEnumMap[&typeid(std::vector<element *>)] = ListOfElements;
     382  TypeEnumMap[&typeid(const element)] = Element;
     383  TypeEnumMap[&typeid(std::vector<const element *>)] = ListOfElements;
    384384
    385385  // default values for any action that needs one (always string!)
     
    558558}
    559559
    560 void MapOfActions::queryCurrentValue(const char * name, class element * &_T)  {
     560void MapOfActions::queryCurrentValue(const char * name, const element * &_T)  {
    561561  int Z = -1;
    562   if (typeid( element ) == *TypeMap[name]) {
     562  if (typeid(const element ) == *TypeMap[name]) {
    563563    if (CurrentValue.find(name) == CurrentValue.end())
    564564      throw MissingValueException(__FILE__, __LINE__);
     
    642642}
    643643
    644 void MapOfActions::queryCurrentValue(const char * name, std::vector<element *>&_T)
     644void MapOfActions::queryCurrentValue(const char * name, std::vector<const element *>&_T)
    645645{
    646646  int Z = -1;
    647   element *elemental = NULL;
    648   if (typeid( std::vector<element *> ) == *TypeMap[name]) {
     647  const element *elemental = NULL;
     648  if (typeid( std::vector<const element *> ) == *TypeMap[name]) {
    649649    if (CurrentValue.find(name) == CurrentValue.end())
    650650      throw MissingValueException(__FILE__, __LINE__);
     
    694694}
    695695
    696 void MapOfActions::setCurrentValue(const char * name, class element * &_T)
    697 {
    698   if (typeid( element ) == *TypeMap[name]) {
     696void MapOfActions::setCurrentValue(const char * name, const element * &_T)
     697{
     698  if (typeid(const element ) == *TypeMap[name]) {
    699699    std::ostringstream stream;
    700700    stream << _T->Z;
     
    754754}
    755755
    756 void MapOfActions::setCurrentValue(const char * name, std::vector<element *>&_T)
    757 {
    758   if (typeid( std::vector<element *> ) == *TypeMap[name]) {
     756void MapOfActions::setCurrentValue(const char * name, std::vector<const element *>&_T)
     757{
     758  if (typeid( std::vector<const element *> ) == *TypeMap[name]) {
    759759    std::ostringstream stream;
    760     for (std::vector<element *>::iterator iter = _T.begin(); iter != _T.end(); ++iter) {
     760    for (std::vector<const element *>::iterator iter = _T.begin(); iter != _T.end(); ++iter) {
    761761      stream << (*iter)->Z << " ";
    762762    }
  • src/Actions/MapOfActions.hpp

    r2a76b0 re5c0a1  
    163163
    164164  void queryCurrentValue(const char * name, class atom * &_T);
    165   void queryCurrentValue(const char * name, class element * &_T);
     165  void queryCurrentValue(const char * name, const element * &_T);
    166166  void queryCurrentValue(const char * name, class molecule * &_T);
    167167  void queryCurrentValue(const char * name, class Box &_T);
    168168  void queryCurrentValue(const char * name, class Vector &_T);
    169169  void queryCurrentValue(const char * name, std::vector<atom *>&_T);
    170   void queryCurrentValue(const char * name, std::vector<element *>&_T);
     170  void queryCurrentValue(const char * name, std::vector<const element *>&_T);
    171171  void queryCurrentValue(const char * name, std::vector<molecule *>&_T);
    172172  template<typename T> void queryCurrentValue(const char * name, T &_T)
     
    197197
    198198  void setCurrentValue(const char * name, class atom * &_T);
    199   void setCurrentValue(const char * name, class element * &_T);
     199  void setCurrentValue(const char * name, const element * &_T);
    200200  void setCurrentValue(const char * name, class molecule * &_T);
    201201  void setCurrentValue(const char * name, class Box &_T);
    202202  void setCurrentValue(const char * name, class Vector &_T);
    203203  void setCurrentValue(const char * name, std::vector<atom *>&_T);
    204   void setCurrentValue(const char * name, std::vector<element *>&_T);
     204  void setCurrentValue(const char * name, std::vector<const element *>&_T);
    205205  void setCurrentValue(const char * name, std::vector<molecule *>&_T);
    206206  template<class T> void setCurrentValue(const char * name, T &_T)
Note: See TracChangeset for help on using the changeset viewer.