summaryrefslogtreecommitdiff
path: root/include/CommonAPI/AttributeExtension.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/AttributeExtension.hpp
parent1d83eb38e546e0165f1ad6821f04445b2b9b19d2 (diff)
downloadgenivi-common-api-runtime-6c463fcc3dcee619925f08ea09e19a86b9e581cc.tar.gz
CommonAPI 3.1.1
Diffstat (limited to 'include/CommonAPI/AttributeExtension.hpp')
-rw-r--r--include/CommonAPI/AttributeExtension.hpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/include/CommonAPI/AttributeExtension.hpp b/include/CommonAPI/AttributeExtension.hpp
new file mode 100644
index 0000000..5135924
--- /dev/null
+++ b/include/CommonAPI/AttributeExtension.hpp
@@ -0,0 +1,54 @@
+// 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/.
+
+#if !defined (COMMONAPI_INTERNAL_COMPILATION)
+#error "Only <CommonAPI/CommonAPI.h> can be included directly, this file may disappear or change contents."
+#endif
+
+#ifndef COMMON_API_DBUS_ATTRIBUTE_EXTENSION_HPP_
+#define COMMON_API_DBUS_ATTRIBUTE_EXTENSION_HPP_
+
+#include <cstdint>
+#include <functional>
+#include <memory>
+
+#include <CommonAPI/Event.hpp>
+#include <CommonAPI/Types.hpp>
+
+#ifdef WIN32
+#include "Attribute.hpp"
+#endif
+
+namespace CommonAPI {
+
+template<typename _AttributeType>
+class AttributeExtension {
+ public:
+ _AttributeType& getBaseAttribute() {
+ return baseAttribute_;
+ }
+
+ protected:
+ AttributeExtension() = delete;
+ AttributeExtension(_AttributeType& baseAttribute): baseAttribute_(baseAttribute) {
+ }
+
+ _AttributeType& baseAttribute_;
+};
+
+#ifdef WIN32
+template<typename _AttributeType>
+class WINDummyAttributeExtension : public CommonAPI::AttributeExtension<_AttributeType> {
+ typedef AttributeExtension<_AttributeType> __baseClass_t;
+ WINDummyAttribute dummyAttribute;
+public:
+ WINDummyAttributeExtension() {};
+ ~WINDummyAttributeExtension() {}
+};
+#endif
+
+} // namespace CommonAPI
+
+#endif // COMMON_API_DBUS_ATTRIBUTE_EXTENSION_HPP_