tzservices/tzserver/Include/tzupdate.h
changeset 0 2e3d3ce01487
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tzservices/tzserver/Include/tzupdate.h	Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,115 @@
+// Copyright (c) 2004-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 __TZUPDATE_H__
+#define __TZUPDATE_H__
+
+#include <e32cmn.h> // TUid.
+#include <e32std.h>
+
+/** UTC Offset update notification constants. When the UTC offset is automatically
+adjusted for Daylight Saving then it is possible to receive
+notification using the Publish and Subscribe API with the
+values defined here. Note that this property is updated by the Time Zone Server
+as this is the only component that can modify the UTC Offset.
+
+@see RProperty in e32property.h
+*/
+namespace NTzUpdate
+    {
+	/** Time zone services publish and subscribe property category.
+	@publishedAll
+	@released
+	*/
+    const TUid KPropertyCategory = { 0x1020383E };
+
+	/** Time zone services publish and subscribe property keys.
+	@publishedAll
+	@released
+	*/
+    enum TPropertyKeys
+        {
+        EUtcOffsetChangeNotification,
+        ECurrentTimeZoneId,
+        EHomeTimeZoneId,
+        ENextDSTChange,
+		ETzRulesChange, 
+	    ETzNamesChange, 
+        };
+
+	/** Structure used to return the value for ECurrentTimeZoneId or 
+	EHomeTimeZoneId property.
+	@see RTz::NotifyHomeTimeZoneChangedL
+	@publishedAll
+	@released
+	*/
+	struct TTimeZoneChange
+		{
+		TInt iNewTimeZoneId;
+		TInt iOldTimeZoneId;
+		};
+		
+	/** This struct is used to publish DST Change info in an RProperty.
+	Subscribers to the ENextDSTChange property will define a copy of this struct
+	so that they are not dependant on the tz component.
+	If this struct changes then the copies must also be changed.
+	@publishedAll
+	@released
+	*/
+	struct TDSTChangeInfo
+		{
+		/** The version of the struct. Currently always 1 */
+		TUint8 iVersion;
+
+		/** The time of the next offset change in UTC */
+		TTime iNextDSTChangeUTC;
+		/** The offset from UTC (in minutes) after the next DST change will take place.*/
+		TInt iNextUTCOffset;
+		
+		/** The time of the previous offset change in UTC. This member is only valid if the version is 2 or above. */
+		TTime iPreviousDSTChangeUTC;
+
+		/** The offset from UTC (in minutes) before the previous DST change took place. This member is only valid
+		if the version is 2 or above.*/
+		TInt iPreviousUTCOffset;
+	private:
+		/** Reserved for future use. 
+		*/
+		TInt iReserved[12];
+		};
+	/** Structure used to return the value for ETzRulesChange property.
+	This property covers changes to the system TZ database, the current/system
+	TZ rules or user-defined TZ rules.
+	@publishedAll
+	@released
+	*/
+	struct TTzRulesChange
+    	{
+    	TTime iUTCTimeOfRulesChange;
+    	};
+    	
+	/** Structure used to return the value for ETzNamesChange property.
+	This property covers changes to either the localized system TZ names
+	or non-localized user-defined TZ names.
+	@publishedAll
+	@released
+	*/
+    struct TTzNamesChange
+    	{
+    	TTime iUTCTimeOfNamesChange;
+    	};
+     }
+
+#endif  // __TZUPDATE_H__