williamr@2: /* williamr@2: * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * 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 williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: location triggering server client interface williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: #ifndef LBTTRIGGERFIRINGEVENTNOTIFIER_H williamr@2: #define LBTTRIGGERFIRINGEVENTNOTIFIER_H williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: /** williamr@2: * Helper class to receive trigger firing event williamr@2: * through observer interface. williamr@2: * williamr@2: * @see RLbt::NotifyTriggerFired williamr@2: * williamr@2: * @lib lbt.lib williamr@2: * williamr@2: * @since S60 5.1 williamr@2: */ williamr@2: williamr@2: class CLbtTriggerFiringEventNotifier : public CActive williamr@2: { williamr@2: public: williamr@2: /** williamr@2: * Construct a trigger firing event notifier object. williamr@2: * williamr@2: * When the object is constructed. The trigger firing event williamr@2: * notification request is not issued to the williamr@2: * Location Triggering Server. Client shall call williamr@2: * CLbtTriggerFiringEventNotifier::Start() to start williamr@2: * notification. williamr@2: * williamr@2: * @param[in] aLbt A referece to RLbt object. The subsession williamr@2: * must be opened. Otherwise a panic is raised. williamr@2: * @param[in] aObserver A referece to the williamr@2: * observer object to receive trigger firing event. williamr@2: * @param[in] aPriority An integer specifying the williamr@2: * priority of this active object. CActive::TPriority williamr@2: * defines a standard set of priorities. williamr@2: * williamr@2: * @panic LocTriggering ELbtServerBadHandle If the williamr@2: * subsession of aLbt is not opened. williamr@2: */ williamr@2: IMPORT_C static CLbtTriggerFiringEventNotifier* NewL( williamr@2: RLbt& aLbt, williamr@2: MLbtTriggerFiringEventObserver& aObserver, williamr@2: TInt aPriority = CActive::EPriorityStandard); williamr@2: williamr@2: /** williamr@2: * Destructor. williamr@2: * williamr@2: * If the notification is started, the williamr@2: * destructor will cancel the notification. williamr@2: */ williamr@2: IMPORT_C ~CLbtTriggerFiringEventNotifier(); williamr@2: williamr@2: /** williamr@2: * Start trigger firing event notification. williamr@2: * williamr@2: * After this function is called, when a williamr@2: * trigger is fired, the williamr@2: * client will be notified from the observer interface. williamr@2: * williamr@2: * Client shall call Cancel() function to stop the williamr@2: * trigger firing event notification. williamr@2: */ williamr@2: IMPORT_C void Start(); williamr@2: williamr@2: private: williamr@2: //Derived from CActive williamr@2: void RunL(); williamr@2: TInt RunError( TInt aError ); williamr@2: void DoCancel(); williamr@2: williamr@2: private: williamr@2: /** williamr@2: * Default constructor williamr@2: */ williamr@2: CLbtTriggerFiringEventNotifier( williamr@2: RLbt& aLbt, williamr@2: MLbtTriggerFiringEventObserver& aObserver, williamr@2: TInt aPriority = CActive::EPriorityStandard ); williamr@2: williamr@2: /** williamr@2: * Second phase constructor williamr@2: */ williamr@2: void ConstructL(); williamr@2: williamr@2: private: williamr@2: /** williamr@2: * Trigger fire info williamr@2: */ williamr@2: TLbtTriggerFireInfo iFiringEvent; williamr@2: williamr@2: /** williamr@2: * Reference to Lbt subsession. williamr@2: */ williamr@2: RLbt& iLbt; williamr@2: williamr@2: /** williamr@2: * Reference to trigger fire event observer williamr@2: */ williamr@2: MLbtTriggerFiringEventObserver& iObserver; williamr@2: }; williamr@2: williamr@2: #endif //LBTTRIGGERFIRINGEVENTNOTIFIER_H