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/AttributeExtension.hpp | |
parent | 1d83eb38e546e0165f1ad6821f04445b2b9b19d2 (diff) | |
download | genivi-common-api-runtime-6c463fcc3dcee619925f08ea09e19a86b9e581cc.tar.gz |
CommonAPI 3.1.1
Diffstat (limited to 'include/CommonAPI/AttributeExtension.hpp')
-rw-r--r-- | include/CommonAPI/AttributeExtension.hpp | 54 |
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_ |