diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/sensrvchannelconditionlistener.h --- a/epoc32/include/sensrvchannelconditionlistener.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/sensrvchannelconditionlistener.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,100 @@ -sensrvchannelconditionlistener.h +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Condition listener call-back interface +* +*/ + + +#ifndef SENSRVCHANNELCONDITIONLISTENER_H +#define SENSRVCHANNELCONDITIONLISTENER_H + +#include +#include +#include + +/** +* Condition listener callback interface to indicate when a ConditionSet has been met. +* +* This class is for use with the CSensrvChannel::StartConditionListeningL() method. Clients wishing +* to use condition listening must inherit from this class and provide a reference to an instance of +* it in CSensrvChannel::StartConditionListeningL(). +* +* @see CSensrvChannel::StartConditionListeningL() +* @see CSensrvChannel::StopConditionListening() +* @see CSensrvChannel::AddConditionL() +* @see CSensrvChannel::RemoveConditionL() +* @lib sensrvclient.lib +* @since S60 5.0 +*/ +class MSensrvChannelConditionListener + { + public: + /** + * Callback implemented by a client so that they can be notified when a channel ConditionSet + * is met. If a client wants to use same ConditionSet after receiving this notification, the + * client must add ConditionSet again to the channel object. If the ConditionSet is no longer + * required the client can destroy it. + * + * If the ConditionSet contains more than one condition, it is not known which of the individual + * conditions in the set were met. + * + * Clients providing an implementation for this callback must ensure that the operation does not + * leave. If a leave does occur then the behaviour is undefined. + * + * @since S60 5.0 + * @param aChannel Channel associated with the listener + * @param aChannelConditionSet Channel ConditionSet that is met + * @param aValue Channel data value that met the condition + * @see CSensrvChannel::GetData() for example on how to retrive data from aValue + */ + virtual void ConditionMet( CSensrvChannel& aChannel, + CSensrvChannelConditionSet& aChannelConditionSet, + TDesC8& aValue ) = 0; + + /** + * Callback implemented by a client so that they can be notified when condition listening + * has failed. If the error is fatal the channel will be closed, the sensor server session + * has been terminated and the channel object is no longer useable. If the error is minor, + * some condition matches have potentially been missed, however listening is still active. + * + * Clients providing an implementation for this callback must ensure that the operation does not + * leave. If a leave does occur then the behaviour is undefined. + * + * @since S60 5.0 + * @param aChannel Channel associated with the listener + * @param aError The error severity + */ + virtual void ConditionError ( CSensrvChannel& aChannel, + TSensrvErrorSeverity aError ) = 0; + + /** + * Callback to future proof this API so that additional callbacks can be added in the future + * without breaking binary compatibility. + * + * @since S60 5.0 + * @param aInterfaceUid Identifier for the interface to be retrieved + * @param aInterface A reference to a pointer for the specified interface. Implementation sets + * aInterface to a valid pointer if the M-class identified by aInterfaceUid is supported, otherwise + * it is set to NULL on exit. + * @leave One of the system-wide error codes + */ + virtual void GetChannelConditionListenerInterfaceL( TUid aInterfaceUid, TAny*& aInterface ) = 0; + + }; + + + +#endif //SENSRVCHANNELCONDITIONLISTENER_H + +// End of File