void ConfigData::ReadPluginData(ConfigParser &parser) { //Get if the outer log section exists const ConfigToken * pluginDataToken = parser.GetToken("PluginData"); if(!pluginDataToken) { return; } const ConfigToken *pluginTestToken; //Get the plugin base directory pluginTestToken = pluginDataToken->GetChildToken("BaseDir"); if(pluginTestToken) { pluginTestToken->Get(pluginBasePath); //Add a directory seperator pluginBasePath = pluginBasePath + FileUtils::dirSeparator; } //Get the plugin token pluginTestToken = pluginDataToken->GetChildToken("Plugins"); if(pluginTestToken) { //Loop for all children for(uint i=0;i<pluginTestToken->GetNumChildren();i++) { //Get the token and check that it has a value const ConfigToken *pToken = pluginTestToken->GetChildToken(i); if(pToken->GetNumValues() != 1) { LOGERR(("ConfigData::ReadPluginData - Error in PluginData:Plugins:%s -Expected one dll name value",pToken->GetName().c_str())); return; } //Fill out the plugin data PluginData newData; newData.pluginName = pToken->GetName(); pToken->Get(newData.pluginDLLName,0); //Compile all child config data for the token for(uint childNum =0;childNum < pToken->GetNumChildren(); childNum++) { //Convert each child back to raw config string data string retString; if(parser.GenerateConfigString(pToken->GetChildToken(childNum),retString)) { newData.pluginConfigData += retString; } } //Add the plugin data to the array pluginDataArray.push_back(newData); } } }