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