]> SALOME platform Git repositories - modules/gde.git/blob - projects/GDE_API_CPP/api/src/CommandTO.tpp
Salome HOME
FileService
[modules/gde.git] / projects / GDE_API_CPP / api / src / CommandTO.tpp
1 #ifndef GDE_COMMAND_TO_TPP
2 #define GDE_COMMAND_TO_TPP
3
4 #include <iostream>
5 #include <sstream>
6
7 template <typename T>
8 std::string
9 toString(const T& value)
10 {
11   std::ostringstream oss;
12   oss << value;
13   return oss.str();
14 }
15
16 template <typename T>
17 T
18 fromString(const std::string& valueString)
19 {
20   std::istringstream iss(valueString);
21   T value;
22   return iss >> value ? value : 0;
23 }
24
25 template <typename T>
26 T
27 gde::CommandTO::getParameter(const std::string& name)
28 {
29   if (_parameters.find(name) == _parameters.end()) {
30     std::cerr << "Unknown parameter: " << name << std::endl;
31     return 0;
32   }
33   else {
34     return fromString<T>(_parameters[name]);
35   }
36 }
37
38 template <typename T>
39 void
40 gde::CommandTO::setParameter(const std::string& name, const T& value, bool replaceIfExist)
41 {
42   if (replaceIfExist) {
43     _parameters[name] = toString(value);
44   }
45   else {
46     if (_parameters.find(name) != _parameters.end()) {
47       std::cerr << "Parameter already exists: " << name << std::endl;
48     }
49   }
50 }
51
52 #endif