]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/Events/Events_InfoMessage.cpp
Salome HOME
Issue #1843: Set parameters to message on request of the message string
[modules/shaper.git] / src / Events / Events_InfoMessage.cpp
index e2a4d988220f5858a04eb3f338964bfe9751d705..92e4c7c253f8a317cdcf11f8cf33163f78e91c24 100644 (file)
@@ -31,3 +31,30 @@ void Events_InfoMessage::send()
   std::shared_ptr<Events_Message> aMsg(new Events_InfoMessage(*this));
   Events_Loop::loop()->send(aMsg); 
 }
+
+
+std::string insertParameters(const std::string& theString, const std::list<std::string>& theParams)
+{
+  std::string aResult = theString;
+  std::list<std::string>::const_iterator aIt;
+  int i;
+  char aBuf[20];
+  std::string aParam;
+  for (i=1, aIt = theParams.cbegin(); aIt != theParams.cend(); aIt++, i++) {
+    aParam = (*aIt);
+    sprintf(aBuf, "%d", i);
+    std::string aCode = std::string("%") + std::string(aBuf);
+    size_t aPos = aResult.find(aCode);
+    if (aPos != std::string::npos) {
+      std::string aFirst = aResult.substr(0, aPos);
+      std::string aLast = aResult.substr(aPos + aCode.length(), std::string::npos);
+      aResult = aFirst + aParam + aLast;
+    }
+  }
+  return aResult;
+}
+
+std::string Events_InfoMessage::messageString() const 
+{ 
+  return insertParameters(myMessage, myParameters); 
+}