Action_Thermostats
        Adding_MD_integration_tests
        Adding_StructOpt_integration_tests
        AutomationFragmentation_failures
        Candidate_v1.6.1
        Candidate_v1.7.0
        ChemicalSpaceEvaluator
        Enhanced_StructuralOptimization
        Enhanced_StructuralOptimization_continued
        Exclude_Hydrogens_annealWithBondGraph
        Fix_Verbose_Codepatterns
        ForceAnnealing_with_BondGraph
        ForceAnnealing_with_BondGraph_continued
        ForceAnnealing_with_BondGraph_continued_betteresults
        ForceAnnealing_with_BondGraph_contraction-expansion
        Gui_displays_atomic_force_velocity
        JobMarket_RobustOnKillsSegFaults
        JobMarket_StableWorkerPool
        PythonUI_with_named_parameters
        Recreated_GuiChecks
        StoppableMakroAction
        TremoloParser_IncreasedPrecision
        stable
      
      
        
          | Last change
 on this file since b10593 was             af5384, checked in by Frederik Heber <heber@…>, 12 years ago | 
        
          | 
Actions can now clone() and split off prepare() from call().
 ActionQueue now separates call phase into clone(), prepare(), and call().
ActionQueue's dstor releases Actions in deque.
CurrentAction is an index as push_back always invalidates iterator.
ActionQueue_t is now a simple vector of ptrs.
call() is now non-interactive, (maybe) interactive part is placed in
prepare() where dialogs are used to fill parameters.
only fully prepared Actions are placed in ActionQueue.
ActionQueue obtains action instances from Registry, copies, prepares them,
and places them in the queue.
Action::clone() gets QueryOptions as param. This lets us either clone without
params or really copy the instance.
If action is called as COMMAND, params have been filled already.
Reactions require a ActionQueue::getLastAction() to actually obtain result
of (cloned) Action.
FIX: Calculation now has const has...() and getResult().
 | 
        
          | 
              
Property                 mode
 set to                 100644 | 
        
          | File size:
            795 bytes | 
      
      
| Rev | Line |  | 
|---|
| [b54ac8] | 1 | /* | 
|---|
|  | 2 | * AtomsCalculation.hpp | 
|---|
|  | 3 | * | 
|---|
|  | 4 | *  Created on: Feb 19, 2010 | 
|---|
|  | 5 | *      Author: crueger | 
|---|
|  | 6 | */ | 
|---|
|  | 7 |  | 
|---|
|  | 8 | #ifndef ATOMSCALCULATION_HPP_ | 
|---|
|  | 9 | #define ATOMSCALCULATION_HPP_ | 
|---|
|  | 10 |  | 
|---|
| [56f73b] | 11 | // include config.h | 
|---|
|  | 12 | #ifdef HAVE_CONFIG_H | 
|---|
|  | 13 | #include <config.h> | 
|---|
|  | 14 | #endif | 
|---|
|  | 15 |  | 
|---|
|  | 16 |  | 
|---|
| [b54ac8] | 17 | #include "Actions/Calculation.hpp" | 
|---|
|  | 18 |  | 
|---|
| [047878] | 19 | class Dialog; | 
|---|
|  | 20 |  | 
|---|
| [ce7fdc] | 21 | namespace MoleCuilder { | 
|---|
|  | 22 |  | 
|---|
| [b54ac8] | 23 | template<typename T> | 
|---|
|  | 24 | class AtomsCalculation : public Calculation<std::vector<T> > | 
|---|
|  | 25 | { | 
|---|
|  | 26 | public: | 
|---|
| [3139b2] | 27 | AtomsCalculation(boost::function<T(atom*)> op,const ActionTrait &_trait,AtomDescriptor descr); | 
|---|
| [b54ac8] | 28 | virtual ~AtomsCalculation(); | 
|---|
|  | 29 |  | 
|---|
| [af5384] | 30 | Action* clone(enum Action::QueryOptions flag = Action::Interactive) const; | 
|---|
|  | 31 |  | 
|---|
| [b54ac8] | 32 | protected: | 
|---|
|  | 33 | virtual std::vector<T>* doCalc(); | 
|---|
| [047878] | 34 | virtual Dialog *fillDialog(Dialog *dialog); | 
|---|
| [b54ac8] | 35 |  | 
|---|
|  | 36 | private: | 
|---|
|  | 37 | AtomDescriptor descr; | 
|---|
|  | 38 | boost::function<T(atom*)> op; | 
|---|
|  | 39 | }; | 
|---|
|  | 40 |  | 
|---|
| [ce7fdc] | 41 | } | 
|---|
|  | 42 |  | 
|---|
| [b54ac8] | 43 | #endif /* ATOMSCALCULATION_HPP_ */ | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.