diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/t32wld.h --- a/epoc32/include/t32wld.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/t32wld.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,376 @@ -t32wld.h +// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef __T32WLD_H__ +#define __T32WLD_H__ + +#include +#include + + +// +// +// Literal constants +_LIT(KWorldServerName, "!WorldServer"); + +_LIT(KWorldServerImageName, "WorldServer"); +// +/** +@internalComponent +@released +*/ +const TUid KWorldServerUid = { 0x101F5025 }; +// + +/** +@internalComponent +@released +*/ +const TInt KWorldServerMajorVN=1; + +/** +@internalComponent +@released +*/ +const TInt KWorldServerMinorVN=0; + +/** +@internalComponent +@released +*/ +const TInt KWorldServerBuildVN=105; +// +/** +@internalComponent +@released +*/ +const TInt KMaxZoneName=3; + +/** Maximum length for TCityName. +@internalComponent +@released +*/ +const TInt KMaxCityName=25; + +/** Maximum length for TCountryName. +@internalComponent +@released +*/ +const TInt KMaxCountryName=25; + +/** +@internalComponent +@released +*/ +const TInt KMaxWorldRomTitle=32; + +/** +@internalComponent +@released +*/ +const TInt KMaxWorldLatitudeMinutes=90*60; + +/** +@internalComponent +@released +*/ +const TInt KMaxWorldLongitudeMinutes=180*60; + +/** +@internalComponent +@released +*/ +const TInt KMaxWorldUniversalTimeOffsetMinutes=17*60; + +/** +@internalComponent +@released +*/ +const TInt KISOCountryCodeLength=2; +// + +/** A buffer for a city name. +@publishedAll +@released +*/ +typedef TBuf TCityName; + +/** A buffer for a country name. +@publishedAll +@released +*/ +typedef TBuf TCountryName; + +/** +@publishedAll +@released +*/ +typedef TBuf TISOCountryCode; +// + +/** Defines the distance units which can be used by the world server. +@publishedAll +@released +*/ +enum TWldDistanceUnits + { + /** Miles. */ + EWldMiles, + /** Kilometres. */ + EWldKilometers, + /** Nautical miles. */ + EWldNauticalMiles + }; + +/** City search mode flags. These define whether a search for a city involves the +whole of the world database, or just a single country. +For example, the RWorldServer::NextCity() function returns either the next +city in the country, or the next city in the world, depending on which of these two +values is set in the TWorldId. +@publishedAll +@released +*/ +enum TWldSelect + { + /** The search is within the whole world database. */ + EWithinWorld, + /** The search is within the current country only. */ + EWithinCountry + }; + +/** Flags which indicate the reasons why the server cannot delete a +city or country. Bitmasks of these flags are returned by the RWorldServer +functions IsCityDeletable() and IsCountryDeletable(). +@publishedAll +@released +*/ +enum TWldDeleteDeniedFlags + { + /** The specified TWorldId is not found. */ + EWldDelNotFound=0x01, + /** The specified TWorldId is in a read-only file. */ + EWldDelDerivedFromRom=0x02, + /** The specified TWorldId is the home city or country. */ + EWldDelHomeCityCountry=0x04, + /** The specified TWorldId is a capital city. */ + EWldDelCapitalCity=0x08, + /** The specified TWorldId is the default country. */ + EWldDelDefaultCountry=0x10, + /** The specified TWorldId cannot be deleted for all of the above reasons. */ + EWldDelAll=0xff + }; +// +class TLatLong +/** +@publishedAll +@deprecated Interface is deprecated and is available for backward compatibility reasons only +*/ + { +public: + inline TInt MinutesLat() const; // North is +ve, South is -ve + inline TInt MinutesLong() const; // West is +ve, East is -ve + IMPORT_C void SetMinutesL(TInt aLat,TInt aLong); // North and West are +ve, South and East are -ve + IMPORT_C void SetMinutesCorrectingErrors(TInt aLat,TInt aLong); // North and West are +ve, South and East are -ve +private: + TInt16 iLat; + TInt16 iLong; + }; +// +class TCityData +/** City information. + +This class stores information about a city, including its name, country, +area code, daylight savings zone, latitude and longitude, map position and +UTC offset. +@publishedAll +@released +*/ + { +public: + /** The city name. */ + TCityName iCity; + /** The country name. */ + TCountryName iCountry; + /** The position of the city in pixels on a map on the screen. */ + TPoint iMapPos; + /** The city's latitude and longitude. This is used to calculate the distance + between cities, and the sunrise and sunset time. */ + TLatLong iLatLong; + /** The local area code. */ + TAreaCode iAreaCode; + /** The UTC offset in minutes. */ + TInt iUniversalTimeOffset; + /** The daylight savings zone. */ + TDaylightSavingZone iDaylightSavingZone; + }; +// +class TCountryData +/** Country information. + +This class stores information about a country. +@publishedAll +@released +*/ + { +public: + /** The country's name. */ + TCountryName iCountry; + /** The country's national dialling code. */ + TNatCode iNatCode; + /** The country's capital city. */ + TCityName iCapital; + /** The national dialling prefix. */ + TNatPrefCode iNatPref; + /** The country's international dialling prefix. */ + TIntlPrefCode iIntlPref; + }; +// +// +class TWorldId +/** World ID. + +This class stores the world ID for a city/country. This consists of the city +and country names. Unique IDs of this type are used to identify every city +in the world database. + +It also defines a field for setting whether city searches span the +whole database, or just the current country. +@publishedAll +@deprecated Interface is deprecated and is available for backward compatibility reasons only +*/ + { +public: + IMPORT_C TWorldId(); + inline const TCityName& City() const; + inline const TCountryName& Country() const; + inline TWldSelect Select() const; + inline void SetSelect(TWldSelect aSelector); +private: + TCityName iCity; + TWldSelect iSelect; + TCountryName iCountry; + friend class RWorldServer; + }; +// +class RWorldServer : public RSessionBase +/** Defines the client side API to the world server. + +Clients can use this API to connect to the server, add, update and delete +cities/countries, retrieve city/country information, navigate and search the +world database, set the home city, default country, and the units used in +distance comparisons. In addition, clients can use the file handling functions +to import and export database data files. +@publishedAll +@deprecated Interface is deprecated and is available for backward compatibility reasons only +*/ + { +public: + IMPORT_C TInt Connect(); + IMPORT_C TVersion Version() const; + IMPORT_C void RomTitle(TDes& aText) const; + IMPORT_C TInt NumberCities() const; + IMPORT_C TInt NumberCountries() const; + // + IMPORT_C void NotifyOnChange(TRequestStatus& aStatus); + IMPORT_C void NotifyOnChangeCancel(); + // + IMPORT_C TInt ResetAllData(); + IMPORT_C TInt DataFileSave(); + IMPORT_C TInt DataFileRevertToSaved(); + // + IMPORT_C TInt DefaultCountry(TWorldId& aCountry) const; + IMPORT_C TInt SetDefaultCountry(const TWorldId& aId); + IMPORT_C TInt Home(TWorldId& aHome) const; + IMPORT_C TInt SetHome(const TWorldId& aId); + // + IMPORT_C TInt AddCity(const TCityData& aCity); + IMPORT_C TInt AddCountry(const TCountryData& aCountry,const TCityData& aCapital); + IMPORT_C TInt CityData(TCityData& aCity,const TWorldId& aId) const; + IMPORT_C TInt CountryData(TCountryData& aCountry,const TWorldId& aId) const; + IMPORT_C TInt CalculateDistance(TInt& aDistance,const TWorldId& aLeft,const TWorldId& aRight) const; + IMPORT_C TInt CalculateSunlight(TTime& aSunrise,TTime& aSunset,const TWorldId& aId,const TTime& aDate=Time::NullTTime()) const; + IMPORT_C TInt DeleteCity(TWorldId& aId); + IMPORT_C TInt DeleteCountry(TWorldId& aId); + IMPORT_C TInt DistanceUnits(TWldDistanceUnits& aDistanceUnit) const; + IMPORT_C TInt SetDistanceUnits(TWldDistanceUnits aUnit); + IMPORT_C TInt Find(TWorldId& aId,const TDesC& aCity,const TDesC& aCountry) const; + IMPORT_C TInt FindCity(TWorldId& aCity,const TDesC& aPartialCity) const; + IMPORT_C TInt FindCountry(TWorldId& aCountry,const TDesC& aPartialCountry) const; + IMPORT_C TInt FirstCity(TWorldId& aId) const; + IMPORT_C TInt FirstCountry(TWorldId& aId) const; + IMPORT_C TInt IsCityDeletable(TInt& aDeleteDeniedFlags,const TWorldId& aId) const; + IMPORT_C TInt IsCountryDeletable(TInt& aDeleteDeniedFlags,const TWorldId& aId) const; + IMPORT_C TInt LastCity(TWorldId& aId) const; + IMPORT_C TInt LastCountry(TWorldId& aId) const; + IMPORT_C TInt NearestCity(const TPoint& aMapCoord,const TWorldId* aCityToBeat=NULL); + IMPORT_C TInt NextNearestCity(TWorldId& aId,TInt aMaxNumberToCompare=KMaxTInt); + IMPORT_C TInt NextCity(TWorldId& aId) const; + IMPORT_C TInt NextCountry(TWorldId& aId) const; + IMPORT_C TInt PrevCity(TWorldId& aId) const; + IMPORT_C TInt PrevCountry(TWorldId& aId) const; + IMPORT_C TInt UpdateCity(TWorldId& aId,const TCityData& aCity); + IMPORT_C TInt UpdateCountry(TWorldId& aId,const TCountryData& aCountry); + IMPORT_C TInt GetCountryNameByISOCode(const TDesC& aCode, TDes& aCountry) const; + IMPORT_C TInt SetCollationLevelForFind(TInt aCollationLevel); // this is a per-client setting +public: + IMPORT_C void __DbgFailAlloc(TInt aCount); + IMPORT_C void __DbgMarkEnd(); + IMPORT_C void __DbgMarkHeap(); + IMPORT_C TInt SetRomDatabaseToUse(const TDesC& aRomDatabaseToUse); + IMPORT_C TBool ReadOnlyDataIsInRAM() const; + }; +// +// TWorldId +inline TWldSelect TWorldId::Select() const +/** Gets the current city search mode. Clients can search for cities by country, +or over the whole world database. + +@return The current city search mode. */ + { + return(iSelect); + } +inline const TCityName& TWorldId::City() const +/** Gets the city name in the current TWorldId. + +@return A reference to the city name. */ + { + return(iCity); + } +inline const TCountryName& TWorldId::Country() const +/** Gets the country name in the current TWorldId. + +@return A reference to the country name. */ + { + return(iCountry); + } +inline void TWorldId::SetSelect(TWldSelect aSelector) +/** Sets the city search mode. Clients can search for cities by country, or over +the whole world database. + +@param aSelector The city search mode. */ + { + iSelect=aSelector; + } +// +// TLatLong +inline TInt TLatLong::MinutesLat() const + { + return(iLat); + } +inline TInt TLatLong::MinutesLong() const + { + return(iLong); + } +#endif