diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/caldataexchange.h --- a/epoc32/include/caldataexchange.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/caldataexchange.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,89 @@ -caldataexchange.h +// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef __CCALDATAEXCHANGE_H__ +#define __CCALDATAEXCHANGE_H__ + +#include + +class CCalDataExchangeImpl; +class CCalSession; +class RWriteStream; + +/** The default number of entries to import or export between callbacks. +@publishedAll +@released +*/ +const TInt KDefaultNumberOfEntriesToHandle = 10; + +/** A call back class to show the progress of long-running operations. + +When a long-running operation is carried out, this class is used to signal its progress, +and when the function is complete. + +@publishedAll +@released +*/ +class MCalDataExchangeCallBack + { +public: + /** Progress callback. + + This calls the observing class with the percentage complete of the current operation. + This also propagates any error to the observing class. + + @param aPercentageCompleted The percentage complete. */ + virtual void Progress(TInt aPercentageCompleted) = 0; + + /** Progress callback. + + This calls the observing class when the current operation is finished. */ + virtual void Completed() = 0; + + /* Retrieve the number of entries to handle at once. + @return The number of entries to handle at once. + */ + virtual TInt NumberOfEntriesToHandleAtOnce() { return KDefaultNumberOfEntriesToHandle; }; + }; + +/** +This class provides functionality for importing and exporting vCal entries. +@publishedAll +@released +*/ +NONSHARABLE_CLASS(CCalDataExchange) : public CBase + { +public: + IMPORT_C static CCalDataExchange* NewL(CCalSession& aSession); + IMPORT_C ~CCalDataExchange(); + + IMPORT_C void ImportL(TUid aDataFormat, RReadStream& aReadStream, RPointerArray& aCalEntryArray); + IMPORT_C void ImportL(TUid aDataFormat, RReadStream& aReadStream, RPointerArray& aCalEntryArray, TInt aFlags); + IMPORT_C void ExportL(TUid aDataFormat, RWriteStream& aWriteStream, RPointerArray& aCalEntryArray); + + IMPORT_C void ImportL(TUid aDataFormat, RReadStream& aReadStream, RPointerArray& aCalEntryArray, TInt aFlags, TInt aNumEntries); + + IMPORT_C void ImportAsyncL(TUid aDataFormat, RReadStream& aReadStream, RPointerArray& aCalEntryArray, MCalDataExchangeCallBack& aObserver, TInt aFlags); + IMPORT_C void ExportAsyncL(TUid aDataFormat, RWriteStream& aWriteStream, RPointerArray& aCalEntryArray, MCalDataExchangeCallBack& aObserver); + +private: + CCalDataExchange(); + void ConstructL(CCalSession& aSession); + +private: + CCalDataExchangeImpl* iImpl; + }; + +#endif // __CCALDATAEXCHANGE_H__