1 #include "SalomeResourceModel.hxx"
2 #include "RuntimeSALOME.hxx"
3 #include "SALOME_ResourcesManager.hxx"
4 #include "SALOME_LifeCycleCORBA.hxx"
7 SalomeResourceModel::SalomeResourceModel()
8 : AbstractResourceModel(),
9 _wantedMachine("localhost"),
14 _localDirectory("/tmp"),
15 _remoteDirectory("/tmp"),
16 _parallelizeStatus(true),
21 SalomeResourceModel::~SalomeResourceModel()
25 bool SalomeResourceModel::isMachineInteractive(const std::string& machine)const
27 return !machine.compare("localhost");
30 std::vector< std::string > SalomeResourceModel::getFittingMachines()const
32 std::vector< std::string > resultat;
33 YACS::ENGINE::RuntimeSALOME* runTime = YACS::ENGINE::getSALOMERuntime();
34 CORBA::ORB_ptr orb = runTime->getOrb();
35 if (!orb) return resultat;
37 SALOME_NamingService namingService(orb);
38 SALOME_LifeCycleCORBA lcc(&namingService);
40 CORBA::Object_var obj;
41 obj=namingService.Resolve(SALOME_ResourcesManager::_ResourcesManagerNameInNS);
42 if (CORBA::is_nil(obj)) return resultat;
44 Engines::ResourcesManager_var resManager;
45 resManager = Engines::ResourcesManager::_narrow(obj);
46 if(!resManager) return resultat;
48 Engines::ResourceParameters params;
51 Engines::ResourceList* resourceList = resManager->GetFittingResources(params);
53 for (int i = 0; i < resourceList->length(); i++)
55 const char* aResource = (*resourceList)[i];
56 resultat.push_back(aResource);
61 void SalomeResourceModel::setWantedMachine(const std::string& v)
66 std::string SalomeResourceModel::getWantedMachine()const
68 return _wantedMachine;
71 void SalomeResourceModel::setNbprocs(unsigned int v)
76 unsigned int SalomeResourceModel::getNbprocs()const
81 void SalomeResourceModel::setMaxDurationHours(int v)
86 int SalomeResourceModel::getMaxDurationHours()const
91 void SalomeResourceModel::setMaxDurationMinutes(int v)
96 int SalomeResourceModel::getMaxDurationMinutes()const
101 void SalomeResourceModel::setWckey(const std::string& v)
106 std::string SalomeResourceModel::getWckey()const
111 void SalomeResourceModel::setLocalDir(const std::string& v)
116 std::string SalomeResourceModel::getLocalDir()const
118 return _localDirectory;
121 void SalomeResourceModel::setRemoteDir(const std::string& v)
123 _remoteDirectory = v;
126 std::string SalomeResourceModel::getRemoteDir()const
128 return _remoteDirectory;
131 std::string SalomeResourceModel::getDefaultRemoteDir(std::string machine)const
133 std::string result = "";
134 YACS::ENGINE::RuntimeSALOME* runTime = YACS::ENGINE::getSALOMERuntime();
135 CORBA::ORB_ptr orb = runTime->getOrb();
136 if (!orb) return result;
138 SALOME_NamingService namingService(orb);
139 SALOME_LifeCycleCORBA lcc(&namingService);
141 CORBA::Object_var obj;
142 obj=namingService.Resolve(SALOME_ResourcesManager::_ResourcesManagerNameInNS);
143 if (CORBA::is_nil(obj)) return result;
145 Engines::ResourcesManager_var resManager;
146 resManager = Engines::ResourcesManager::_narrow(obj);
147 if(!resManager) return result;
149 Engines::ResourceParameters params;
154 Engines::ResourceDefinition * rd;
155 rd = resManager->GetResourceDefinition(machine.c_str());
156 result = rd->working_directory.in();
161 std::string launch_date = ctime(&rawtime);
162 for (int i = 0; i < launch_date.size(); i++)
163 if (launch_date[i] == '/' ||
164 launch_date[i] == '-' ||
165 launch_date[i] == ':' ||
166 launch_date[i] == ' ')
167 launch_date[i] = '_';
168 launch_date.erase(--launch_date.end()); // Last caracter is a \n
170 result += launch_date;
180 void SalomeResourceModel::setParallelizeStatus(bool v)
182 _parallelizeStatus = v;
185 bool SalomeResourceModel::getParallelizeStatus()const
187 return _parallelizeStatus;
190 const std::list<std::string>& SalomeResourceModel::getInFiles()const
195 std::list<std::string>& SalomeResourceModel::getInFiles()