diff -r 000000000000 -r c316ab048e9d interface/provider/POIProvider.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/interface/provider/POIProvider.h Fri Jun 25 12:50:05 2010 +0200 @@ -0,0 +1,67 @@ +/* + * Name : POIProvider.h + * Description : ECOM interface definition + * Project : This file is part of OpenMAR, an Open Mobile Augmented Reality browser + * Website : http://OpenMAR.org + * + * Copyright (c) 2010 David Caabeiro + * + * All rights reserved. This program and the accompanying materials are made available + * under the terms of the Eclipse Public License v1.0 which accompanies this + * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html + * + */ + +#ifndef POIPROVIDER_H_ +#define POIPROVIDER_H_ + +#include "InterfaceUid.hrh" + +#include +#include + +namespace OpenMAR { + +class CPOIProvider; +class CPOIObject; + +/** + * @brief POI provider notifier + */ +class MPOIProviderObserver +{ +public: + virtual void POIProviderLoadedL(CPOIProvider* aProvider, TInt aError) = 0; + virtual void POIObjectCreatedL(CPOIObject* aPOIObject) = 0; + virtual void POIObjectUpdatedL(CPOIObject* aPOIObject) = 0; +}; + +/** + * @brief POI provider interface definition + * + * Retrieves geolocated points of interest from a local or remote resource, + * creating corresponding CPosLandmark objects + */ +class CPOIProvider : public CBase +{ +public: + static CPOIProvider* NewL(const TDesC8& aMatch, const TDesC8& aProviderUri); + static CPOIProvider* NewL(const TUid aImplementationUid, const TDesC8& aProviderUri); + ~CPOIProvider(); + + void SetObserver(MPOIProviderObserver* aObserver); + + virtual void RetrieveL(const TCoordinate& aCoordinate, TReal32 aRadius) = 0; + +protected: + MPOIProviderObserver* iObserver; + +private: + TUid iDtor_ID_Key; +}; + +#include "POIProvider.inl" + +} + +#endif // POIPROVIDER_H_