Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 6, 2015, 4:38:45 PM (9 years ago)
Author:
landauf
Message:

use CoreStaticInitializationHandler to initialize core instances

File:
1 edited

Legend:

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

    r10531 r10532  
    7878#include "object/ObjectList.h"
    7979#include "module/ModuleInstance.h"
     80#include "module/StaticInitializationManager.h"
     81#include "CoreStaticInitializationHandler.h"
    8082#include "UpdateListener.h"
    8183
     
    111113        , graphicsScope_(NULL)
    112114        , bGraphicsLoaded_(false)
     115        , staticInitHandler_(NULL)
    113116        , rootModule_(NULL)
    114117        , config_(NULL)
     
    124127
    125128        // TODO: initialize StaticInitializationManager
     129        this->staticInitHandler_ = new CoreStaticInitializationHandler();
     130        StaticInitializationManager::getInstance().addHandler(this->staticInitHandler_);
     131
    126132        // TODO: initialize Root-Context
    127133        // TODO: initialize IdentifierManager here
     
    250256            this->rootModule_->deleteAllStaticallyInitializedInstances();
    251257        }
     258        if (this->staticInitHandler_)
     259            StaticInitializationManager::getInstance().removeHandler(this->staticInitHandler_);
    252260        Context::setRootContext(NULL);
    253261        safeObjectDelete(&rootModule_);
     262        safeObjectDelete(&staticInitHandler_);
    254263        safeObjectDelete(&dynLibManager_);
    255264        safeObjectDelete(&configurablePaths_);
     
    288297        DynLib* dynLib = this->dynLibManager_->load(module->getName());
    289298        module->setDynLib(dynLib);
    290         module->loadAllStaticallyInitializedInstances(0);
    291         IdentifierManager::getInstance().createClassHierarchy();
    292         ScopeManager::getInstance().updateListeners();
     299
     300        StaticInitializationManager::getInstance().loadModule(module);
    293301    }
    294302
     
    308316        orxout(internal_info) << "Unloading module " << module->getName() << "..." << endl;
    309317
    310         module->unloadAllStaticallyInitializedInstances(0);
     318        StaticInitializationManager::getInstance().unloadModule(module);
     319
    311320        module->deleteAllStaticallyInitializedInstances();
    312321        this->dynLibManager_->unload(module->getDynLib());
Note: See TracChangeset for help on using the changeset viewer.