1 /* This Source Code Form is subject to the terms of the Mozilla Public
\r
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
\r
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
\r
4 #ifndef COMMONAPI_DBUS_DBUS_FACTORY_H_
\r
5 #define COMMONAPI_DBUS_DBUS_FACTORY_H_
\r
9 #include <CommonAPI/Factory.h>
\r
11 #include "CommonAPI/DBus/DBusStubAdapter.h"
\r
12 #include "DBusConnection.h"
\r
14 namespace CommonAPI {
\r
17 typedef std::shared_ptr<DBusProxy> (*DBusProxyFactoryFunction) (const char* busName, const char* objectPath, std::shared_ptr<DBusProxyConnection> dbusProxyConnection);
\r
18 typedef std::shared_ptr<DBusStubAdapter> (*DBusAdapterFactoryFunction) (std::string busName, std::string objectPath, std::shared_ptr<DBusProxyConnection> dbusProxyConnection, std::shared_ptr<StubBase> stubBase);
\r
20 class DBusFactory: public Factory {
\r
22 DBusFactory(std::shared_ptr<Runtime> runtime, const MiddlewareInfo* middlewareInfo);
\r
23 virtual ~DBusFactory();
\r
25 static void registerProxyFactoryMethod(std::string interfaceName, DBusProxyFactoryFunction proxyFactoryFunction);
\r
26 static void registerAdapterFactoryMethod(std::string interfaceName, DBusAdapterFactoryFunction adapterFactoryMethod);
\r
28 virtual std::vector<std::string> getAvailableServiceInstances(const std::string& serviceInterfaceName, const std::string& serviceDomainName = "local");
\r
30 virtual bool isServiceInstanceAlive(const std::string& serviceInstanceID, const std::string& serviceInterfaceName, const std::string& serviceDomainName = "local");
\r
32 virtual std::shared_ptr<Proxy> createProxy(const char* interfaceName, const std::string& participantId, const std::string& domain);
\r
34 virtual std::shared_ptr<StubAdapter> createAdapter(std::shared_ptr<StubBase> stubBase, const char* interfaceName, const std::string& participantId, const std::string& domain);
\r
37 std::shared_ptr<CommonAPI::DBus::DBusConnection> dbusConnection_;
\r
38 std::string acquiredConnectionName_;
\r
42 } // namespace CommonAPI
\r
44 #endif // COMMONAPI_DBUS_DBUS_FACTORY_H_
\r