Changeset 628577 for src/Actions


Ignore:
Timestamp:
Sep 19, 2013, 8:23:51 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, 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:
1d3563
Parents:
732507
git-author:
Frederik Heber <heber@…> (08/16/13 10:32:17)
git-committer:
Frederik Heber <heber@…> (09/19/13 20:23:51)
Message:

Introduced ActionQueue which contains internal ActionRegistry.

Location:
src/Actions
Files:
2 added
17 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/Action.cpp

    r732507 r628577  
    4141#include "Actions/Action.hpp"
    4242#include "Actions/ActionExceptions.hpp"
    43 #include "Actions/ActionRegistry.hpp"
     43#include "Actions/ActionQueue.hpp"
    4444#include "Actions/ActionHistory.hpp"
    4545#include "Actions/OptionRegistry.hpp"
     
    8080  // register with ActionRegistry
    8181  if(_doRegister){
    82     ActionRegistry::getInstance().registerInstance(this);
     82    ActionQueue::getInstance().getActionRegistry().registerInstance(this);
    8383  }
    8484
     
    128128{
    129129  // unregister us if still registered
    130   if(ActionRegistry::getInstance().isActionPresentByName(getName()))
    131     if (ActionRegistry::getInstance().getActionByName(getName()) == this)
    132       ActionRegistry::getInstance().unregisterInstance(this);
     130  if(ActionQueue::getInstance().getActionRegistry().isActionPresentByName(getName()))
     131    if (ActionQueue::getInstance().getActionRegistry().getActionByName(getName()) == this)
     132      ActionQueue::getInstance().getActionRegistry().unregisterInstance(this);
    133133
    134134  for (ActionTrait::options_const_iterator optioniter = Traits.getBeginIter();
  • src/Actions/ActionRegistry.cpp

    r732507 r628577  
    3939
    4040#include "Actions/ActionRegistry.hpp"
    41 #include "CodePatterns/Singleton_impl.hpp"
    4241#include "CodePatterns/Registry_impl.hpp"
    4342
     
    164163
    165164
    166 CONSTRUCT_SINGLETON(ActionRegistry)
    167165CONSTRUCT_REGISTRY(Action)
  • src/Actions/ActionRegistry.hpp

    r732507 r628577  
    2020
    2121#include "CodePatterns/Registry.hpp"
    22 #include "CodePatterns/Singleton.hpp"
    2322#include "Actions/Action.hpp"
    2423
     
    2827 *
    2928 * The Action registry is a storage for any Action instance to retrieved by name.
    30  * It is a singleton and can be called from anywhere.
     29 * ActionRegistry belongs to the ActionQueue.
    3130 *
    3231 * ActionRegistry::fillRegistry() is the essential function, called in the cstor,
     
    3837 *
    3938 */
    40 class ActionRegistry : public Singleton<ActionRegistry>, public Registry<Action>
     39class ActionRegistry : public Registry<Action>
    4140{
    42   friend class Singleton<ActionRegistry>;
    4341  //friend class Registry<Action>;
    4442
     
    5553  { return completely_instatiated; }
    5654
    57 private:
    5855  ActionRegistry();
    5956  ~ActionRegistry();
    6057
     58private:
    6159  void fillRegistry();
    6260
  • src/Actions/Action_impl_pre.hpp

    r732507 r628577  
    5050#include <boost/preprocessor/seq/transform.hpp>
    5151
     52#include "Actions/ActionQueue.hpp"
    5253#include "Parameters/Parameter.hpp"
    5354
     
    289290)
    290291{
    291   ACTION *ToCall = dynamic_cast<ACTION*>(ActionRegistry::getInstance().getActionByName( TOKEN )); //->clone(params);
     292  ACTION *ToCall = dynamic_cast<ACTION*>(ActionQueue::getInstance().getActionRegistry().getActionByName( TOKEN )); //->clone(params);
    292293  //ACTION::PARAMS params;
    293294#if defined paramreferences && BOOST_PP_NOT_EQUAL(MAXPARAMTYPES,0)
     
    306307#endif
    307308        ) {
    308   ACTION *ToCall = dynamic_cast<ACTION*>(ActionRegistry::getInstance().getActionByName( TOKEN )); //->clone(params);
     309  ACTION *ToCall = dynamic_cast<ACTION*>(ActionQueue::getInstance().getActionRegistry().getActionByName( TOKEN )); //->clone(params);
    309310  //ACTION::PARAMS params;
    310311#if defined paramtypes && defined paramtypes && BOOST_PP_NOT_EQUAL(MAXPARAMTYPES,0)
  • src/Actions/CommandAction/HelpAction.cpp

    r732507 r628577  
    3838#include <string>
    3939
    40 #include "Actions/ActionRegistry.hpp"
     40#include "Actions/ActionQueue.hpp"
    4141#include "Actions/ActionTrait.hpp"
    4242#include "Actions/OptionRegistry.hpp"
     
    7878  std::cout << std::endl;
    7979  // print list of actions or its options
     80  ActionRegistry &AR = ActionQueue::getInstance().getActionRegistry();
    8081  if (params.actionname.get() == std::string("none")) {
    8182    // print list of all Actions
    8283    std::cout << "Here is a list of all available Actions:" << std::endl;
    83     for(ActionRegistry::const_iterator iter = ActionRegistry::getInstance().getBeginIter();
    84         iter != ActionRegistry::getInstance().getEndIter();
     84    for(ActionRegistry::const_iterator iter = AR.getBeginIter();
     85        iter != AR.getEndIter();
    8586        ++iter) {
    8687      const Action *instance = iter->second;
     
    9091  } else {
    9192    // retrieve command from Registry and print its help
    92     if (ActionRegistry::getInstance().isActionPresentByName(params.actionname.get())) {
    93       const Action *instance = ActionRegistry::getInstance().getActionByName(params.actionname.get());
     93    if (AR.isActionPresentByName(params.actionname.get())) {
     94      const Action *instance = AR.getActionByName(params.actionname.get());
    9495      // else give description of Action and its option value if present
    9596      std::cout << instance->help();
  • src/Actions/FragmentationAction/MolecularDynamicsAction.cpp

    r732507 r628577  
    4141#include "Actions/FragmentationAction/MolecularDynamicsAction.hpp"
    4242#include "Actions/MoleculeAction/VerletIntegrationAction.hpp"
    43 #include "Actions/ActionRegistry.hpp"
     43#include "Actions/ActionQueue.hpp"
    4444#include "Actions/ActionSequence.hpp"
    4545
     
    7171Action::state_ptr FragmentationMolecularDynamicsAction::performCall(){
    7272  // now we can truely prepare
    73   ActionRegistry &AR = ActionRegistry::getInstance();
     73  ActionRegistry &AR = ActionQueue::getInstance().getActionRegistry();
    7474  // perform a verlet-integration first, if there are already forces or velocities
    7575  // present. If not, we still copy the position cleanly into a new step where then
  • src/Actions/GraphAction/SubgraphDissectionAction.cpp

    r732507 r628577  
    4242#include "Actions/GraphAction/UpdateMoleculesAction.hpp"
    4343#include "Actions/GraphAction/SubgraphDissectionAction.hpp"
    44 #include "Actions/ActionRegistry.hpp"
     44#include "Actions/ActionQueue.hpp"
    4545
    4646#include "Descriptors/AtomDescriptor.hpp"
     
    151151)
    152152{
    153   ACTION *ToCall = dynamic_cast<ACTION*>(ActionRegistry::getInstance().getActionByName( TOKEN )); //->clone(params);
     153  ACTION *ToCall = dynamic_cast<ACTION*>(ActionQueue::getInstance().getActionRegistry().getActionByName( TOKEN )); //->clone(params);
    154154  //ACTION::PARAMS params;
    155155#if defined paramreferences && BOOST_PP_NOT_EQUAL(MAXPARAMTYPES,0)
     
    168168#endif
    169169  ) {
    170   ACTION *ToCall = dynamic_cast<ACTION*>(ActionRegistry::getInstance().getActionByName( TOKEN )); //->clone(params);
     170  ACTION *ToCall = dynamic_cast<ACTION*>(ActionQueue::getInstance().getActionRegistry().getActionByName( TOKEN )); //->clone(params);
    171171  //ACTION::PARAMS params;
    172172#if defined paramtypes && defined paramtypes && BOOST_PP_NOT_EQUAL(MAXPARAMTYPES,0)
  • src/Actions/Makefile.am

    r732507 r628577  
    55  Actions/Action.cpp \
    66  Actions/ActionHistory.cpp \
     7  Actions/ActionQueue.cpp \
    78  Actions/ActionRegistry.cpp \
    89  Actions/ActionSequence.cpp \
     
    2526  Actions/Action_impl_undef.hpp \
    2627  Actions/ActionHistory.hpp \
     28  Actions/ActionQueue.hpp \
    2729  Actions/ActionRegistry.hpp \
    2830  Actions/ActionSequence.hpp \
  • src/Actions/MakroAction_impl_pre.hpp

    r732507 r628577  
    5050#include <boost/preprocessor/seq/transform.hpp>
    5151
     52#include "Actions/ActionQueue.hpp"
    5253#include "Parameters/Parameter.hpp"
    5354
     
    289290)
    290291{
    291   ACTION *ToCall = dynamic_cast<ACTION*>(ActionRegistry::getInstance().getActionByName( TOKEN )); //->clone(params);
     292  ACTION *ToCall = dynamic_cast<ACTION*>(ActionQueue::getInstance().getActionRegistry().getActionByName( TOKEN )); //->clone(params);
    292293  //ACTION::PARAMS params;
    293294#if defined paramreferences && BOOST_PP_NOT_EQUAL(MAXPARAMTYPES,0)
     
    306307#endif
    307308        ) {
    308   ACTION *ToCall = dynamic_cast<ACTION*>(ActionRegistry::getInstance().getActionByName( TOKEN )); //->clone(params);
     309  ACTION *ToCall = dynamic_cast<ACTION*>(ActionQueue::getInstance().getActionRegistry().getActionByName( TOKEN )); //->clone(params);
    309310  //ACTION::PARAMS params;
    310311#if defined paramtypes && defined paramtypes && BOOST_PP_NOT_EQUAL(MAXPARAMTYPES,0)
  • src/Actions/OptionRegistry.cpp

    r732507 r628577  
    3838
    3939#include "Actions/Action.hpp"
    40 #include "Actions/ActionRegistry.hpp"
     40#include "Actions/ActionQueue.hpp"
    4141#include "Actions/ActionTrait.hpp"
    4242#include "Actions/OptionRegistry.hpp"
     
    7171//void OptionRegistry::Init()
    7272//{
    73 //  ActionRegistry &AR = ActionRegistry::getInstance();
     73//  ActionRegistry &AR = ActionQueue::getInstance().getActionRegistry();
    7474//  for (ActionRegistry::const_iterator actioniter = AR.getBeginIter();
    7575//      actioniter != AR.getEndIter();
     
    9898void OptionRegistry::ConsistencyCheck()
    9999{
    100   ActionRegistry &AR = ActionRegistry::getInstance();
     100  ActionRegistry &AR = ActionQueue::getInstance().getActionRegistry();
    101101  for (ActionRegistry::const_iterator actioniter = AR.getBeginIter();
    102102      actioniter != AR.getEndIter();
  • src/Actions/Reaction_impl_pre.hpp

    r732507 r628577  
    4242#include <boost/preprocessor/seq/transform.hpp>
    4343
     44#include "Actions/ActionQueue.hpp"
     45
    4446// some derived names: if CATEGORY is not given, we don't prefix with it
    4547#ifdef CATEGORY
     
    192194)
    193195{
    194   Action *ToCall = ActionRegistry::getInstance().getActionByName( TOKEN ); //->clone(params);
     196  Action *ToCall = ActionQueue::getInstance().getActionRegistry().getActionByName( TOKEN ); //->clone(params);
    195197  //REACTION::PARAMS params;
    196198#if BOOST_PP_NOT_EQUAL(MAXPARAMTYPES,0)
     
    211213#endif
    212214        ) {
    213   Action *ToCall = ActionRegistry::getInstance().getActionByName( TOKEN ); //->clone(params);
     215  Action *ToCall = ActionQueue::getInstance().getActionRegistry().getActionByName( TOKEN ); //->clone(params);
    214216  //REACTION::PARAMS params;
    215217#if BOOST_PP_NOT_EQUAL(MAXPARAMTYPES,0)
  • src/Actions/pyMoleCuilder.cpp

    r732507 r628577  
    3838
    3939#include "CodePatterns/MemDebug.hpp"
     40#include "CodePatterns/toString.hpp"
    4041
    4142//!> define all present actions
  • src/Actions/unittests/ActionRegistryUnitTest.cpp

    r732507 r628577  
    4141#include <typeinfo>
    4242
     43#include "Actions/ActionQueue.hpp"
    4344#include "Actions/ActionRegistry.hpp"
    4445#include "Actions/ActionTrait.hpp"
     
    6061void ActionRegistryTest::setUp()
    6162{
    62   ActionRegistry::getInstance();
     63  AR = &ActionQueue::getInstance().getActionRegistry();
    6364};
    6465
     
    6667void ActionRegistryTest::tearDown()
    6768{
    68   ActionRegistry::purgeInstance();
     69  ActionQueue::purgeInstance();
    6970};
    7071
     
    7374  std::map <std::string, std::string> result;
    7475
    75   ActionRegistry &AR = ActionRegistry::getInstance();
    76   for (ActionRegistry::const_iterator iter = AR.getBeginIter(); iter != AR.getEndIter(); ++iter) {
     76  for (ActionRegistry::const_iterator iter = AR->getBeginIter(); iter != AR->getEndIter(); ++iter) {
    7777    if ((iter->second)->Traits.hasShortForm()) {
    7878      ASSERT(result.find((iter->second)->Traits.getShortForm()) == result.end(),
  • src/Actions/unittests/ActionRegistryUnitTest.hpp

    r732507 r628577  
    1717#include <cppunit/extensions/HelperMacros.h>
    1818
     19namespace MoleCuilder {
     20class ActionRegistry;
     21};
    1922
    2023/********************************************** Test classes **************************************/
     
    3235
    3336private:
     37      MoleCuilder::ActionRegistry *AR;
    3438};
    3539
  • src/Actions/unittests/ActionSequenceUnitTest.cpp

    r732507 r628577  
    4040#include "ActionSequenceUnitTest.hpp"
    4141#include "Actions/Action.hpp"
     42#include "Actions/ActionHistory.hpp"
     43#include "Actions/ActionQueue.hpp"
    4244#include "Actions/ActionSequence.hpp"
    4345#include "Actions/MakroAction.hpp"
    44 #include "Actions/ActionHistory.hpp"
    45 #include "Actions/ActionRegistry.hpp"
    4646
    4747#include "stubs/DummyUI.hpp"
     
    191191
    192192  ActionHistory::purgeInstance();
    193   ActionRegistry::purgeInstance();
     193  ActionQueue::purgeInstance();
    194194  {
    195195    UIFactory::purgeInstance();
  • src/Actions/unittests/AtomsCalculationUnitTest.cpp

    r732507 r628577  
    4545#include "Actions/AtomsCalculation.hpp"
    4646#include "Actions/AtomsCalculation_impl.hpp"
    47 #include "Actions/ActionRegistry.hpp"
     47#include "Actions/ActionQueue.hpp"
    4848#include "Actions/ActionTrait.hpp"
    4949
     
    7171void AtomsCalculationTest::tearDown(){
    7272  World::purgeInstance();
    73   ActionRegistry::purgeInstance();
     73  ActionQueue::purgeInstance();
    7474}
    7575
  • src/Actions/unittests/ManipulateAtomsUnitTest.cpp

    r732507 r628577  
    4343#include "Descriptors/AtomIdDescriptor.hpp"
    4444#include "Actions/ManipulateAtomsProcess.hpp"
    45 #include "Actions/ActionRegistry.hpp"
     45#include "Actions/ActionQueue.hpp"
    4646#include "Actions/ActionHistory.hpp"
    4747
     
    120120void manipulateAtomsTest::tearDown(){
    121121  World::purgeInstance();
    122   ActionRegistry::purgeInstance();
     122  ActionQueue::purgeInstance();
    123123  ActionHistory::purgeInstance();
    124124  {
Note: See TracChangeset for help on using the changeset viewer.