source: molecuilder/src/Actions/ActionRegistry.cpp@ 65b413

Last change on this file since 65b413 was 8d9984, checked in by Tillmann Crueger <crueger@…>, 15 years ago

Added full undo functioniality

  • Property mode set to 100644
File size: 1.0 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
45CONSTRUCT_SINGLETON(ActionRegistry)
Note: See TracBrowser for help on using the repository browser.