Fix for inherited interfaces
authorStefan Laner <laner@itestra.de>
Sat, 23 Nov 2013 00:10:53 +0000 (01:10 +0100)
committerStefan Laner <laner@itestra.de>
Sat, 23 Nov 2013 00:10:53 +0000 (01:10 +0100)
src/CommonAPI/Factory.hpp
src/CommonAPI/Stub.h

index 6ba73f6..865144c 100644 (file)
@@ -18,7 +18,7 @@ Factory::buildProxy(const std::string& participantId,
                     const std::string& serviceName,
                     const std::string& domain) {
 
-    std::shared_ptr<Proxy> abstractMiddlewareProxy = createProxy(_ProxyClass<_AttributeExtensions...>::getInterfaceId(), participantId, serviceName, domain);
+    std::shared_ptr<Proxy> abstractMiddlewareProxy = createProxy(_ProxyClass<_AttributeExtensions...>::InterfaceType::getInterfaceId(), participantId, serviceName, domain);
     if (abstractMiddlewareProxy) {
         return std::make_shared<_ProxyClass<_AttributeExtensions...>>(abstractMiddlewareProxy);
     }
index d724548..f09790b 100644 (file)
@@ -35,7 +35,7 @@ struct StubBase {
 };
 
 template<typename _StubAdapter, typename _StubRemoteEventHandler>
-class Stub: public StubBase {
+class Stub: public virtual StubBase {
     static_assert(std::is_base_of<StubAdapter, _StubAdapter>::value, "Invalid StubAdapter Class!");
     public:
     typedef _StubAdapter StubAdapterType;
@@ -45,6 +45,12 @@ class Stub: public StubBase {
     }
 
     virtual _StubRemoteEventHandler* initStubAdapter(const std::shared_ptr<_StubAdapter>& stubAdapter) = 0;
+    virtual const std::shared_ptr<_StubAdapter> getStubAdapter() {
+        return stubAdapter_;
+    }
+    protected:
+    std::shared_ptr<_StubAdapter> stubAdapter_;
+
 };
 
 enum SelectiveBroadcastSubscriptionEvent {