summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/Util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/Util.cpp')
-rw-r--r--cpp/src/IceGrid/Util.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/cpp/src/IceGrid/Util.cpp b/cpp/src/IceGrid/Util.cpp
index b9379258755..895dc8cbde7 100644
--- a/cpp/src/IceGrid/Util.cpp
+++ b/cpp/src/IceGrid/Util.cpp
@@ -72,3 +72,60 @@ IceGrid::getProperty(const PropertyDescriptorSeq& properties, const string& name
}
return def;
}
+
+PropertyDescriptor
+IceGrid::createProperty(const string& name, const string& value)
+{
+ PropertyDescriptor prop;
+ prop.name = name;
+ prop.value = value;
+ return prop;
+}
+
+int
+IceGrid::getMMVersion(const string& version)
+{
+ string::size_type minorPos = version.find('.');
+ if(minorPos == string::npos || minorPos >= version.size())
+ {
+ return -1;
+ }
+ string::size_type patchPos = version.find('.', minorPos + 1);
+
+ int v, ver;
+
+ istringstream major(version.substr(0, minorPos));
+ major >> v;
+ if(major.fail() || v > 99 || v < 1)
+ {
+ return -1;
+ }
+ ver = v;
+ ver *= 100;
+
+ istringstream minor(version.substr(minorPos + 1, patchPos != string::npos ? patchPos : version.size()));
+ minor >> v;
+ if(minor.fail() || v > 99 || v < 0)
+ {
+ return -1;
+ }
+ ver += v;
+ ver *= 100;
+
+ //
+ // No need to get the patch number, we're only interested in
+ // MAJOR.MINOR
+ //
+// if(patchPos != string::npos)
+// {
+// istringstream patch(version.substr(patchPos + 1));
+// patch >> v;
+// if(patch.fail() || v > 99 || v < 0)
+// {
+// return -1;
+// }
+// ver += v;
+// }
+
+ return ver;
+}