Added version information to middleware
authorPhilip Rauwolf <rauwolf@itestra.de>
Fri, 13 Sep 2013 16:50:32 +0000 (18:50 +0200)
committerJohannes Schanda <schanda@itestra.de>
Wed, 18 Sep 2013 15:50:10 +0000 (17:50 +0200)
Struct "MiddlewareInfo" was expanded by a member variable "version".
Checks against this additional information still need to be implemented.
Fixed a possible mismatching on library names along the way.

src/CommonAPI/MiddlewareInfo.h
src/CommonAPI/utils.h

index ffbc21c..7a138b3 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <memory>
 #include <cstring>
+#include "types.h"
 
 
 namespace CommonAPI {
@@ -29,10 +30,14 @@ typedef std::shared_ptr<Runtime> (*MiddlewareRuntimeLoadFunction) ();
 struct MiddlewareInfo {
     const char* middlewareName_;
     MiddlewareRuntimeLoadFunction getInstance_;
+    Version version_;
 
-    MiddlewareInfo(const char* middlewareName, MiddlewareRuntimeLoadFunction middlewareRuntimeLoadFunction):
+    MiddlewareInfo(const char* middlewareName,
+                   MiddlewareRuntimeLoadFunction middlewareRuntimeLoadFunction,
+                   Version version):
         middlewareName_(middlewareName),
-        getInstance_(middlewareRuntimeLoadFunction) {}
+        getInstance_(middlewareRuntimeLoadFunction),
+        version_(version) {}
 };
 
 
index c1c1c54..7717103 100644 (file)
@@ -247,7 +247,7 @@ inline bool loadGenericLibrary(const std::string& wellKnownMiddlewareName, const
 
         const char* fileNamePtr = libraryName.c_str();
         while ((fileNamePtr = strchr(fileNamePtr + 1, '.'))) {
-            if (strncmp(".so", fileNamePtr, 3) == 0) {
+            if (strncmp(".so\0", fileNamePtr, 4) == 0 || strncmp(".so.", fileNamePtr, 4) == 0) {
                 break;
             }
         }