tzservices/tzserver/Server/Include/timezonesession.h
changeset 0 2e3d3ce01487
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tzservices/tzserver/Server/Include/timezonesession.h	Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,114 @@
+// 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_SESSION_H__
+#define __TIMEZONE_SESSION_H__
+
+#include <e32base.h>
+#include "tzuserdatacache.h"
+
+class CTzServer;
+
+/*
+@internalComponent
+*/
+class CTzServerSession : public CSession2
+	{
+public:
+	static CTzServerSession* NewL();
+	~CTzServerSession();
+	
+private:
+	CTzServerSession();
+	void ConstructL();
+
+public:
+	// completes a pending client notifier
+	void NotifyTZStatusChange(RTz::TTzChanges aChange, const TAny* aRequester);
+
+private:	// from CSession2
+	void ServiceL(const RMessage2& aMessage);
+	
+private:
+	// Registers to receive notification to time and zone changes in the
+	// Server
+	TInt doRegisterTzChangeNotifier(const RMessage2& aMessage);
+	TInt doCancelRequestForTzChangeNoticeL(const RMessage2& aMessage);
+	TInt doSetTimeZoneL(const RMessage2& aMessage);
+	TInt doGetLocalTimeZoneIdL(const RMessage2& aMessage);
+	TInt doGetLocalEncodedTimeZoneRulesL(const RMessage2& aMessage);
+	TInt doGetLocalEncodedTimeZoneRulesSizeL(const RMessage2& aMessage);
+	TInt doGetForeignEncodedTimeZoneRulesL(const RMessage2& aMessage);
+	TInt doGetForeignEncodedTimeZoneRulesSizeL(const RMessage2& aMessage);
+	TInt doGetTimeZoneFormatL(const RMessage2& aMessage);
+	TInt doConvertLocalZoneTimeL(const RMessage2& aMessage);
+	TInt doConvertForeignZoneTimeL(const RMessage2& aMessage);
+	TInt doGetOffsetsForTimeZoneIdsL(const RMessage2& aMessage) const;
+    TInt doSetAutoUpdateBehaviorL(const RMessage2& aMessage);
+	TInt doIsDaylightSavingOnL(const RMessage2& aMessage);
+	TInt doAutoUpdateSettingL(const RMessage2& aMessage);
+	TInt doNotifyHomeTimeZoneChanged(const RMessage2& aMessage);
+	TInt doSetHomeTimeL(const RMessage2& aMessage);
+	TInt doSetUnknownZoneTimeL(const RMessage2& aMessage);
+	TInt doCreateUserTimeZoneL(const RMessage2& aMessage);
+    TInt doUpdateUserTimeZoneL(const RMessage2& aMessage);
+    TInt doDeleteUserTimeZoneL(const RMessage2& aMessage);
+    TInt doGetUserTimeZoneNamesL(const RMessage2& aMessage);
+    TInt doGetUserTimeZoneNamesSizeL(const RMessage2& aMessage);
+    TInt doGetUserTimeZoneIdsL(const RMessage2& aMessage);
+    TInt doGetUserTimeZoneIdsSizeL(const RMessage2& aMessage);
+    TInt doGetHeapSizeL(const RMessage2& aMessage);
+    TInt doLocalizationReadCitiesSizeL(const RMessage2& aMessage);
+    TInt doLocalizationReadCitiesTzIdSizeL(const RMessage2& aMessage);
+    TInt doLocalizationReadCitiesInGroupSizeL(const RMessage2& aMessage);
+    TInt doLocalizationReadCitiesL(const RMessage2& aMessage);
+    TInt doLocalizationReadFrequentlyUsedZoneSizeL(const RMessage2& aMessage);
+    TInt doLocalizationReadFrequentlyUsedZoneL(const RMessage2& aMessage);
+    TInt doLocalizationReadCachedTimeZoneCitySizeL(const RMessage2& aMessage);
+    TInt doLocalizationReadCachedTimeZoneCityL(const RMessage2& aMessage);
+    TInt doLocalizationCloseDb();
+    TInt doLocalizationOpenDbL();
+    TInt doLocalizationWriteCityL(const RMessage2& aMessage);
+    TInt doLocalizationDeleteCityL(const RMessage2& aMessage);
+    TInt doLocalizationWriteFrequentlyUsedZoneL(const RMessage2& aMessage);
+    TInt doLocalizationWriteAllFrequentlyUsedZonesL(const RMessage2& aMessage);
+    TInt doSwiObsBeginL(const RMessage2& aMessage);
+    TInt doSwiObsFileChangedL(const RMessage2& aMessage);
+    TInt doSwiObsEndL(const RMessage2& aMessage);
+    const CTzServer* TzServer() const;
+    static void CleanupTimeZonePointerArray(TAny* aArray);
+    static void CleanupCityPointerArray(TAny* aArray);
+
+private:
+	RMessage2 iClientMessage;	// last client requesting change notification
+	TBool iPendingRequest;
+	CTzUserDataCache* iTzUserDataCache;
+	/**
+	Used in the functions where the client first requests the size of the result and then
+	gets the result once it has allocated a buffer that can hold the result 
+	(see doLocalizationReadCitiesL).
+	*/
+	RPointerArray<CTzLocalizedCityRecord> iCitiesResultCache;
+	/**
+	Used to cache the result for doLocalizationReadFrequentlyUsedZoneL.
+	*/
+	CTzLocalizedTimeZoneRecord* iTimeZoneResultCache;
+	/**
+	Used to cache the result for doLocalizationReadCachedTimeZoneCityL.
+	*/
+	CTzLocalizedCityRecord* iCityResultCache;
+	};
+	
+#endif