| 1031 | //----------------------------------------------------------------------------- |
| 1032 | |
| 1033 | void ModuleManager::findModules( const bool loadedOnly, typeConstModuleDefinitionVector& moduleDefinitions ) |
| 1034 | { |
| 1035 | // Iterate module Ids. |
| 1036 | for( typeModuleIdDatabaseHash::iterator moduleIdItr = mModuleIdDatabase.begin(); moduleIdItr != mModuleIdDatabase.end(); ++moduleIdItr ) |
| 1037 | { |
| 1038 | // Fetch module definition entry. |
| 1039 | ModuleDefinitionEntry* pModuleDefinitionEntry = moduleIdItr->value; |
| 1040 | |
| 1041 | // Iterate module definitions. |
| 1042 | for ( typeModuleDefinitionVector::iterator moduleDefinitionItr = pModuleDefinitionEntry->begin(); moduleDefinitionItr != pModuleDefinitionEntry->end(); ++moduleDefinitionItr ) |
| 1043 | { |
| 1044 | // Fetch module definition. |
| 1045 | ModuleDefinition* pModuleDefinition = *moduleDefinitionItr; |
| 1046 | |
| 1047 | // Are we searching for loaded modules only? |
| 1048 | if ( loadedOnly ) |
| 1049 | { |
| 1050 | // Yes, so skip if the module is not loaded. |
| 1051 | if ( pModuleDefinition->getLoadCount() == 0 ) |
| 1052 | continue; |
| 1053 | |
| 1054 | // Use module definition. |
| 1055 | moduleDefinitions.push_back( pModuleDefinition ); |
| 1056 | |
| 1057 | // Finish iterating module definitions as only a single module in this entry can be loaded concurrently. |
| 1058 | break; |
| 1059 | } |
| 1060 | |
| 1061 | // use module definition. |
| 1062 | moduleDefinitions.push_back( pModuleDefinition ); |
| 1063 | } |
| 1064 | } |
| 1065 | } |
| 1066 | |
| 1067 | //----------------------------------------------------------------------------- |
| 1068 |
no test coverage detected