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@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.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 LBTTRIGGERINGSYSTEMSETTINGSCHANGEEVENTNOTIFIER_H williamr@2: #define LBTTRIGGERINGSYSTEMSETTINGSCHANGEEVENTNOTIFIER_H williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: /** williamr@2: * Helper class to receive triggering system settings change event williamr@2: * through observer interface. williamr@2: * williamr@2: * @see RLbt::NotifyTriggeringSystemSettingChange williamr@2: * williamr@2: * @lib lbt.lib williamr@2: * williamr@2: * @since S60 5.1 williamr@2: */ williamr@2: class CLbtTriggeringSystemSettingsChangeEventNotifier : public CActive williamr@2: { williamr@2: public: williamr@2: /** williamr@2: * Construct a triggering system settings change event notifier object. williamr@2: * williamr@2: * When the object is constructed. The triggering williamr@2: * system settings change notification request is not williamr@2: * issued to the Location Triggering Server. Client williamr@2: * shall call williamr@2: * CLbtTriggeringSystemSettingsChangeEventNotifier::Start() williamr@2: * to start 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 triggering system setting williamr@2: * change 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 CLbtTriggeringSystemSettingsChangeEventNotifier* NewL( williamr@2: RLbt& aLbt, williamr@2: MLbtTriggeringSystemSettingsChangeEventObserver& 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 ~CLbtTriggeringSystemSettingsChangeEventNotifier(); williamr@2: williamr@2: /** williamr@2: * Start triggering system settings change event notification. williamr@2: * williamr@2: * After this function is called, when triggering williamr@2: * system settings are changed, 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: * triggering system settings change 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: CLbtTriggeringSystemSettingsChangeEventNotifier( williamr@2: RLbt& aLbt, williamr@2: MLbtTriggeringSystemSettingsChangeEventObserver& aObserver, williamr@2: TInt aPriority = CActive::EPriorityStandard ); williamr@2: williamr@2: /** williamr@2: * Symbian 2nd phase constructor williamr@2: */ williamr@2: void ConstructL(); williamr@2: williamr@2: private: williamr@2: /** williamr@2: * Triggering system setting. williamr@2: */ williamr@2: TLbtTriggeringSystemSettings iSettings; williamr@2: williamr@2: /** williamr@2: * Reference to Lbt subsession. williamr@2: */ williamr@2: RLbt& iLbt; williamr@2: williamr@2: /** williamr@2: * Reference to triggering system settings change observer, williamr@2: */ williamr@2: MLbtTriggeringSystemSettingsChangeEventObserver& iObserver; williamr@2: }; williamr@2: williamr@2: #endif //LBTTRIGGERINGSYSTEMSETTINGSCHANGEEVENTNOTIFIER_H