williamr@2: // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __TZUPDATE_H__ williamr@2: #define __TZUPDATE_H__ williamr@2: williamr@2: #include // TUid. williamr@4: #include williamr@2: williamr@2: /** UTC Offset update notification constants. When the UTC offset is automatically williamr@2: adjusted for Daylight Saving then it is possible to receive williamr@2: notification using the Publish and Subscribe API with the williamr@2: values defined here. Note that this property is updated by the Time Zone Server williamr@2: as this is the only component that can modify the UTC Offset. williamr@2: williamr@2: @see RProperty in e32property.h williamr@2: */ williamr@2: namespace NTzUpdate williamr@2: { williamr@4: /** Time zone services publish and subscribe property category. williamr@4: @publishedAll williamr@4: @released williamr@4: */ williamr@2: const TUid KPropertyCategory = { 0x1020383E }; williamr@2: williamr@4: /** Time zone services publish and subscribe property keys. williamr@4: @publishedAll williamr@4: @released williamr@4: */ williamr@2: enum TPropertyKeys williamr@2: { williamr@2: EUtcOffsetChangeNotification, williamr@2: ECurrentTimeZoneId, williamr@2: EHomeTimeZoneId, williamr@4: ENextDSTChange, williamr@4: ETzRulesChange, williamr@4: ETzNamesChange, williamr@2: }; williamr@2: williamr@4: /** Structure used to return the value for ECurrentTimeZoneId or williamr@4: EHomeTimeZoneId property. williamr@4: @see RTz::NotifyHomeTimeZoneChangedL williamr@4: @publishedAll williamr@4: @released williamr@4: */ williamr@2: struct TTimeZoneChange williamr@2: { williamr@2: TInt iNewTimeZoneId; williamr@2: TInt iOldTimeZoneId; williamr@2: }; williamr@2: williamr@2: /** This struct is used to publish DST Change info in an RProperty. williamr@4: Subscribers to the ENextDSTChange property will define a copy of this struct williamr@2: so that they are not dependant on the tz component. williamr@2: If this struct changes then the copies must also be changed. williamr@4: @publishedAll williamr@4: @released williamr@2: */ williamr@2: struct TDSTChangeInfo williamr@2: { williamr@2: /** The version of the struct. Currently always 1 */ williamr@2: TUint8 iVersion; williamr@2: williamr@2: /** The time of the next offset change in UTC */ williamr@2: TTime iNextDSTChangeUTC; williamr@2: /** The offset from UTC (in minutes) after the next DST change will take place.*/ williamr@2: TInt iNextUTCOffset; williamr@2: williamr@2: /** The time of the previous offset change in UTC. This member is only valid if the version is 2 or above. */ williamr@2: TTime iPreviousDSTChangeUTC; williamr@2: williamr@2: /** The offset from UTC (in minutes) before the previous DST change took place. This member is only valid williamr@2: if the version is 2 or above.*/ williamr@2: TInt iPreviousUTCOffset; williamr@4: private: williamr@4: /** Reserved for future use. williamr@4: */ williamr@2: TInt iReserved[12]; williamr@2: }; williamr@4: /** Structure used to return the value for ETzRulesChange property. williamr@4: This property covers changes to the system TZ database, the current/system williamr@4: TZ rules or user-defined TZ rules. williamr@4: @publishedAll williamr@4: @released williamr@4: */ williamr@4: struct TTzRulesChange williamr@4: { williamr@4: TTime iUTCTimeOfRulesChange; williamr@4: }; williamr@4: williamr@4: /** Structure used to return the value for ETzNamesChange property. williamr@4: This property covers changes to either the localized system TZ names williamr@4: or non-localized user-defined TZ names. williamr@4: @publishedAll williamr@4: @released williamr@4: */ williamr@4: struct TTzNamesChange williamr@4: { williamr@4: TTime iUTCTimeOfNamesChange; williamr@4: }; williamr@4: } williamr@2: williamr@2: #endif // __TZUPDATE_H__