diff -r 000000000000 -r 667063e416a2 locsrv_pub/location_triggering_api/inc/lbttriggerfilterbyarea.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/locsrv_pub/location_triggering_api/inc/lbttriggerfilterbyarea.h Tue Feb 02 01:06:48 2010 +0200 @@ -0,0 +1,156 @@ +/* +* 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: Representing filter based on the geographical area +* +*/ + + +#ifndef LBTTRIGGERFILTERBYAREA_H +#define LBTTRIGGERFILTERBYAREA_H + +#include + +class CLbtGeoAreaBase; + +/** + * Class representing filter based on the geographical area. + * + * This class defines the geographical area filter used in retrieving triggers + * from Location Triggering Server. When this filter is used, only triggers that + * are inside the defined area will be retrieved. The area can be a geographical + * circle or rectangle. + * + * If the area is not set and the filter is used in listing triggers, no trigger + * will be returned. + * + * If the center of the geographical circular area is not specified(NaN), + * latest acquired location of the Location Triggering Server is + * used as the center. If the radius of the geographical circular area is zero, + * no triggers will be retrieved. + * + * @lib lbt.lib + * @since S60 5.1 + */ +class CLbtTriggerFilterByArea : public CLbtTriggerFilterBase + { +public: + /** + * Returns CLbtTriggerFilterBase::EFilterByArea. + * + * @return CLbtTriggerFilterBase::EFilterByArea. + */ + IMPORT_C virtual TFilterType Type() const; + + /** + * Constructs a new instance of CLbtTriggerFilterByArea. + * + * @param[in] aArea Pointer to the geographical area object. + * Ownership of aArea is transferred to this object. + * If the center of the geographical circular area is omitted, + * latest acquired location is used when retrieving triggers. + * @return New instance of CLbtTriggerFilterByArea. + */ + IMPORT_C static CLbtTriggerFilterByArea* NewL( + CLbtGeoAreaBase* aArea ); + + /** + * Constructs a new instance of CLbtTriggerFilterByArea. + * The returned object has no geographical area set. + * + * @return New instance of CLbtTriggerFilterByArea. + */ + IMPORT_C static CLbtTriggerFilterByArea* NewL(); + + /** + * Constructs a new instance of CLbtTriggerFilterByArea + * and pushes it onto cleanup stack. + * The returned object has no geographical area set. + * + * @return New instance of CLbtTriggerFilterByArea. + */ + IMPORT_C static CLbtTriggerFilterByArea* NewLC(); + + /** + * Destructor. + */ + IMPORT_C virtual ~CLbtTriggerFilterByArea(); + + /** + * Gets the geographical area, inside which the triggers are + * retrieved. + * + * If the area has not been set, this function returns NULL. + * + * @return The pointer to the geographical area object. Ownership is not + * transferred to the client. + */ + IMPORT_C CLbtGeoAreaBase* Area(); + + /** + * Sets the geographical area in the filter. Only triggers that have + * triggering area inside the defined area are retrieved. + * + * @param[in] aArea The pointer to the geographical area object. + * Ownership of aArea is transferred to this object. + * If the area is a geographical circular area and the center of the + * area is not set, latest acquired location is used by Location + * Triggering Server when retrieving triggers. + */ + IMPORT_C void SetArea( CLbtGeoAreaBase* aArea ); + +protected: + /** + * Externalize method that subclass must implement. + * @param[in] aStream Stream to which the object should be externalized. + */ + virtual void DoExternalizeL(RWriteStream& aStream) const ; + + /** + * Internalize method that subclass must implement. + * @param[in] aStream Stream from which the object should be internalized. + */ + virtual void DoInternalizeL(RReadStream& aStream) ; + + +private: + /** + * Default constructor. + */ + void ConstructL(CLbtGeoAreaBase* aArea); + + /** + * By default, prohibit copy constructor + */ + CLbtTriggerFilterByArea( const CLbtTriggerFilterByArea& ); + + /** + * Prohibit assigment operator + */ + CLbtTriggerFilterByArea& operator= ( const CLbtTriggerFilterByArea& ); + + /** + * Constructor. + */ + CLbtTriggerFilterByArea(); + +private: + /** + * The geographical area that the trigger lies in + */ + CLbtGeoAreaBase* iGeoArea; + + }; + + +#endif // LBTTRIGGERFILTERBYAREA_H