bool FieldContainerFactory::initializePendingTypes(void) { bool returnValue = true; FieldContainerType *pType = NULL; if(_bInitialized == false) return false; SINFO << "OSGFieldContainerFactory init pending types" << std::endl; if(_pUnitTypesStore != NULL) { if(_pMapLock != NULL) _pMapLock->aquire(); UninitTypeStoreIt uninitIt = _pUnitTypesStore->begin(); while(uninitIt != _pUnitTypesStore->end()) { pType = *uninitIt; if(pType->isInitialized() == true) { uninitIt = _pUnitTypesStore->erase(uninitIt); // (*_pTypeIdMap )[pType->getId() ] = pType; TypeIdMap::value_type val(pType->getId(), pType); _pTypeIdMap->insert(val); (*_pTypeNameMap)[IDStringLink(pType->getCName())] = pType; } else { if(pType->initialize() == true) { uninitIt = _pUnitTypesStore->erase(uninitIt); // (*_pTypeIdMap )[pType->getId() ] = pType; TypeIdMap::value_type val(pType->getId(), pType); _pTypeIdMap->insert(val); (*_pTypeNameMap)[IDStringLink(pType->getCName())] = pType; } else { returnValue = false; uninitIt++; } } } if(_pMapLock != NULL) _pMapLock->release(); PINFO << "(" << returnValue << "|" << _pUnitTypesStore->size() << ")" << std::endl; } return returnValue; }