diff -r 000000000000 -r 2e3d3ce01487 tzservices/tzserver/Client/Include/tzrules.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tzservices/tzserver/Client/Include/tzrules.h Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,84 @@ +// 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 __TIMEZONERULES_H__ +#define __TIMEZONERULES_H__ + +#include +#include +#include +#include "tzpersisted.h" + +const TInt KActualisedRulesGranularity = 8; + +// specifies the limits for rules caching. +// (year - KRuleCacheLowerLimit) , (year + KRuleCacheUpperLimit) +// the actual cache includes one more year at year - (KRuleCacheLowerLimit + 1) +// required to provide the offset used at the start of the search +const TUint KRuleCacheLowerLimit = 2; +const TUint KRuleCacheUpperLimit = 3; + +/** +Encapsulates a single Time Zone DST Rule + +@internalComponent +@since 9.1 +*/ +class TTzActualisedRule + { +public: + inline TTzActualisedRule(const TTime& aTimeOfChange, TInt aStdOffset, TInt aDstOffset, TTzTimeReference aTimeReference); + inline TTzActualisedRule(); + IMPORT_C void InternalizeL(RReadStream& aStream); + IMPORT_C void ExternalizeL(RWriteStream& aStream) const; + + static TInt Order(const TTzActualisedRule& aLeft, const TTzActualisedRule& aRight); + +public: + /** time of DST change w.r.t to iTimeReference + */ + TTime iTimeOfChange; + /** std to UTC offset + */ + TInt32 iStdOffset; + + /** wall-clock to standard time offset + */ + TInt32 iDstOffset; + + /** what time recogning iTimeOfChange is referenced to; see TTzTimeReference + */ + TTzTimeReference iTimeReference; + }; + +inline TTzActualisedRule::TTzActualisedRule(const TTime& aTimeOfChange, TInt aStdOffset, TInt aDstOffset, TTzTimeReference aTimeReference) : + iTimeOfChange(aTimeOfChange), + iStdOffset(aStdOffset), + iDstOffset(aDstOffset), + iTimeReference(aTimeReference) + { + } + +inline TTzActualisedRule::TTzActualisedRule() : + iTimeOfChange(0), + iStdOffset(0), + iDstOffset(0), + iTimeReference(ETzUtcTimeReference) + { + } + +#endif + +