diff options
author | Jürgen Gehring <juergen.gehring@bmw.de> | 2015-06-11 06:57:47 -0700 |
---|---|---|
committer | Jürgen Gehring <juergen.gehring@bmw.de> | 2015-06-11 06:57:47 -0700 |
commit | 6c463fcc3dcee619925f08ea09e19a86b9e581cc (patch) | |
tree | 17e765e0623c58778150605d1cd0340c658ce6ab /include/CommonAPI/Factory.hpp | |
parent | 1d83eb38e546e0165f1ad6821f04445b2b9b19d2 (diff) | |
download | genivi-common-api-runtime-6c463fcc3dcee619925f08ea09e19a86b9e581cc.tar.gz |
CommonAPI 3.1.1
Diffstat (limited to 'include/CommonAPI/Factory.hpp')
-rw-r--r-- | include/CommonAPI/Factory.hpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/include/CommonAPI/Factory.hpp b/include/CommonAPI/Factory.hpp new file mode 100644 index 0000000..df8354d --- /dev/null +++ b/include/CommonAPI/Factory.hpp @@ -0,0 +1,58 @@ +// Copyright (C) 2013-2015 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#ifndef COMMONAPI_FACTORY_HPP_ +#define COMMONAPI_FACTORY_HPP_ + +#include <functional> +#include <memory> +#include <vector> + +#include <CommonAPI/Export.hpp> +#include <CommonAPI/Types.hpp> + +namespace CommonAPI { + +class MainLoopContext; +class Proxy; +class StubBase; + +class COMMONAPI_EXPORT Factory { +public: + typedef std::function<void(std::vector<std::string> &)> AvailableInstancesCbk_t; + typedef std::function<void(bool)> InstanceAliveCbk_t; + + virtual ~Factory() {}; + + virtual std::shared_ptr<Proxy> createProxy(const std::string &_domain, + const std::string &_interface, + const std::string &_instance, + const ConnectionId_t &_connectionId) = 0; + + virtual std::shared_ptr<Proxy> createProxy(const std::string &_domain, + const std::string &_interface, + const std::string &_instance, + std::shared_ptr<MainLoopContext> mainLoopContext) = 0; + + virtual bool registerStub(const std::string &_domain, + const std::string &_interface, + const std::string &_instance, + std::shared_ptr<StubBase> _stub, + const ConnectionId_t &_connectionId) = 0; + + virtual bool registerStub(const std::string &_domain, + const std::string &_interface, + const std::string &_instance, + std::shared_ptr<StubBase> _stub, + std::shared_ptr<MainLoopContext> mainLoopContext) = 0; + + virtual bool unregisterStub(const std::string &_domain, + const std::string &_interface, + const std::string &_instance) = 0; +}; + +} // namespace CommonAPI + +#endif // COMMONAPI_FACTORY_HPP_ |