diff --git a/contrib/onelab/OnelabClients.cpp b/contrib/onelab/OnelabClients.cpp index 4b2ea7d77291d5d65ac39f7cd919ab6eb3bba4ef..24f2eab93da87fdff23bf18937cb0166268c9a43 100644 --- a/contrib/onelab/OnelabClients.cpp +++ b/contrib/onelab/OnelabClients.cpp @@ -115,11 +115,11 @@ std::string localNetworkSolverClient::appendArguments(){ } else if(action == "check") { command.assign(" " + getString("Arguments") + " " + checkCommand) ; - command.append(" " + getSocketSwitch() + " " + getName() + " %s"); + command.append(" " + getSocketSwitch() + " \"" + getName() + "\" %s"); } else if(action == "compute"){ command.assign(" " + getString("Arguments") + " " + computeCommand); - command.append(" " + getSocketSwitch() + " " + getName() + " %s"); + command.append(" " + getSocketSwitch() + " \"" + getName() + "\" %s"); } else OLMsg::Error("appendArguments: Unknown Action <%s>", action.c_str()); diff --git a/contrib/onelab/OnelabMessage.cpp b/contrib/onelab/OnelabMessage.cpp index 8c78788b1eae2596d9ec78c1b0ecb2ac19df0392..a7b08a9c35a1cb93a8e799d616fc2e379d459179 100644 --- a/contrib/onelab/OnelabMessage.cpp +++ b/contrib/onelab/OnelabMessage.cpp @@ -118,8 +118,9 @@ void OLMsg::Error(const char *fmt, ...) vsnprintf(str, sizeof(str), fmt, args); va_end(args); - if(_callback) (*_callback)("Error", str); - if(_client) _client->Error(str); + //if(_callback) (*_callback)("Error", str); + //if(_client) _client->Error(str); + if(_onelabClient) _onelabClient->sendError(str); if(ALWAYS_TRUE){ if(_commSize > 1) @@ -142,8 +143,9 @@ void OLMsg::Warning(const char *fmt, ...) vsnprintf(str, sizeof(str), fmt, args); va_end(args); - if(_callback) (*_callback)("Warning", str); - if(_client) _client->Warning(str); + //if(_callback) (*_callback)("Warning", str); + //if(_client) _client->Warning(str); + if(_onelabClient) _onelabClient->sendWarning(str); if(ALWAYS_TRUE){ fprintf(stderr, "Warning : %s\n", str); @@ -161,8 +163,9 @@ void OLMsg::Info(const char *fmt, ...) vsnprintf(str, sizeof(str), fmt, args); va_end(args); - if(_callback) (*_callback)("Info", str); - if(_client) _client->Info(str); + //if(_callback) (*_callback)("Info", str); + //if(_client) _client->Info(str); + if(_onelabClient) _onelabClient->sendInfo(str); if(ALWAYS_TRUE){ fprintf(stdout, "Onelab : %s\n", str); diff --git a/contrib/onelab/OnelabMessage.h b/contrib/onelab/OnelabMessage.h index 1e7db7840d0b41d8cc83f1d546dc2564585a59b2..426ee93d880cb526695fc7f8df8226772fb6c82b 100644 --- a/contrib/onelab/OnelabMessage.h +++ b/contrib/onelab/OnelabMessage.h @@ -105,11 +105,11 @@ class OLMsg { static std::string GetLoaderName(){ return _loaderName; } static void SetGuiWaitFunction(void (*fct)(double time)); static void (*GetGuiWaitFunction())(double); + static void SetOnelabClient(onelab::client *client){ _onelabClient = client;} static void InitializeOnelab(const std::string &name); static void FinalizeOnelab(); - static void SetOnelabClient(onelab::client *client){ _onelabClient = client; } static void SetOnelabNumber(std::string name, double val, bool visible=true); static void GetOnelabNumber(std::string name, double *val); static double GetOnelabNumber(std::string name); diff --git a/contrib/onelab/metamodel.cpp b/contrib/onelab/metamodel.cpp index d8115671616c0849d995ad3047affae5bf3af9be..90093ddfe405b7ceb189530378170c46daebfd15 100644 --- a/contrib/onelab/metamodel.cpp +++ b/contrib/onelab/metamodel.cpp @@ -2,7 +2,7 @@ #include "metamodel.h" -void initializeMetamodel(const std::string &loaderName, onelab::client *client, void (*gui_wait_fct)(double time)) +void initializeMetamodel(const std::string &loaderName, onelab::client *olclient, void (*gui_wait_fct)(double time)) { //called by "metamodel_cb" //copies the Msg::_onelabClient to OLMsg::_onelabClient @@ -11,7 +11,7 @@ void initializeMetamodel(const std::string &loaderName, onelab::client *client, //Initilizes also the wait function the Gmsh Gui //so that Gmsh windows may remain active during client computations. OLMsg::SetLoaderName(loaderName); - OLMsg::SetOnelabClient(client); + OLMsg::SetOnelabClient(olclient); OLMsg::SetGuiWaitFunction(gui_wait_fct); } @@ -42,8 +42,11 @@ int metamodel(const std::string &action){ myModel->setTodo(todo); if(OLMsg::GetOnelabNumber("LOGFILES")){ - freopen("stdout.txt","w",stdout); - freopen("stderr.txt","w",stderr); + if(workingDir.size()) workingDir.append(dirSep); + std::string mystdout = workingDir + "stdout.txt"; + std::string mystderr = workingDir + "stderr.txt"; + freopen(mystdout.c_str(),"w",stdout); + freopen(mystderr.c_str(),"w",stderr); } //if not all clients have valid commandlines -> exit metamodel