source: molecuilder/src/Actions/ActionRegistry.cpp@ eb94c1

Last change on this file since eb94c1 was d97af9, checked in by Tillmann Crueger <crueger@…>, 16 years ago

Seperated building of mainWindow and contained Menus

  • Moved code to build Menus to builder.cpp
  • Moved WindowGeneration code to constructor
  • 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 <string>
12#include <cassert>
13#include <iostream>
14
15using namespace std;
16
17ActionRegistry *ActionRegistry::theInstance=0;
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 actionMap.erase(iter);
29 }
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
45// singleton stuff
46ActionRegistry* ActionRegistry::getRegistry(){
47 if(!theInstance){
48 theInstance = new ActionRegistry();
49 }
50 return theInstance;
51}
52
53void ActionRegistry::purgeRegistry(){
54 if(theInstance){
55 delete theInstance;
56 theInstance = 0;
57 }
58}
Note: See TracBrowser for help on using the repository browser.