summaryrefslogtreecommitdiff
path: root/include/CommonAPI/Deployable.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/Deployable.hpp
parent1d83eb38e546e0165f1ad6821f04445b2b9b19d2 (diff)
downloadgenivi-common-api-runtime-6c463fcc3dcee619925f08ea09e19a86b9e581cc.tar.gz
CommonAPI 3.1.1
Diffstat (limited to 'include/CommonAPI/Deployable.hpp')
-rw-r--r--include/CommonAPI/Deployable.hpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/include/CommonAPI/Deployable.hpp b/include/CommonAPI/Deployable.hpp
new file mode 100644
index 0000000..7a9002c
--- /dev/null
+++ b/include/CommonAPI/Deployable.hpp
@@ -0,0 +1,59 @@
+// 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.h> can be included directly, this file may disappear or change contents."
+#endif
+
+#ifndef COMMONAPI_DEPLOYABLE_HPP_
+#define COMMONAPI_DEPLOYABLE_HPP_
+
+namespace CommonAPI {
+
+struct DeployableBase {
+};
+
+template<typename _Type, typename _TypeDepl>
+struct Deployable : DeployableBase
+{
+ Deployable(const _TypeDepl *_depl = nullptr)
+ : depl_(const_cast<_TypeDepl *>(_depl)) {
+ }
+
+ Deployable(const _Type &_value, const _TypeDepl *_depl)
+ : value_(_value),
+ depl_(const_cast<_TypeDepl *>(_depl)) {
+ };
+
+ Deployable<_Type, _TypeDepl>& operator=(const Deployable<_Type, _TypeDepl> &_source) {
+ value_ = _source.value_;
+ depl_ = _source.depl_;
+ return (*this);
+ }
+
+ operator _Type() const {
+ return value_;
+ }
+
+ const _Type &getValue() const {
+ return value_;
+ }
+
+ _Type &getValue() {
+ return value_;
+ }
+
+ const _TypeDepl *getDepl() const {
+ return depl_;
+ }
+
+ protected:
+ _Type value_;
+ _TypeDepl *depl_;
+};
+
+} // namespace CommonAPI
+
+#endif // COMMONAPI_DEPLOYABLE_HPP_