diff -r 000000000000 -r 2e3d3ce01487 tzservices/tzserver/Server/Include/timezoneserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tzservices/tzserver/Server/Include/timezoneserver.h Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,176 @@ +// 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 "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: +// + +#ifndef __TIMEZONE_SERVER_H__ +#define __TIMEZONE_SERVER_H__ + +#include +#include +#include +#include +#include "tzconfigagent.h" +#include "tzlocalizationdb.h" +#include "tzswiobserver.h" + +const TUint KTimeZoneServerMajorVersion = 0; +const TUint KTimeZoneServerMinorVersion = 1; +const TUint KTimeZoneServerBuildVersion = 1; + +// Structures +struct TRendezvous + { + TThreadId iId; + TRequestStatus* iStatus; + }; + +class CTzServer; +class CTzUserDataDb; +class CTzUserDataCache; + +#define KCapabilityNone 0 +#define KCapabilityWriteDeviceData 1000 +#define KCapabilityReadUserData 2000 +#define KCapabilityWriteUserData 3000 + +_LIT(KTimeZoneServerName,"!TzServer"); + +/* CTzServer +@internalComponent +*/ +class CTzServer : public CPolicyServer, public MTZCfgAgentObserver + { +public: + enum TFunctionCode + { + EGetLocalTimeZoneId = KCapabilityNone, + EConvertLocalZoneTime, + EConvertForeignZoneTime, + EGetLocalEncodedTimeZoneRulesSize, + EGetLocalOlsenEncodedTimeZoneRulesSize, + EGetForeignEncodedTimeZoneRulesSize, + EGetLocalEncodedTimeZoneRules, + EGetLocalOlsenEncodedTimeZoneRules, + EGetForeignEncodedTimeZoneRules, + EGetTimeZoneFormat, + ERegisterTimeChangeNotifier, + ECancelRequestforNotice, + ESrvOpcodeResourceCount, + ESrvOpcodeSetHeapFailure, + EGetOffsetsForTimeZoneIds, + EIsDaylightSavingOn, + EAutoUpdate, + EGetUserTimeZoneNamesSize, + EGetUserTimeZoneNames, + EGetUserTimeZoneIds, + EGetUserTimeZoneIdsSize, + ESwiObsBegin, + ESwiObsFileChanged, + ESwiObsEnd, + ESrvOpcodeResetHeap, + ESetTimeZone = KCapabilityWriteDeviceData, + EEnableAutoUpdate, // Also has WriteDeviceData capability. + ENotifyHomeTimeZoneChanged, + ESetHomeTime, + ESetUnknownZoneTime, + ECreateUserTimeZone, + EUpdateUserTimeZone, + EDeleteUserTimeZone, + ELocalizationReadCitiesSize = KCapabilityReadUserData, + ELocalizationReadCitiesTzIdSize, + ELocalizationReadCitiesInGroupSize, + ELocalizationReadCities, + ELocalizationReadFrequentlyUsedZoneSize, + ELocalizationReadFrequentlyUsedZone, + ELocalizationReadCachedTimeZoneCitySize, + ELocalizationReadCachedTimeZoneCity, + ELocalizationOpenDb = KCapabilityWriteUserData, + ELocalizationCloseDb, + ELocalizationWriteCity, + ELocalizationDeleteCity, + ELocalizationWriteFrequentlyUsedZone, + ELocalizationWriteAllFrequentlyUsedZones, + ENotSupported + }; + +public: + static CTzServer* NewL(); + ~CTzServer(); + +private: + CTzServer(TInt aPriority); + void ConstructL(); + +public: + inline CTzConfigAgent& TimeZoneManager() const; + inline CTzUserDataDb& UserTimeZoneDb() const; + inline CTzLocalizationDb& LocalizationDb() const; + inline CTzSwiObserver& SwiObserver() const; + + void SessionClosed() const; + void SessionAdded() const; // required to be const to avoid compiler error + void Error(TInt aError); + +private: + // from MTZCfgAgentObserver + void NotifyTZStatusChange(RTz::TTzChanges aChange, const TAny* aRequester); + + virtual CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const; + +private: + mutable TInt iSessionCount; + CTzConfigAgent* iTimeZoneMgr; + CTzUserDataDb* iTzUserDataDb; + CTzLocalizationDb* iTzLocalizationDb; + CTzSwiObserver* iTzSwiObserver; + }; + +// +// Active scheduler +// +class CTZSrvScheduler : public CActiveScheduler + { +public: + ~CTZSrvScheduler(); + static CTZSrvScheduler* NewL(); + +private: + // from CActiveScheduler + virtual void Error(TInt aError) const; + +private: + CTzServer* iServer; + }; + +inline CTzConfigAgent& CTzServer::TimeZoneManager() const + { + return *iTimeZoneMgr; + } + +inline CTzUserDataDb& CTzServer::UserTimeZoneDb() const + { + return *iTzUserDataDb; + } + +inline CTzLocalizationDb& CTzServer::LocalizationDb() const + { + return *iTzLocalizationDb; + } + +inline CTzSwiObserver& CTzServer::SwiObserver() const + { + return *iTzSwiObserver; + } + +#endif