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/Proxy.hpp | |
parent | 1d83eb38e546e0165f1ad6821f04445b2b9b19d2 (diff) | |
download | genivi-common-api-runtime-6c463fcc3dcee619925f08ea09e19a86b9e581cc.tar.gz |
CommonAPI 3.1.1
Diffstat (limited to 'include/CommonAPI/Proxy.hpp')
-rw-r--r-- | include/CommonAPI/Proxy.hpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/include/CommonAPI/Proxy.hpp b/include/CommonAPI/Proxy.hpp new file mode 100644 index 0000000..5b7d745 --- /dev/null +++ b/include/CommonAPI/Proxy.hpp @@ -0,0 +1,47 @@ +// 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 COMMONAPI_PROXY_HPP_ +#define COMMONAPI_PROXY_HPP_ + +#include <cstdint> +#include <memory> +#include <type_traits> + +#include <CommonAPI/Address.hpp> +#include <CommonAPI/Attribute.hpp> +#include <CommonAPI/Export.hpp> +#include <CommonAPI/Version.hpp> + +namespace CommonAPI { + +typedef Event<AvailabilityStatus> ProxyStatusEvent; +typedef ReadonlyAttribute<Version> InterfaceVersionAttribute; + +class Proxy { +public: + COMMONAPI_EXPORT virtual ~Proxy() {} + + COMMONAPI_EXPORT const Address &getAddress() const; + + COMMONAPI_EXPORT virtual bool isAvailable() const = 0; + + COMMONAPI_EXPORT virtual bool isAvailableBlocking() const = 0; + + COMMONAPI_EXPORT virtual ProxyStatusEvent& getProxyStatusEvent() = 0; + + COMMONAPI_EXPORT virtual InterfaceVersionAttribute& getInterfaceVersionAttribute() = 0; + +protected: + Address address_; +}; + +} // namespace CommonAPI + +#endif // COMMONAPI_PROXY_HPP_ |