void ZoneServerImplementation::startZones() { info("Loading zones."); SortedVector<String>* enabledZones = configManager->getEnabledZones(); StructureManager* structureManager = StructureManager::instance(); structureManager->setZoneServer(_this.getReferenceUnsafeStaticCast()); for (int i = 0; i < enabledZones->size(); ++i) { String zoneName = enabledZones->get(i); info("Loading zone " + zoneName + "."); Zone* zone = new Zone(processor, zoneName); zone->createContainerComponent(); zone->initializePrivateData(); zone->deploy("Zone " + zoneName); zones->put(zoneName, zone); } resourceManager->initialize(); for (int i = 0; i < zones->size(); ++i) { Zone* zone = zones->get(i); if (zone != NULL) { ZoneLoadManagersTask* task = new ZoneLoadManagersTask(_this.getReferenceUnsafeStaticCast(), zone); task->execute(); } } for (int i = 0; i < zones->size(); ++i) { Zone* zone = zones->get(i); if (zone != NULL) { while (!zone->hasManagersStarted()) Thread::sleep(500); } } }