Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/ActionRegistry.cpp

    rd56640 rd0fbec  
    55 *      Author: crueger
    66 */
     7
     8#include "Helpers/MemDebug.hpp"
    79
    810#include "Actions/ActionRegistry.hpp"
     
    1719using namespace std;
    1820
     21/** Constructor for class ActionRegistry.
     22 */
    1923ActionRegistry::ActionRegistry()
    2024{
    2125}
    2226
     27/** Destructor for class ActionRegistry.
     28 */
    2329ActionRegistry::~ActionRegistry()
    2430{
     
    3036}
    3137
     38/** Returns pointer to an action named by \a name.
     39 * \param name name of action
     40 * \return pointer to Action
     41 */
    3242Action* ActionRegistry::getActionByName(const std::string name){
    3343  map<const string,Action*>::iterator iter;
     
    3747}
    3848
     49/** States whether action is present or not.
     50 * \note This iss needed as ActionRegistry::getActionByName() ASSERT()s that action is in map.
     51 * \param name name of action
     52 * \return true - Action present, false - Action absent
     53 */
     54bool ActionRegistry::isActionByNamePresent(const std::string name){
     55  map<const string,Action*>::iterator iter;
     56  iter = actionMap.find(name);
     57  return iter!=actionMap.end();
     58}
     59
     60/** Registers an Action with the ActionRegistry.
     61 * \param *action pointer to Action.
     62 */
    3963void ActionRegistry::registerAction(Action* action){
    4064  pair<map<const string,Action*>::iterator,bool> ret;
     65  //cout << "Trying to register action with name " << action->getName() << "." << endl;
    4166  ret = actionMap.insert(pair<const string,Action*>(action->getName(),action));
    4267  ASSERT(ret.second,"Two actions with the same name added to registry");
    4368}
    4469
     70/** Unregisters an Action.
     71 * \param *action pointer to Action.
     72 */
     73void ActionRegistry::unregisterAction(Action* action){
     74  //cout << "Unregistering action with name " << action->getName() << "." << endl;
     75  actionMap.erase(action->getName());
     76}
     77
     78/** Returns an iterator pointing to the start of the map of Action's.
     79 * \return begin iterator
     80 */
     81std::map<const std::string,Action*>::iterator ActionRegistry::getBeginIter()
     82{
     83  return actionMap.begin();
     84}
     85
     86/** Returns an iterator pointing to the end of the map of Action's.
     87 * \return end iterator
     88 */
     89std::map<const std::string,Action*>::iterator ActionRegistry::getEndIter()
     90{
     91  return actionMap.end();
     92}
     93
     94/** Returns a const iterator pointing to the start of the map of Action's.
     95 * \return constant begin iterator
     96 */
     97std::map<const std::string,Action*>::const_iterator ActionRegistry::getBeginIter() const
     98{
     99  return actionMap.begin();
     100}
     101
     102/** Returns a const iterator pointing to the end of the map of Action's.
     103 * \return constant end iterator
     104 */
     105std::map<const std::string,Action*>::const_iterator ActionRegistry::getEndIter() const
     106{
     107  return actionMap.end();
     108}
     109
     110/** Prints the contents of the ActionRegistry \a &m to \a &ost.
     111 * \param &ost output stream
     112 * \param &m reference to ActionRegistry
     113 * \return reference to the above out stream for concatenation
     114 */
     115ostream& operator<<(ostream& ost, const ActionRegistry& m)
     116{
     117  ost << "ActionRegistry contains:" << endl;
     118  for (std::map<const std::string,Action*>::const_iterator iter = m.getBeginIter(); iter != m.getEndIter(); ++iter) {
     119    ost << "\t" << iter->first << " with pointer " << iter->second << endl;
     120  }
     121  return ost;
     122};
     123
     124
     125
    45126CONSTRUCT_SINGLETON(ActionRegistry)
Note: See TracChangeset for help on using the changeset viewer.