Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 31, 2015, 10:14:12 AM (9 years ago)
Author:
landauf
Message:

refactoring: moved code from Scope.h into ScopeManager

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/core7/src/libraries/core/singleton/ScopeManager.cc

    r10463 r10513  
    2929/**
    3030    @file
    31     @brief Static linkage of the two maps in orxonox::ScopeManager.
     31    @brief Implementation of orxonox::ScopeManager.
    3232*/
    3333
     
    4747    {
    4848        this->activeScopes_.insert(scope);
     49        this->activateListenersForScope(scope);
    4950    }
    5051
     
    5253    {
    5354        this->activeScopes_.erase(scope);
     55        this->deactivateListenersForScope(scope);
    5456    }
    5557
     
    6870        this->listeners_[listener->getScope()].erase(listener);
    6971    }
     72
     73    void ScopeManager::activateListenersForScope(ScopeID::Value scope)
     74    {
     75        for (typename std::set<ScopeListener*>::iterator it = this->listeners_[scope].begin(); it != this->listeners_[scope].end(); ++it)
     76            this->activateListener(*it);
     77    }
     78
     79    void ScopeManager::deactivateListenersForScope(ScopeID::Value scope)
     80    {
     81        for (typename std::set<ScopeListener*>::iterator it = this->listeners_[scope].begin(); it != this->listeners_[scope].end(); ++it)
     82            if ((*it)->bActivated_)
     83                this->deactivateListener(*it);
     84    }
     85
     86    void ScopeManager::activateListener(ScopeListener* listener)
     87    {
     88        listener->activated();
     89        listener->bActivated_ = true;
     90    }
     91
     92    void ScopeManager::deactivateListener(ScopeListener* listener)
     93    {
     94        try
     95            { listener->deactivated(); }
     96        catch (...)
     97            { orxout(internal_warning) << "ScopeListener::deactivated() failed! This MUST NOT happen, fix it!" << endl; }
     98        listener->bActivated_ = false;
     99    }
    70100}
Note: See TracChangeset for help on using the changeset viewer.