diff -r f5050f1da672 -r 04becd199f91 javaextensions/location/landmarks/inc/clapilandmarksearchfactory.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javaextensions/location/landmarks/inc/clapilandmarksearchfactory.h Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,129 @@ +/* +* 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 "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: Landmark search factory + * +*/ + + +#ifndef CLAPILANDMARKSEARCHFACTORY_H +#define CLAPILANDMARKSEARCHFACTORY_H + +// EXTERNAL INCLUDES +#include +#include + +// FORWARD DECLARATIONS +class CPosLandmarkDatabase; +class CPosLmCompositeCriteria; +class CPosLmSearchCriteria; +class CPosLandmarkSearch; +class CPosLmItemIterator; +class TLAPISearchCriteria; + +/** + * Landmark search factory + * + * Creates a landmark iterator based on the provided search + * arguments. The arguments can contain multiple combinations + * of different search criterias. + * + * Currently supported search criterias are category, text or + * area specific searches or combination of these three types + * + * @lib N/A + * @since S60 3.2 + */ +NONSHARABLE_CLASS(CLAPILandmarkSearchFactory) : public CBase +{ +public: // Constructors and destructor + + /** + * Two-phased constructor. Creates an instance from this class + * The caller takes the ownership of the returned instance + * @return New instance from this class + */ + static CLAPILandmarkSearchFactory* NewL( + CPosLandmarkDatabase& aDatabase); + + /** + * Two-phased constructor. Creates an instance from this class + * The caller takes the ownership of the returned instance which + * is left to the cleanup stack + * @return New instance from this class + */ + static CLAPILandmarkSearchFactory* NewLC( + CPosLandmarkDatabase& aDatabase); + + /** + * Destructor. + */ + virtual ~CLAPILandmarkSearchFactory(); + +public: // New functions + + /** + * Creates a landmark item iterator based on the passed + * criteria argument. Currently it is possible to search + * using a text, category or area criterias or a combination + * of these criterias + * + * If the parameter is null an iterator containing all landmarks + * will be returned to the caller + * + * @param aCriteria A search criteria + * @return An iterator of landmarks matching the specified criteria + * The ownership is transferred to the caller + */ + CPosLmItemIterator* CreateIteratorL( + const TLAPISearchCriteria* aCriteria); + +private: // New functions + + /** + * Adds a criteria to the passed composite search criteria + * The ownership of the added criteria is taken from the caller + * + * @param aCompositeCriteria The composite search criteria to which + * the criteria argument is added. + * @param aCriteria The added criteria. The criteria is popped from + * the cleanup stack + */ + void AddCriteriaAndPopL( + CPosLmCompositeCriteria& aCompositeCriteria, + CPosLmSearchCriteria* aCriteria) const; + +protected: // Constructors + + /** + * Default C++ constructor + */ + CLAPILandmarkSearchFactory(CPosLandmarkDatabase& aDatabase); + + /** + * Second phase constructor + */ + void ConstructL(); + +private: // Data + + // Database manager. Used + CPosLandmarkDatabase& iDatabase; + + // Landmark search manager. Owned + CPosLandmarkSearch* iLmSearch; + +}; + +#endif // CLAPILANDMARKSEARCHFACTORY_H +// End of file