diff -r 63c982fb92f2 -r b73252188534 locationmanager/ReverseGeocode/inc/reversegeocode.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/locationmanager/ReverseGeocode/inc/reversegeocode.h Thu Aug 19 10:20:41 2010 +0300 @@ -0,0 +1,173 @@ +/* +* Copyright (c) 2006-2009 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: Reverse Geocode utility which converts the geo coordinates in to +* the actual address information. +*/ + +#ifndef REVERSEGEOCODE_H_ +#define REVERSEGEOCODE_H_ + +#include +#include +#include +#include +#include "geotagger.h" + +/* + * Data class to get the address details. An handle to this type will be given to the + * user through MReverseGeocodeObserver::ReverseGeocodeComplete callback, through which + * user can retrieve the address details using the following interfaces. + * + **/ +class MAddressInfo + { + public: + /* + * Gets the reference to the country name. Scope of this returned reference is limited to + * this perticular call. User has to store it for their further processing. + * + * @return reference to the String which holds the Country Name. + */ + virtual TDesC& GetCountryName()= 0; + + /* + * Gets the reference to the State. Scope of this returned reference is limited to + * this perticular call. User has to store it for their further processing. + * + * @return reference to the String which holds the State name. + */ + virtual TDesC& GetState()= 0; + + /* + * Gets the reference to the City. Scope of this returned reference is limited to + * this perticular call. User has to store it for their further processing. + * + * @return reference to the String which holds the City Name. + */ + virtual TDesC& GetCity()= 0; + + /* + * Gets the reference to the District name. Scope of this returned reference is limited to + * this perticular call. User has to store it for their further processing. + * + * @return reference to the String which holds the District Name. + */ + virtual TDesC& GetDistrict()= 0; + + /* + * Gets the reference to the postal code. Scope of this returned reference is limited to + * this perticular call. User has to store it for their further processing. + * + * @return reference to the String which holds the postal code. + */ + virtual TDesC& GetPincode()= 0; + + /* + * Gets the reference to the thoroughfare name. Scope of this returned reference is limited to + * this perticular call. User has to store it for their further processing. + * + * @return reference to the String which holds the thoroughfare name. + */ + virtual TDesC& GetThoroughfareName()= 0; + + /* + * Gets the reference to the thoroughfare number. Scope of this returned reference is limited to + * this perticular call. User has to store it for their further processing. + * + * @return reference to the String which holds the thoroughfare number. + */ + virtual TDesC& GetThoroughfareNumber() = 0; + }; + +/* + * Observer class which exposes callbacks to notify the completion of reversegeocoding event. + * + **/ +class MReverseGeocodeObserver + { + public: + /* + * Callback function which notifys the completion of reverse geocode event. This signals the completion + * of the asynchronous function CReverseGeoCode::GetAddressByCoordinate. + * + * @param aErrorcode Error status KErrNone in case of success or other system specific errorcodes + * in case of failures. + * + * @param aAddressInfo refrence to the address stucture, through which user can access the + * address information. + */ + + virtual void ReverseGeocodeComplete( TInt& aErrorcode, MAddressInfo& aAddressInfo ) =0; + + /* + * Get registrer network country code + * + * @return current register n/w info + */ + virtual RMobilePhone::TMobilePhoneNetworkInfoV2& GetCurrentRegisterNw() = 0; + + + /* + * UE is registered to home network? + * + * @return ETrue if UE is registered at home network else EFalse + */ + virtual TBool IsRegisteredAtHomeNetwork() = 0; + + /* + * Get home network country code + * @param aHomeNwInfoAvailableFlag ETrue if home n/w info available else EFalse + * @return user home n/w info + */ + virtual const RMobilePhone::TMobilePhoneNetworkInfoV1& + GetHomeNetworkInfo(TBool& aHomeNwInfoAvailableFlag) = 0; + }; + +/* + * CReverseGeocode + * Concrete class which exposes interfaces to convert the geo-coordinates information + * in to the address information. + * + **/ +class CReverseGeocode : public CBase + { + public: + /* + * Factory function to create the instance of CReverseGeocode Class. This also registers + * observer for getting the reverse geocode completion notifications. + * + * @param aObserver refrence to the instance MReverseGeocodeObserver's + * implementation class. + * @return pointer to the instance of CReverseGeocode. + */ + IMPORT_C static CReverseGeocode* NewL( MReverseGeocodeObserver& aObserver ); + + /* + * Gets the address information for the given geo coordinates. This is an asynchronous function + * Whose completion will be notified by the MReverseGeocodeObserver::ReverseGeocodeComplete callback. + * + * @param aObserver refrence to the instance MReverseGeocodeObserver's + * implementation class. + */ + virtual void GetAddressByCoordinateL( TLocality aLocality, + const TConnectionOption aOption = ESilent ) = 0; + + /* + * checks if silent connection is allowed + * @return ETrue if silent connection is allowed + */ + virtual TBool SilentConnectionAllowed() = 0; + }; + +#endif /* REVERSEGEOCODE_H_ */