Skip to content
Snippets Groups Projects
Commit 8f053958 authored by Francois Henrotte's avatar Francois Henrotte
Browse files

No commit message

No commit message
parent d34e8a9d
No related branches found
No related tags found
No related merge requests found
......@@ -275,8 +275,8 @@ namespace onelab{
class number : public parameter{
private:
double _value, _min, _max, _step;
// when in a loop, indicates current index in the vector _choices; is -1
// when not in a loop
// when in a loop, indicates current index in the vector _choices;
// is -1 when not in a loop
int _index;
std::vector<double> _choices;
std::map<double, std::string> _valueLabels;
......@@ -284,7 +284,7 @@ namespace onelab{
number(const std::string &name="", double value=0.,
const std::string &label="", const std::string &help="")
: parameter(name, label, help), _value(value),
_min(-maxNumber()), _max(maxNumber()), _step(0.), _index(0) {}
_min(-maxNumber()), _max(maxNumber()), _step(0.), _index(-1) {}
void setValue(double value){ _value = value; }
void setMin(double min){ _min = min; }
void setMax(double max){ _max = max; }
......
......@@ -149,6 +149,7 @@ namespace onelabUtils {
bool incrementLoop(const std::string &level)
{
// called at the end of the do{...} while(incrementLoops);
bool recompute = false, loop = false;
std::vector<onelab::number> numbers;
onelab::server::instance()->get(numbers);
......@@ -171,7 +172,7 @@ namespace onelabUtils {
int j = numbers[i].getIndex() + 1;
double val = numbers[i].getValue() + numbers[i].getStep();
if(numbers[i].getMax() != onelab::parameter::maxNumber() &&
val < numbers[i].getMax()){
val <= numbers[i].getMax()){
numbers[i].setValue(val);
numbers[i].setIndex(j);
onelab::server::instance()->set(numbers[i]);
......@@ -180,13 +181,13 @@ namespace onelabUtils {
recompute = true;
}
else
numbers[i].setIndex(numbers[i].getMax());
numbers[i].setIndex(numbers[i].getMax());// FIXME makes sense?
}
else if(numbers[i].getStep() < 0){
int j = numbers[i].getIndex() + 1;
double val = numbers[i].getValue() + numbers[i].getStep();
if(numbers[i].getMin() != -onelab::parameter::maxNumber() &&
val > numbers[i].getMin()){
val >= numbers[i].getMin()){
numbers[i].setValue(val);
numbers[i].setIndex(j);
onelab::server::instance()->set(numbers[i]);
......@@ -195,7 +196,7 @@ namespace onelabUtils {
recompute = true;
}
else
numbers[i].setIndex(numbers[i].getMin());
numbers[i].setIndex(numbers[i].getMin()); // FIXME makes sense?
}
}
}
......
......@@ -52,11 +52,11 @@ bool MetaModel::findCommandLine(const std::string &client, const std::string &ho
if(name == client){
if( (host.empty() && (rhost != "localhost" )) ||
(host.size() && (rhost == host)) ) {
OLMsg::SetOnelabString(name + "/CommandLine", cmdl);
OLMsg::SetOnelabString(name + "/CommandLine", cmdl, false);
if(rhost.compare("localhost")){
OLMsg::SetOnelabString(name + "/HostName", rhost);
OLMsg::SetOnelabString(name + "/HostName", rhost, false);
if(rdir.size())
OLMsg::SetOnelabString(name + "/RemoteDir", rdir);
OLMsg::SetOnelabString(name + "/RemoteDir", rdir, false);
}
//std::cout << "FHF found cmdl: " << cmdl << "," << rhost << std::endl;
return true;
......@@ -1423,6 +1423,7 @@ void MetaModel::client_sentence(const std::string &name,
onelab::string str;
str.setName(name + "/CommandLine");
str.setKind("file");
str.setVisible(true);
str.setAttribute("Highlight","Ivory");
set(str);
OLMsg::Error("No commandline found for client <%s>",
......@@ -1448,21 +1449,26 @@ void MetaModel::client_sentence(const std::string &name,
if(arguments.size()>=3)
OLMsg::Warning("Unused arguments for client <%s>", name.c_str());
if(host.empty()){
if(host.size()){
OLMsg::SetOnelabString(name + "/HostName", host, false);
if(rdir.size())
OLMsg::SetOnelabString(name + "/RemoteDir", rdir, false);
}
else{
std::string in = OLMsg::GetOnelabString(name + "/HostName");
if(in.size()){
std::vector<std::string> split = SplitOLHostName(in);
host = split[0];
rdir = split[1];
OLMsg::SetOnelabString(name + "/HostName", host);
OLMsg::SetOnelabString(name + "/HostName", host, false);
if(rdir.size())
OLMsg::SetOnelabString(name + "/RemoteDir", rdir);
}
OLMsg::SetOnelabString(name + "/RemoteDir", rdir, false);
}
if(!findCommandLine(name,host)){
if(OLMsg::hasGmsh){
onelab::string str;
str.setName(name + "/HostName");
str.setVisible(true);
str.setAttribute("Highlight","Ivory");
set(str);
OLMsg::Error("No hostname found for remote client <%s>",name.c_str());
......@@ -1473,9 +1479,10 @@ void MetaModel::client_sentence(const std::string &name,
std::getline (std::cin,in);
if(in.size()){
std::vector<std::string> split = SplitOLHostName(in);
OLMsg::SetOnelabString(name + "/HostName", split[0]);
OLMsg::SetOnelabString(name + "/HostName", split[0], false);
if(split[1].size())
OLMsg::SetOnelabString(name + "/RemoteDir", split[1]);
OLMsg::SetOnelabString(name + "/RemoteDir", split[1], false);
}
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment