Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 24, 2015, 11:42:16 PM (9 years ago)
Author:
landauf
Message:

some refactoring in ScopeManager. made it a singleton and added functions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/core7/src/libraries/core/singleton/Scope.h

    r10461 r10462  
    111111                try
    112112                {
    113                     ScopeManager::getInstanceCounts()[scope]++;
    114                     assert(ScopeManager::getInstanceCounts()[scope] > 0);
    115                     if (ScopeManager::getInstanceCounts()[scope] == 1)
     113                    ScopeManager::getInstance().getInstanceCount(scope)++;
     114                    assert(ScopeManager::getInstance().getInstanceCount(scope) > 0);
     115                    if (ScopeManager::getInstance().getInstanceCount(scope) == 1)
    116116                    {
    117117                        Loki::ScopeGuard deactivator = Loki::MakeObjGuard(*this, &Scope::deactivateListeners);
    118                         for (typename std::set<ScopeListener*>::iterator it = ScopeManager::getListeners()[scope].begin(); it != ScopeManager::getListeners()[scope].end(); )
     118                        for (typename std::set<ScopeListener*>::iterator it = ScopeManager::getInstance().getListeners(scope).begin(); it != ScopeManager::getInstance().getListeners(scope).end(); )
    119119                        {
    120120                            (*it)->activated();
     
    126126                catch (...)
    127127                {
    128                     ScopeManager::getInstanceCounts()[scope]--;
     128                    ScopeManager::getInstance().getInstanceCount(scope)--;
    129129                    throw;
    130130                }
     
    138138                orxout(internal_status) << "destroying scope... (" << scope << ")" << endl;
    139139
    140                 ScopeManager::getInstanceCounts()[scope]--;
     140                ScopeManager::getInstance().getInstanceCount(scope)--;
    141141
    142142                // This shouldn't happen but just to be sure: check if the count is positive
    143                 assert(ScopeManager::getInstanceCounts()[scope] >= 0);
    144                 if (ScopeManager::getInstanceCounts()[scope] < 0)
    145                     ScopeManager::getInstanceCounts()[scope] = 0;
     143                assert(ScopeManager::getInstance().getInstanceCount(scope) >= 0);
     144                if (ScopeManager::getInstance().getInstanceCount(scope) < 0)
     145                    ScopeManager::getInstance().getInstanceCount(scope) = 0;
    146146
    147                 if (ScopeManager::getInstanceCounts()[scope] == 0)
     147                if (ScopeManager::getInstance().getInstanceCount(scope) == 0)
    148148                    this->deactivateListeners();
    149149
     
    154154            void deactivateListeners()
    155155            {
    156                 for (typename std::set<ScopeListener*>::iterator it = ScopeManager::getListeners()[scope].begin(); it != ScopeManager::getListeners()[scope].end(); )
     156                for (typename std::set<ScopeListener*>::iterator it = ScopeManager::getInstance().getListeners(scope).begin(); it != ScopeManager::getInstance().getListeners(scope).end(); )
    157157                {
    158158                    if ((*it)->bActivated_)
     
    172172            static bool isActive()
    173173            {
    174                 return (ScopeManager::getInstanceCounts()[scope] > 0);
     174                return (ScopeManager::getInstance().getInstanceCount(scope) > 0);
    175175            }
    176176    };
Note: See TracChangeset for help on using the changeset viewer.