summaryrefslogtreecommitdiff
path: root/include/CommonAPI/Factory.hpp
diff options
context:
space:
mode:
authorJürgen Gehring <juergen.gehring@bmw.de>2015-06-11 06:57:47 -0700
committerJürgen Gehring <juergen.gehring@bmw.de>2015-06-11 06:57:47 -0700
commit6c463fcc3dcee619925f08ea09e19a86b9e581cc (patch)
tree17e765e0623c58778150605d1cd0340c658ce6ab /include/CommonAPI/Factory.hpp
parent1d83eb38e546e0165f1ad6821f04445b2b9b19d2 (diff)
downloadgenivi-common-api-runtime-6c463fcc3dcee619925f08ea09e19a86b9e581cc.tar.gz
CommonAPI 3.1.1
Diffstat (limited to 'include/CommonAPI/Factory.hpp')
-rw-r--r--include/CommonAPI/Factory.hpp58
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_