source: molecuilder/src/Actions/ActionRegistry.cpp@ 2e06c4

Last change on this file since 2e06c4 was 2e06c4, checked in by Frederik Heber <heber@…>, 15 years ago

Added all commands defined in ParseCommandLineOptions() as Actions.

  • Actions are not yet used, except verbose, version and help.
  • Files are present and included in Makefile.am
  • not unit tests written so far
  • no action has been tested so far (except for MapOfActions)
  • structure introduced to to transition from ParseCommandLineOptions to actions.
  • program name and config file are fixed arguments.

Signed-off-by: Frederik Heber <heber@…>

  • Property mode set to 100644
File size: 1.3 KB
Line 
1/*
2 * ActionRegistry.cpp
3 *
4 * Created on: Jan 7, 2010
5 * Author: crueger
6 */
7
8#include "Actions/ActionRegistry.hpp"
9#include "Actions/Action.hpp"
10
11#include "Patterns/Singleton_impl.hpp"
12
13#include <string>
14#include "Helpers/Assert.hpp"
15#include <iostream>
16
17using namespace std;
18
19ActionRegistry::ActionRegistry()
20{
21}
22
23ActionRegistry::~ActionRegistry()
24{
25 map<const string,Action*>::iterator iter;
26 for(iter=actionMap.begin();iter!=actionMap.end();++iter) {
27 delete iter->second;
28 }
29 actionMap.clear();
30}
31
32Action* ActionRegistry::getActionByName(const std::string name){
33 map<const string,Action*>::iterator iter;
34 iter = actionMap.find(name);
35 ASSERT(iter!=actionMap.end(),"Query for an action not stored in registry");
36 return iter->second;
37}
38
39void ActionRegistry::registerAction(Action* action){
40 pair<map<const string,Action*>::iterator,bool> ret;
41 ret = actionMap.insert(pair<const string,Action*>(action->getName(),action));
42 ASSERT(ret.second,"Two actions with the same name added to registry");
43}
44
45void ActionRegistry::unregisterAction(Action* action){
46 actionMap.erase(action->getName());
47}
48
49std::map<const std::string,Action*>::iterator ActionRegistry::getBeginIter()
50{
51 return actionMap.begin();
52}
53
54std::map<const std::string,Action*>::iterator ActionRegistry::getEndIter()
55{
56 return actionMap.end();
57}
58
59CONSTRUCT_SINGLETON(ActionRegistry)
Note: See TracBrowser for help on using the repository browser.