/* * This file was generated by the CommonAPI Generators. * Used org.genivi.commonapi.core 2.1.2.201309301424. * Used org.franca.core 0.8.9.201308271211. * * Copyright (C) 2012, BMW AG * * This file is part of GENIVI Project AudioManager. * * Contributions are licensed to the GENIVI Alliance under one or more * Contribution License Agreements. * * \copyright * 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/. * * * \author Aleksandar Donchev, aleksander.donchev@partner.bmw.de BMW 2013 * * For further information see http://www.genivi.org/. */ /** * @author Christian Linke */ #ifndef ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_PROXY_H_ #define ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_PROXY_H_ #include "LifeCycleConsumerProxyBase.h" #if !defined (COMMONAPI_INTERNAL_COMPILATION) #define COMMONAPI_INTERNAL_COMPILATION #endif #undef COMMONAPI_INTERNAL_COMPILATION namespace org { namespace genivi { namespace NodeStateManager { template class LifeCycleConsumerProxy: virtual public LifeCycleConsumer, virtual public LifeCycleConsumerProxyBase, public _AttributeExtensions... { public: LifeCycleConsumerProxy(std::shared_ptr delegate); ~LifeCycleConsumerProxy(); /** * Calls LifecycleRequest with synchronous semantics. * * All const parameters are input parameters to this method. * All non-const parameters will be filled with the returned values. * The CallStatus will be filled when the method returns and indicate either * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus * will be set. */ virtual void LifecycleRequest(const uint32_t& Request, const uint32_t& RequestId, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); /** * Calls LifecycleRequest with asynchronous semantics. * * The provided callback will be called when the reply to this call arrives or * an error occurs during the call. The CallStatus will indicate either "SUCCESS" * or which type of error has occurred. In case of any error, ONLY the CallStatus * will have a defined value. * The std::future returned by this method will be fulfilled at arrival of the reply. * It will provide the same value for CallStatus as will be handed to the callback. */ virtual std::future LifecycleRequestAsync(const uint32_t& Request, const uint32_t& RequestId, LifecycleRequestAsyncCallback callback); /** * Returns the CommonAPI address of the remote partner this proxy communicates with. */ virtual std::string getAddress() const; /** * Returns the domain of the remote partner this proxy communicates with. */ virtual const std::string& getDomain() const; /** * Returns the service ID of the remote partner this proxy communicates with. */ virtual const std::string& getServiceId() const; /** * Returns the instance ID of the remote partner this proxy communicates with. */ virtual const std::string& getInstanceId() const; /** * Returns true if the remote partner for this proxy is currently known to be available. */ virtual bool isAvailable() const; /** * Returns true if the remote partner for this proxy is available. */ virtual bool isAvailableBlocking() const; /** * Returns the wrapper class that is used to (de-)register for notifications about * the availability of the remote partner of this proxy. */ virtual CommonAPI::ProxyStatusEvent& getProxyStatusEvent(); /** * Returns the wrapper class that is used to access version information of the remote * partner of this proxy. */ virtual CommonAPI::InterfaceVersionAttribute& getInterfaceVersionAttribute(); private: std::shared_ptr delegate_; }; // // LifeCycleConsumerProxy Implementation // template LifeCycleConsumerProxy<_AttributeExtensions...>::LifeCycleConsumerProxy(std::shared_ptr delegate): delegate_(std::dynamic_pointer_cast(delegate)), _AttributeExtensions(*(std::dynamic_pointer_cast(delegate)))... { } template LifeCycleConsumerProxy<_AttributeExtensions...>::~LifeCycleConsumerProxy() { } template void LifeCycleConsumerProxy<_AttributeExtensions...>::LifecycleRequest(const uint32_t& Request, const uint32_t& RequestId, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { delegate_->LifecycleRequest(Request, RequestId, callStatus, ErrorCode); } template std::future LifeCycleConsumerProxy<_AttributeExtensions...>::LifecycleRequestAsync(const uint32_t& Request, const uint32_t& RequestId, LifecycleRequestAsyncCallback callback) { return delegate_->LifecycleRequestAsync(Request, RequestId, callback); } template std::string LifeCycleConsumerProxy<_AttributeExtensions...>::getAddress() const { return delegate_->getAddress(); } template const std::string& LifeCycleConsumerProxy<_AttributeExtensions...>::getDomain() const { return delegate_->getDomain(); } template const std::string& LifeCycleConsumerProxy<_AttributeExtensions...>::getServiceId() const { return delegate_->getServiceId(); } template const std::string& LifeCycleConsumerProxy<_AttributeExtensions...>::getInstanceId() const { return delegate_->getInstanceId(); } template bool LifeCycleConsumerProxy<_AttributeExtensions...>::isAvailable() const { return delegate_->isAvailable(); } template bool LifeCycleConsumerProxy<_AttributeExtensions...>::isAvailableBlocking() const { return delegate_->isAvailableBlocking(); } template CommonAPI::ProxyStatusEvent& LifeCycleConsumerProxy<_AttributeExtensions...>::getProxyStatusEvent() { return delegate_->getProxyStatusEvent(); } template CommonAPI::InterfaceVersionAttribute& LifeCycleConsumerProxy<_AttributeExtensions...>::getInterfaceVersionAttribute() { return delegate_->getInterfaceVersionAttribute(); } } // namespace NodeStateManager } // namespace genivi } // namespace org #endif // ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_PROXY_H_