--- /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 <e32base.h>
+#include <e32std.h>
+#include <s32file.h>
+#include <tz.h>
+#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