summaryrefslogtreecommitdiff
path: root/include/CommonAPI/DBus/DBusProxyBase.hpp
diff options
context:
space:
mode:
authorJürgen Gehring <juergen.gehring@bmw.de>2015-06-01 07:57:07 -0700
committerJürgen Gehring <juergen.gehring@bmw.de>2015-06-01 07:57:07 -0700
commit54982071a99484488207ad3bd5e9391a15bffe02 (patch)
tree479c178ee629947cf0df65fc0e38f986f6ccdbc9 /include/CommonAPI/DBus/DBusProxyBase.hpp
parent45a6f65628a142bb8d37a3b72cb210b1f8c24a5f (diff)
downloadgenivi-common-api-dbus-runtime-54982071a99484488207ad3bd5e9391a15bffe02.tar.gz
CommonAPI-D-Bus 3.1.13.1.1
Diffstat (limited to 'include/CommonAPI/DBus/DBusProxyBase.hpp')
-rw-r--r--include/CommonAPI/DBus/DBusProxyBase.hpp72
1 files changed, 72 insertions, 0 deletions
diff --git a/include/CommonAPI/DBus/DBusProxyBase.hpp b/include/CommonAPI/DBus/DBusProxyBase.hpp
new file mode 100644
index 0000000..85c746c
--- /dev/null
+++ b/include/CommonAPI/DBus/DBusProxyBase.hpp
@@ -0,0 +1,72 @@
+// Copyright (C) 2014-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/.
+
+#if !defined (COMMONAPI_INTERNAL_COMPILATION)
+#error "Only <CommonAPI/CommonAPI.hpp> can be included directly, this file may disappear or change contents."
+#endif
+
+#ifndef COMMONAPI_DBUS_DBUSPROXYBASE_HPP_
+#define COMMONAPI_DBUS_DBUSPROXYBASE_HPP_
+
+#include <functional>
+#include <memory>
+#include <string>
+
+#include <CommonAPI/Export.hpp>
+#include <CommonAPI/Proxy.hpp>
+#include <CommonAPI/Types.hpp>
+
+#include <CommonAPI/DBus/DBusAddress.hpp>
+#include <CommonAPI/DBus/DBusProxyConnection.hpp>
+
+namespace CommonAPI {
+namespace DBus {
+
+class DBusAddress;
+
+class DBusProxyBase
+ : public virtual CommonAPI::Proxy {
+public:
+ COMMONAPI_EXPORT DBusProxyBase(const DBusAddress &_address,
+ const std::shared_ptr<DBusProxyConnection> &_connection);
+ COMMONAPI_EXPORT virtual ~DBusProxyBase() {}
+
+ COMMONAPI_EXPORT const DBusAddress &getDBusAddress() const;
+ COMMONAPI_EXPORT const std::shared_ptr<DBusProxyConnection> &getDBusConnection() const;
+
+ COMMONAPI_EXPORT DBusMessage createMethodCall(const std::string &_method,
+ const std::string &_signature = "") const;
+
+ COMMONAPI_EXPORT DBusProxyConnection::DBusSignalHandlerToken addSignalMemberHandler(
+ const std::string& signalName,
+ const std::string& signalSignature,
+ DBusProxyConnection::DBusSignalHandler* dbusSignalHandler,
+ const bool justAddFilter = false);
+
+ COMMONAPI_EXPORT DBusProxyConnection::DBusSignalHandlerToken addSignalMemberHandler(
+ const std::string &objectPath,
+ const std::string &interfaceName,
+ const std::string &signalName,
+ const std::string &signalSignature,
+ DBusProxyConnection::DBusSignalHandler *dbusSignalHandler,
+ const bool justAddFilter = false);
+
+ COMMONAPI_EXPORT bool removeSignalMemberHandler(
+ const DBusProxyConnection::DBusSignalHandlerToken &_token,
+ const DBusProxyConnection::DBusSignalHandler *_handler = NULL);
+
+ COMMONAPI_EXPORT virtual void init() = 0;
+
+ private:
+ COMMONAPI_EXPORT DBusProxyBase(const DBusProxyBase &) = delete;
+
+ DBusAddress dbusAddress_;
+ std::shared_ptr<DBusProxyConnection> connection_;
+};
+
+} // namespace DBus
+} // namespace CommonAPI
+
+#endif // COMMONAPI_DBUS_DBUSPROXYBASE_HPP_