diff -r 000000000000 -r f979ecb2b13e calendarengines/agnversit2/inc/AgnVersit2Importer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarengines/agnversit2/inc/AgnVersit2Importer.h Tue Feb 02 10:12:19 2010 +0200 @@ -0,0 +1,104 @@ +#ifndef AGNVERSIT2IMPORTER_H +#define AGNVERSIT2IMPORTER_H/* +* Copyright (c) 2005 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: Implements the import functionality of CAgnVersit2 +* +*/ + + + +// System includes. +#include // for CCalEntry::TType +#include "ICalRuleSegment.h" + +// User includes. +#include "MAgnImpUtil.h" + +// Forward class declarations. +class CAgnVersit2StringProvider; +class CICal; +class CICalComponent; +class CICalProperty; +class CTzRules; +class RReadStream; + +/** +Implementation class for CAgnVersit2::ImportL. +@internalTechnology +*/ +class CAgnVersit2Importer : public CBase, public MAgnImpUtil + { +private: // Types + /** + Nested class used internally to maintain a set of rules searchable by TZID. + @internalTechnology + */ + class CTzNamedRules : public CBase + { + public: // Construction/destruction + CTzNamedRules(); + ~CTzNamedRules(); + + public: // Members + CTzRules* iRules; + HBufC* iName; + }; + +public: // Construction/destruction. + static CAgnVersit2Importer* NewL(CAgnVersit2StringProvider& aStringProvider); + static CAgnVersit2Importer* NewLC(CAgnVersit2StringProvider& aStringProvider); + ~CAgnVersit2Importer(); + +public: // Methods. + void ImportL(RPointerArray& aEntries, RReadStream& aReadStream, MAgnImportObserver& aObserver); + +private: // Construction. + CAgnVersit2Importer(CAgnVersit2StringProvider& aStringProvider); + void ConstructL(); + +private: // Methods. + void ImportICalL(RPointerArray& aEntries, CICal& aCal); + + // Import component methods. + void ImportComponentL(const CICal& aCal, const CICalComponent& aComponent, RPointerArray& aEntries); + void ImportAlarmL(const CICalComponent& aComponent, CCalEntry& aEntry, const HBufC8& aUid, const TCalTime* aStartTime); + void ImportEntryL(const CICal& aCal, const CICalComponent& aComponent, RPointerArray& aEntries, HBufC8* aUid, CCalEntry::TType aType); + CCalEntry* CreateEntryLC(const CICal& aCal, const CICalComponent& aComponent, HBufC8* aUid, CCalEntry::TType aType); + void ImportPropertyL(CCalEntry& aEntry, const CICalProperty& aProperty); + void ImportTimezoneL(const CICalComponent& aTimezone); + void ImportTimezoneIntervalL(const CICalComponent& aInterval, CTzRules& aRules); + + // Import property methods. + void ImportCategoriesL(const CICalProperty& aProperty, CCalEntry& aEntry) const; + void ImportClassL(const CICalProperty& aProperty, CCalEntry& aEntry); + TBool ImportRRuleL(const CICalProperty& aProperty, CCalEntry& aEntry, const TCalTime& aStartTime); + + // Helper methods. + void GetCalTimeL(const CICalProperty& aProperty, TCalTime& aTime, TValueType aValueType, TInt aValue = 0); + TInt FindRuleSegment(const RPointerArray& aRules, CICalRuleSegment::TSegmentType aType) const; + const CTzRules* FindTzRule(const TDesC& aName) const; + void ReportErrorL(MAgnImportObserver::TImpError aType, const TDesC8& aUid, const TDesC& aContext, TBool aCanContinue = ETrue); + +private: // Members. + CAgnVersit2StringProvider& iStringProvider; + MAgnImportObserver* iImportObserver; + MAgnImportObserver::TImpResponse iResponse; + RPointerArray iTzRules; + const CTzRules* iCurrentTzRules; // This is not owned by the class and should not be deleted by the class. + TBool iNeedsTzRules; + }; + +#endif // AGNVERSIT2IMPORTER_H + +// End of file.