From: <hsu...@us...> - 2009-07-11 21:17:48
|
Revision: 7992 http://playerstage.svn.sourceforge.net/playerstage/?rev=7992&view=rev Author: hsujohnhsu Date: 2009-07-11 21:17:44 +0000 (Sat, 11 Jul 2009) Log Message: ----------- update World shutdown: remove factory Iface during World::Fini() call before Server::Fini() call so to avoid having to rm -rf on /tmp. Modified Paths: -------------- code/gazebo/trunk/server/World.cc Modified: code/gazebo/trunk/server/World.cc =================================================================== --- code/gazebo/trunk/server/World.cc 2009-07-11 21:16:15 UTC (rev 7991) +++ code/gazebo/trunk/server/World.cc 2009-07-11 21:17:44 UTC (rev 7992) @@ -115,8 +115,10 @@ } if (this->factory) + { delete this->factory; - this->factory = NULL; + this->factory = NULL; + } } //////////////////////////////////////////////////////////////////////////////// @@ -336,6 +338,18 @@ { gzmsg(-1) << "Problem destroying simIface[" << e << "]\n"; } + try + { + if (this->factory) + { + delete this->factory; + this->factory = NULL; + } + } + catch (std::string e) + { + gzmsg(-1) << "Problem destroying factory[" << e << "]\n"; + } try { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <as...@us...> - 2009-07-13 23:00:53
|
Revision: 8008 http://playerstage.svn.sourceforge.net/playerstage/?rev=8008&view=rev Author: asadat Date: 2009-07-13 23:00:51 +0000 (Mon, 13 Jul 2009) Log Message: ----------- changed the name format in the generated tree of interfaces for webgazebo Modified Paths: -------------- code/gazebo/trunk/server/World.cc Modified: code/gazebo/trunk/server/World.cc =================================================================== --- code/gazebo/trunk/server/World.cc 2009-07-13 20:05:09 UTC (rev 8007) +++ code/gazebo/trunk/server/World.cc 2009-07-13 23:00:51 UTC (rev 8008) @@ -1018,14 +1018,21 @@ response->type = req->type; strcpy( response->modelName, req->modelName); - std::vector<Model*>::iterator miter; + std::vector<Model*>::iterator mmiter; - for (miter=models.begin(); miter!=models.end(); miter++) - GetInterfaceNames((*miter), list); + for (mmiter=models.begin(); mmiter!=models.end(); mmiter++) + GetInterfaceNames((*mmiter), list); std::string mname = req->modelName; unsigned int i=mname.find("."); +/* + unsigned int ind = list[j].find(mname); + if(ind==0 && ind!=std::string::npos && list[j].size() > mname.size()){ + candids.push_back(list[j].substr(ind+mname.size(),list[j].size()-ind-mname.size())); + } + } +*/ while(i!= std::string::npos) { mname.erase(i,1); @@ -1033,6 +1040,7 @@ i= mname.find("."); } + std::vector<std::string> candids; for(unsigned int j=0;j<list.size();j++) @@ -1087,10 +1095,27 @@ response->type = req->type; strcpy( response->modelName, req->modelName); - std::vector<Model*>::iterator miter; + std::vector<Model*>::iterator mmiter; - for (miter=models.begin(); miter!=models.end(); miter++) + + for (mmiter=models.begin(); mmiter!=models.end(); mmiter++) + GetInterfaceNames((*mmiter), list); + + + // removing the ">>type" from the end of each interface names + for(unsigned int jj=0;jj<list.size();jj++){ + unsigned int index = list[jj].find(">>"); + if(index !=std::string::npos) + list[jj].replace(index,list[jj].size(),""); + //printf("-->> %s \n",list[jj].c_str()); + } + + + //if(strcmp((char*)req->modelName,"")==0){ + /* + for (miter=models.begin(); miter!=models.end(); miter++) GetInterfaceNames((*miter), list); +*/ // removing the ">>type" from the end of each interface names for(unsigned int jj=0;jj<list.size();jj++) @@ -1106,18 +1131,29 @@ for(unsigned int i=0;i<list.size();i++) { - std::string str = list[i].substr(0,list[i].find("::")); - std::vector<std::string>::iterator itr; - itr = std::find(chlist.begin(),chlist.end(), str); - if(itr!=chlist.end() || str=="") - continue; - chlist.push_back(str); - strcpy(response->childInterfaces[response->nChildInterfaces++], - str.c_str()); - response->childInterfaces[response->nChildInterfaces-1][511]='\0'; - } + std::string str = list[i].substr(0,list[i].find("::")); + std::vector<std::string>::iterator itr; + itr = std::find(chlist.begin(),chlist.end(), str); + + if(itr!=chlist.end() || str=="") + continue; + + unsigned int ii=str.find("::"); + while(ii!= std::string::npos){ + + str.erase(ii,2); + str.insert(ii,"."); + ii= str.find("::"); + } + + chlist.push_back(str); + strcpy(response->childInterfaces[response->nChildInterfaces++],str.c_str()); + response->childInterfaces[response->nChildInterfaces-1][511]='\0'; + + } + } else { @@ -1152,12 +1188,20 @@ std::vector<std::string>::iterator itr; itr = std::find(chlist.begin(),chlist.end(), str); + if(itr!=chlist.end() || str=="") continue; chlist.push_back(str); // Adding the parent name to the child name e.g "parent.child" - str=mname+"::"+str; + str=mname+"."+str; + + unsigned int i=str.find("::"); + while(i!=std::string::npos){ + str.erase(i,2); + str.insert(i,"."); + i= str.find("::"); + } strcpy(response->childInterfaces[response->nChildInterfaces++], str.c_str()); @@ -1168,8 +1212,9 @@ response++; this->simIface->data->responseCount += 1; - break; + break; } + case SimulationRequestData::GO: { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |