ForceAnnealing_goodresults
        ForceAnnealing_tocheck
      
      
        
          | Last change
 on this file since d2a077a was             10aee4, checked in by Frederik Heber <heber@…>, 10 years ago | 
        
          | 
Cleaned up ActionQueue's interface: Actions are always cloned.
 Action's dstor needs to be public as we have a clone() function.
ActionRegistrys' (and AQ's) getActionByName now returns const ref. We must
not return a ptr as it may not get deleted elsewhere. We are handing out
prototypes.
queueAction(action*,...) is private to prevent leakage, queueAction(string,
...) is the public interface.
some other small functions are now private, too.
MakroActions now need to clone() the prototype on prepare() and delete them
on unprepare().
ActionSequence deletes contained actions.
FIX: ActionSequenceUnitTest cannot check on not-called property of removed
actions anymore as these are gone now (they are deleted on removal and they
are cloned on insertion).
DOCU: Updated documentation on Actions.
 | 
        
          | 
              
Property                 mode
 set to                 100644 | 
        
          | File size:
            1.7 KB | 
      
      
| Rev | Line |  | 
|---|
| [cc04b7] | 1 | /* | 
|---|
| [b2d8d0] | 2 | * Registry<Action>.hpp | 
|---|
| [cc04b7] | 3 | * | 
|---|
|  | 4 | *  Created on: Jan 7, 2010 | 
|---|
|  | 5 | *      Author: crueger | 
|---|
|  | 6 | */ | 
|---|
|  | 7 |  | 
|---|
|  | 8 | #ifndef ACTIONREGISTRY_HPP_ | 
|---|
|  | 9 | #define ACTIONREGISTRY_HPP_ | 
|---|
|  | 10 |  | 
|---|
| [56f73b] | 11 | // include config.h | 
|---|
|  | 12 | #ifdef HAVE_CONFIG_H | 
|---|
|  | 13 | #include <config.h> | 
|---|
|  | 14 | #endif | 
|---|
|  | 15 |  | 
|---|
|  | 16 |  | 
|---|
| [986ed3] | 17 | #include <iosfwd> | 
|---|
| [cc04b7] | 18 | #include <string> | 
|---|
|  | 19 | #include <map> | 
|---|
|  | 20 |  | 
|---|
| [ad011c] | 21 | #include "CodePatterns/Registry.hpp" | 
|---|
| [b2d8d0] | 22 | #include "Actions/Action.hpp" | 
|---|
| [e73a8a2] | 23 |  | 
|---|
| [ce7fdc] | 24 | namespace MoleCuilder { | 
|---|
|  | 25 |  | 
|---|
| [b2d8d0] | 26 | /** Action Registry. | 
|---|
|  | 27 | * | 
|---|
|  | 28 | * The Action registry is a storage for any Action instance to retrieved by name. | 
|---|
| [628577] | 29 | * ActionRegistry belongs to the ActionQueue. | 
|---|
| [b2d8d0] | 30 | * | 
|---|
| [b2c302] | 31 | * ActionRegistry::fillRegistry() is the essential function, called in the cstor, | 
|---|
|  | 32 | * where all the prototypical Action's are instantiated. To this end, we sadly | 
|---|
|  | 33 | * require a global list of all present actions (\note there is a regression test | 
|---|
|  | 34 | * check on its completeness). We include \ref GlobalListOfActionsh.hpp where a | 
|---|
|  | 35 | * boost::preprocessor sequence is contained that is then used to install each | 
|---|
|  | 36 | * of the Action's in the registry. | 
|---|
|  | 37 | * | 
|---|
| [b2d8d0] | 38 | */ | 
|---|
| [628577] | 39 | class ActionRegistry : public Registry<Action> | 
|---|
| [cc04b7] | 40 | { | 
|---|
| [b2d8d0] | 41 | //friend class Registry<Action>; | 
|---|
| [cc04b7] | 42 |  | 
|---|
| [b2d8d0] | 43 | public: | 
|---|
| [10aee4] | 44 | const Action& getActionByName(const std::string &name); | 
|---|
| [a6ceab] | 45 | bool isActionPresentByName(const std::string &name) const; | 
|---|
| [cc04b7] | 46 |  | 
|---|
| [2aad5a] | 47 | /** Static getter for the state of the registry. | 
|---|
|  | 48 | * | 
|---|
|  | 49 | * @return true - ActionRegistry's cstor has run through, false - else | 
|---|
|  | 50 | */ | 
|---|
|  | 51 | static bool getCompletely_instatiated() | 
|---|
|  | 52 | { return completely_instatiated; } | 
|---|
|  | 53 |  | 
|---|
| [cc04b7] | 54 | ActionRegistry(); | 
|---|
| [b2d8d0] | 55 | ~ActionRegistry(); | 
|---|
| [83e90c] | 56 |  | 
|---|
| [628577] | 57 | private: | 
|---|
| [83e90c] | 58 | void fillRegistry(); | 
|---|
| [36053c] | 59 | void fillOptionRegistry() const; | 
|---|
|  | 60 | void clearOptionRegistry() const; | 
|---|
| [10aee4] | 61 | void prepareAllMakroActions(); | 
|---|
| [2aad5a] | 62 |  | 
|---|
|  | 63 | //!> this tells whether ActionRegistry has been completed instantiated. | 
|---|
|  | 64 | static bool completely_instatiated; | 
|---|
| [cc04b7] | 65 | }; | 
|---|
|  | 66 |  | 
|---|
| [ce7fdc] | 67 | } | 
|---|
|  | 68 |  | 
|---|
| [cc04b7] | 69 | #endif /* ACTIONREGISTRY_HPP_ */ | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.