diff options
author | Disch, Simon <simon_disch@mentor.com> | 2016-03-07 09:44:48 +0100 |
---|---|---|
committer | Disch, Simon <simon_disch@mentor.com> | 2016-03-07 09:45:53 +0100 |
commit | 9345fac016a33c61175e4a06675c20d8590dc201 (patch) | |
tree | 0934ba12e33faf11cd807ec24ba55a4ec78cbe54 /include/CommonAPI/ProxyManager.hpp | |
parent | 274ad1873235b333e1872ac98e7b382553fc7c8f (diff) | |
download | genivi-common-api-runtime-9345fac016a33c61175e4a06675c20d8590dc201.tar.gz |
CommonAPI 3.1.7
Diffstat (limited to 'include/CommonAPI/ProxyManager.hpp')
-rw-r--r-- | include/CommonAPI/ProxyManager.hpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/CommonAPI/ProxyManager.hpp b/include/CommonAPI/ProxyManager.hpp index 52d666c..c68e844 100644 --- a/include/CommonAPI/ProxyManager.hpp +++ b/include/CommonAPI/ProxyManager.hpp @@ -61,11 +61,26 @@ public: return NULL; } + template<template<typename ...> class ProxyClass_, typename ... AttributeExtensions_> + std::shared_ptr<ProxyClass_<AttributeExtensions_...> > + buildProxy(const std::string &_instance, std::shared_ptr<MainLoopContext> _context) { + std::shared_ptr<Proxy> proxy = createProxy(getDomain(), getInterface(), _instance, _context); + if (proxy) { + return std::make_shared<ProxyClass_<AttributeExtensions_...>>(proxy); + } + return NULL; + } + protected: COMMONAPI_EXPORT std::shared_ptr<Proxy> createProxy(const std::string &, const std::string &, const std::string &, const ConnectionId_t &_connection) const; + + COMMONAPI_EXPORT std::shared_ptr<Proxy> createProxy(const std::string &, + const std::string &, + const std::string &, + std::shared_ptr<MainLoopContext> _context) const; }; } // namespace CommonAPI |