/* * This file was generated by the CommonAPI Generators. * Used org.genivi.commonapi.core 2.1.5.201312121915. * Used org.franca.core 0.8.11.201401091023. * * 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/. */ /** * Routing Receive sendInterface description. * @author Christian Mueller */ #ifndef ORG_GENIVI_AM_Routing_Control_Observer_STUB_H_ #define ORG_GENIVI_AM_Routing_Control_Observer_STUB_H_ #include #include "RoutingControlObserver.h" #if !defined (COMMONAPI_INTERNAL_COMPILATION) #define COMMONAPI_INTERNAL_COMPILATION #endif #include #include #include #include #include #include #include #undef COMMONAPI_INTERNAL_COMPILATION namespace org { namespace genivi { namespace am { /** * Receives messages from remote and handles all dispatching of deserialized calls * to a stub for the service RoutingControlObserver. Also provides means to send broadcasts * and attribute-changed-notifications of observable attributes as defined by this service. * An application developer should not need to bother with this class. */ class RoutingControlObserverStubAdapter: virtual public CommonAPI::StubAdapter, public RoutingControlObserver { public: ///Notifies all remote listeners about a change of value of the attribute RoutingReady. virtual void fireRoutingReadyAttributeChanged(const am_RoutingReady_e& RoutingReady) = 0; virtual void deactivateManagedInstances() = 0; protected: /** * Defines properties for storing the ClientIds of clients / proxies that have * subscribed to the selective broadcasts */ }; /** * Defines the necessary callbacks to handle remote set events related to the attributes * defined in the IDL description for RoutingControlObserver. * For each attribute two callbacks are defined: * - a verification callback that allows to verify the requested value and to prevent setting * e.g. an invalid value ("onRemoteSet"). * - an action callback to do local work after the attribute value has been changed * ("onRemoteChanged"). * * This class and the one below are the ones an application developer needs to have * a look at if he wants to implement a service. */ class RoutingControlObserverStubRemoteEvent { public: virtual ~RoutingControlObserverStubRemoteEvent() { } }; /** * Defines the interface that must be implemented by any class that should provide * the service RoutingControlObserver to remote clients. * This class and the one above are the ones an application developer needs to have * a look at if he wants to implement a service. */ class RoutingControlObserverStub : public virtual CommonAPI::Stub { public: virtual ~RoutingControlObserverStub() { } virtual const CommonAPI::Version& getInterfaceVersion(std::shared_ptr clientId) = 0; /** * This attribute signals to the clients the current routing state. A client * should notify himself to this attribute in order to know the current state and * act accordingly. */ /// Provides getter access to the attribute RoutingReady virtual const am_RoutingReady_e& getRoutingReadyAttribute(const std::shared_ptr clientId) = 0; /** * acknowledges a asyncConnect */ /// This is the method that will be called on remote calls on the method ackConnect. virtual void ackConnect(const std::shared_ptr clientId, am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error) = 0; /** * acknowledges a asyncDisconnect */ /// This is the method that will be called on remote calls on the method ackDisconnect. virtual void ackDisconnect(const std::shared_ptr clientId, am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error) = 0; /** * acknowledges a asyncsetSinkVolume */ /// This is the method that will be called on remote calls on the method ackSetSinkVolumeChange. virtual void ackSetSinkVolumeChange(const std::shared_ptr clientId, am_Handle_s handle, am_volume_t volume, am_Error_e error) = 0; /** * acknowledges a asyncsetSourceVolume */ /// This is the method that will be called on remote calls on the method ackSetSourceVolumeChange. virtual void ackSetSourceVolumeChange(const std::shared_ptr clientId, am_Handle_s handle, am_volume_t volume, am_Error_e error) = 0; /** * acknowlegde for asyncSetSourceState */ /// This is the method that will be called on remote calls on the method ackSetSourceState. virtual void ackSetSourceState(const std::shared_ptr clientId, am_Handle_s handle, am_Error_e error) = 0; /** * acknowledges asyncSetSinkSoundProperties */ /// This is the method that will be called on remote calls on the method ackSetSinkSoundProperties. virtual void ackSetSinkSoundProperties(const std::shared_ptr clientId, am_Handle_s handle, am_Error_e error) = 0; /** * acknowledges asyncSetSinkSoundProperty */ /// This is the method that will be called on remote calls on the method ackSetSinkSoundProperty. virtual void ackSetSinkSoundProperty(const std::shared_ptr clientId, am_Handle_s handle, am_Error_e error) = 0; /** * acknowledges asyncSetSourceSoundProperties */ /// This is the method that will be called on remote calls on the method ackSetSourceSoundProperties. virtual void ackSetSourceSoundProperties(const std::shared_ptr clientId, am_Handle_s handle, am_Error_e error) = 0; /** * acknowledges asyncSetSourceSoundProperty */ /// This is the method that will be called on remote calls on the method ackSetSourceSoundProperty. virtual void ackSetSourceSoundProperty(const std::shared_ptr clientId, am_Handle_s handle, am_Error_e error) = 0; /** * acknowledges asyncCrossFade */ /// This is the method that will be called on remote calls on the method ackCrossFading. virtual void ackCrossFading(const std::shared_ptr clientId, am_Handle_s handle, am_HotSink_e hotSink, am_Error_e error) = 0; /** * acknowledges a volume tick. This can be used to display volumechanges during * ramps */ /// This is the method that will be called on remote calls on the method ackSourceVolumeTick. virtual void ackSourceVolumeTick(const std::shared_ptr clientId, am_Handle_s handle, am_sourceID_t sourceID, am_volume_t volume) = 0; /** * acknowledges a volume tick. This can be used to display volumechanges during * ramps */ /// This is the method that will be called on remote calls on the method ackSinkVolumeTick. virtual void ackSinkVolumeTick(const std::shared_ptr clientId, am_Handle_s handle, am_sinkID_t sinkID, am_volume_t volume) = 0; /** * This function returns the ID to the given domainName. If already a domain is * registered with this name, it will return the corresponding ID, if not it will * reserve an ID but not register the domain. The other parameters of the domain * will be overwritten when the domain is registered. (at)return E_OK on * success, E_UNKNOWN on error */ /// This is the method that will be called on remote calls on the method peekDomain. virtual void peekDomain(const std::shared_ptr clientId, std::string name, am_domainID_t& domainID, am_Error_e& error) = 0; /** * registers a domain (at)return E_OK on succes, E_ALREADY_EXISTENT if already * registered E_UNKOWN on error */ /// This is the method that will be called on remote calls on the method registerDomain. virtual void registerDomain(const std::shared_ptr clientId, am_Domain_s domainData, std::string returnBusname, std::string returnInterface, am_domainID_t& domainID, am_Error_e& error) = 0; /** * deregisters a domain. All sources, sinks, gateways and crossfaders from that * domain will be removed as well. (at)return E_OK on succes, E_NON_EXISTENT if * not found E_UNKOWN on error */ /// This is the method that will be called on remote calls on the method deregisterDomain. virtual void deregisterDomain(const std::shared_ptr clientId, am_domainID_t domainID, am_Error_e& error) = 0; /** * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already * registered E_UNKOWN on error */ /// This is the method that will be called on remote calls on the method registerGateway. virtual void registerGateway(const std::shared_ptr clientId, am_Gateway_s gatewayData, am_gatewayID_t& gatewayID, am_Error_e& error) = 0; /** * deregisters a gateway. Also removes all sinks and sources of the controlling * domain. (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on * error */ /// This is the method that will be called on remote calls on the method deregisterGateway. virtual void deregisterGateway(const std::shared_ptr clientId, am_gatewayID_t gatewayID, am_Error_e& error) = 0; /** * This function returns the ID to the given sinkName. If already a sink is * registered with this name, it will return the corresponding ID, if not it will * reserve an ID but not register the sink. The other parameters of the sink will * be overwritten when the sink is registered. (at)return E_OK on success, * E_UNKNOWN on error */ /// This is the method that will be called on remote calls on the method peekSink. virtual void peekSink(const std::shared_ptr clientId, std::string name, am_sinkID_t& sinkID, am_Error_e& error) = 0; /** * Registers a sink. If the sink is part of a gateway, the listconnectionFormats * is copied to the gatewayInformation (at)return E_OK on succes, * E_ALREADY_EXISTENT if already registered E_UNKOWN on error */ /// This is the method that will be called on remote calls on the method registerSink. virtual void registerSink(const std::shared_ptr clientId, am_Sink_s sinkData, am_sinkID_t& sinkID, am_Error_e& error) = 0; /** * deregisters a sink. (at)return E_OK on succes, E_NON_EXISTENT if not found * E_UNKOWN on error */ /// This is the method that will be called on remote calls on the method deregisterSink. virtual void deregisterSink(const std::shared_ptr clientId, am_sinkID_t sinkID, am_Error_e& error) = 0; /** * This function returns the ID to the given sourceName. If already a source is * registered with this name, it will return the corresponding ID, if not it will * reserve an ID but not register the source. The other parameters of the source * will be overwritten when the source is registered. (at)return E_OK on * success, E_UNKNOWN on error */ /// This is the method that will be called on remote calls on the method peekSource. virtual void peekSource(const std::shared_ptr clientId, std::string name, am_sourceID_t& sourceID, am_Error_e& error) = 0; /** * registers a source. If the source is part of a gateway, the * listconnectionFormats is copied to the gatewayInformation (at)return E_OK on * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID * already exists */ /// This is the method that will be called on remote calls on the method registerSource. virtual void registerSource(const std::shared_ptr clientId, am_Source_s sourceData, am_sourceID_t& sourceID, am_Error_e& error) = 0; /** * deregisters a source (at)return E_OK on succes, E_NON_EXISTENT if not found * E_UNKOWN on error */ /// This is the method that will be called on remote calls on the method deregisterSource. virtual void deregisterSource(const std::shared_ptr clientId, am_sourceID_t sourceID, am_Error_e& error) = 0; /** * this function registers a crossfader. (at)return E_OK on succes, * E_ALREADY_EXISTENT if already registered E_UNKOWN on error */ /// This is the method that will be called on remote calls on the method registerCrossfader. virtual void registerCrossfader(const std::shared_ptr clientId, am_Crossfader_s crossfaderData, am_crossfaderID_t& crossfaderID, am_Error_e& error) = 0; /** * this function deregisters a crossfader. removes all sources and sinks assiated * as well. (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on * error */ /// This is the method that will be called on remote calls on the method deregisterCrossfader. virtual void deregisterCrossfader(const std::shared_ptr clientId, am_crossfaderID_t crossfaderID, am_Error_e& error) = 0; /** * this function peeks a sourceclassID. It is used by the RoutingPlugins to * determine the SinkClassIDs of a sinkClass. (at)return E_OK on succes, * E_DATABASE_ERROR on error */ /// This is the method that will be called on remote calls on the method peekSourceClassID. virtual void peekSourceClassID(const std::shared_ptr clientId, std::string name, am_sourceClass_t& sourceClassID, am_Error_e& error) = 0; /** * this function peeks a sourceclassID. It is used by the RoutingPlugins to * determine the SinkClassIDs of a sinkClass. (at)return E_OK on succes, * E_DATABASE_ERROR on error */ /// This is the method that will be called on remote calls on the method peekSinkClassID. virtual void peekSinkClassID(const std::shared_ptr clientId, std::string name, am_sinkClass_t& sinkClassID, am_Error_e& error) = 0; /** * is called when a low level interrupt changes it status. */ /// This is the method that will be called on remote calls on the method hookInterruptStatusChange. virtual void hookInterruptStatusChange(const std::shared_ptr clientId, am_sourceID_t sourceID, am_InterruptState_e interruptState) = 0; /** * This hook is called when all elements from a domain are registered. Is used by * the Controller to know when all expected domains are finally registered */ /// This is the method that will be called on remote calls on the method hookDomainRegistrationComplete. virtual void hookDomainRegistrationComplete(const std::shared_ptr clientId, am_domainID_t domainID) = 0; /** * is called when a sink changes its availability */ /// This is the method that will be called on remote calls on the method hookSinkAvailablityStatusChange. virtual void hookSinkAvailablityStatusChange(const std::shared_ptr clientId, am_sinkID_t sinkID, am_Availability_s availability) = 0; /** * is called when a source changes its availability */ /// This is the method that will be called on remote calls on the method hookSourceAvailablityStatusChange. virtual void hookSourceAvailablityStatusChange(const std::shared_ptr clientId, am_sourceID_t sourceID, am_Availability_s availability) = 0; /** * is called when a domain changes its status. This used for early domains only */ /// This is the method that will be called on remote calls on the method hookDomainStateChange. virtual void hookDomainStateChange(const std::shared_ptr clientId, am_domainID_t domainID, am_DomainState_e domainState) = 0; /** * is called when the timinginformation (delay) changed for a connection. */ /// This is the method that will be called on remote calls on the method hookTimingInformationChanged. virtual void hookTimingInformationChanged(const std::shared_ptr clientId, am_connectionID_t connectionID, am_timeSync_t delay) = 0; /** * this function is used to send out all data that has been changed in an early * state. (at)return E_OK on success, E_UNKNOWN on error */ /// This is the method that will be called on remote calls on the method sendChangedData. virtual void sendChangedData(const std::shared_ptr clientId, am_EarlyData_L earlyData) = 0; /** * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the * gatewayID is not valid. */ /// This is the method that will be called on remote calls on the method updateGateway. virtual void updateGateway(const std::shared_ptr clientId, am_gatewayID_t gatewayID, am_ConnectionFormat_L listSourceFormats, am_ConnectionFormat_L listSinkFormats, am_Convertion_L convertionMatrix, am_Error_e& error) = 0; /** * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the * sinkID is not valid. */ /// This is the method that will be called on remote calls on the method updateSink. virtual void updateSink(const std::shared_ptr clientId, am_sinkID_t sinkID, am_sinkClass_t sinkClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error) = 0; /** * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the * sourceID in the struct is not valid. Please note that only the following * data out of am_Source_s have effect when they are * changed: sourceClassID, listSoundProperties, listConnectionFormats, * listMainSoundProperties */ /// This is the method that will be called on remote calls on the method updateSource. virtual void updateSource(const std::shared_ptr clientId, am_sourceID_t sourceID, am_sourceClass_t sourceClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error) = 0; /** * acknowledges a asyncSetSinkVolumes */ /// This is the method that will be called on remote calls on the method ackSetVolumes. virtual void ackSetVolumes(const std::shared_ptr clientId, am_Handle_s handle, am_Volumes_L listvolumes, am_Error_e error) = 0; /** * The acknowledge of the SinkNotificationConfiguration */ /// This is the method that will be called on remote calls on the method ackSinkNotificationConfiguration. virtual void ackSinkNotificationConfiguration(const std::shared_ptr clientId, am_Handle_s handle, am_Error_e error) = 0; /** * The acknowledge of the SourceNotificationConfiguration */ /// This is the method that will be called on remote calls on the method ackSourceNotificationConfiguration. virtual void ackSourceNotificationConfiguration(const std::shared_ptr clientId, am_Handle_s handle, am_Error_e error) = 0; /** * is called whenever a notified value needs to be send */ /// This is the method that will be called on remote calls on the method hookSinkNotificationDataChange. virtual void hookSinkNotificationDataChange(const std::shared_ptr clientId, am_sinkID_t sinkID, am_NotificationPayload_s payload) = 0; /** * is called whenever a notified value needs to be send */ /// This is the method that will be called on remote calls on the method hookSourceNotificationDataChange. virtual void hookSourceNotificationDataChange(const std::shared_ptr clientId, am_sourceID_t sourceID, am_NotificationPayload_s payload) = 0; /// This is the method that will be called on remote calls on the method confirmRoutingRundown. virtual void confirmRoutingRundown(const std::shared_ptr clientId, std::string domainName) = 0; using CommonAPI::Stub::initStubAdapter; typedef CommonAPI::Stub::StubAdapterType StubAdapterType; typedef CommonAPI::Stub::RemoteEventHandlerType RemoteEventHandlerType; }; } // namespace am } // namespace genivi } // namespace org #endif // ORG_GENIVI_AM_Routing_Control_Observer_STUB_H_