diff -r 000000000000 -r 667063e416a2 locationtriggering/ltstrategypluginapi/inc/lbtstrategybase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/locationtriggering/ltstrategypluginapi/inc/lbtstrategybase.h Tue Feb 02 01:06:48 2010 +0200 @@ -0,0 +1,188 @@ +/* +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Base class for location acquisition strategy implmentations. +* +*/ + + + +#ifndef C_LBTSTRATEGYBASE_H +#define C_LBTSTRATEGYBASE_H + + +//#include +#include + +#include "lbttriggeringsupervisionobserver.h" + + +class CLbtBaseStrategyExtension; + + +const TUid KLocAcquisitionStrategyInterfaceUid = { 0x10283133 }; + + +/** + * Abstract base class for location acquisition strategy plug-ins implementation. + * + * A strategy plug-in is responsible for the trigger supervision process, + * i.e. acquiring locations with suitable intervals and providing notifications + * when triggers are fired. + * + * A location acquisition strategy plug-in must implement a subclass of + * this base class. This base class defines interface between Location + * Triggering Server and the strategy plug-in. + * + * @lib ltstrategypluginapi.lib + * @since S60 4.0 + */ +class CLbtStrategyBase : public CBase + + { + + public: // Constructors and destructor + + /** + * Creates a new instance of a strategy implementation. + * + * @param[in] aConstructionParameters Construction parameters for + * CLbtBaseStrategy. Must by passed to BaseConstructL() by the + * strategy implementation. + * @return The strategy implementation. + */ + IMPORT_C static CLbtStrategyBase* NewL( + TAny* aConstructionParameters ); + + /** + * Destructor. + */ + IMPORT_C ~CLbtStrategyBase(); + + protected: // Constructors + + /** + * C++ default constructor. + */ + IMPORT_C CLbtStrategyBase(); + + /** + * Creates the internals of the strategy. + * + * This function must be called first in the strategy's + * ConstructL() method. + * + * @param[in] aConstructionParameters The construction parameters supplied + * in the factory call. + */ + IMPORT_C void BaseConstructL( TAny* aConstructionParameters ); + + public: // New functions + + /** + * Start supervision process. + * + * This function must be implemented by the strategy plug-in. + * Location Triggering Server calls this function to start supervision + * process. If the supervision process is already started when this + * method is called, location acquisition strategy plug-in shall do + * nothing. + */ + IMPORT_C virtual void StartSupervision() = 0; + + /** + * Stop supervision process. + * + * This function must be implemented by the strategy plug-in. + * Location Triggering Server calls this function to stop + * supervision process. The strategy plug-in shall release + * all resources used for supervision process when this function + * is called. + * + * If the supervision process is not started + * when this method is called, location acquisition strategy plug-in + * shall do nothing. + */ + IMPORT_C virtual void StopSupervision() = 0; + + /** + * Inform Location Triggering Server that a trigger shall be + * fired. + * + * When a trigger is fired, the strategy plug-in calls this + * function to inform Location Triggering Server. + * + * When more than one trigger is fired simultaneously, strategy + * plug-in shall call this function separately for each the + * fired trigger. + * + * @param[in] aId The ID of the firing trigger. + * @param[in] aPosInfo The position information associated with the firing + * event. Only basic position information is returned in this parameter. + */ + IMPORT_C void TriggerFiredL( CLbtGeoAreaBase::TGeoAreaType aAreaType,TLbtTriggerId aId, + const TPositionInfo& aPosInfo ); + + /** + * Inform Location Triggering Server about the location + * triggering supervision dynamic information. + * + * Location acquisition strategy plug-in shall use this + * method to update the supervision dynamic information to Location + * Triggering Server every time a location request is completed. + * + * @param[in] aDynInfo Contains the new triggering supervision + * dynamic information. + */ + IMPORT_C void SetTriggeringSupervisionDynamicInfo( + const TLbtStrategySupervisionDynamicInfo& aDynInfo); + + /** + * Inform location acquisition strategy plug-in that system settings + * related to trigger supervision are changed. + * + * This function must be implemented by the strategy plug-in. + * Location Triggering Server calls this function every time when + * triggering supervision settings is change. + */ + virtual void TriggeringSupervisionSettingsChanged() = 0; + + /** + * Get system settings related to triggering supervision from + * Location Triggering Server. + * + * @param[out] aSettings In return, contains system settings + * related to triggering supervision. + */ + IMPORT_C void GetTriggeringSupervisionSettings( + TLbtStrategyTriggeringSupervisionSettings& aSettings); + + private: + + // Reserved for future expansion + IMPORT_C virtual void CLbtStrategy_Reserved1(); + + IMPORT_C virtual void CLbtStrategy_Reserved2(); + + private: // Data + + TUid iDtorIdKey; + + CLbtBaseStrategyExtension* iExtension; + + MLbtTriggeringSupervisionObserver* iStrategyObserver; + + }; + + +#endif // C_LBTSTRATEGYBASE_H