meetingrequest/mragnversit2/inc/cesmragnexternalinterface.h
changeset 0 8466d47a6819
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingrequest/mragnversit2/inc/cesmragnexternalinterface.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,92 @@
+/*
+* 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 "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:  Defines and implements an ECOM plugin interface for the
+*  import and export of data into and out of Agenda using the Agenda API.
+*
+*
+*/
+
+
+#ifndef CESMRAGNEXTERNALINTERFACE_H
+#define CESMRAGNEXTERNALINTERFACE_H
+
+// System includes.
+#include <ecom/ecom.h> // REComSession
+
+// Forward class declarations.
+class CCalEntry;
+class MESMRAgnExportObserver;
+class MESMRAgnImportObserver;
+class RReadStream;
+class RWriteStream;
+
+/**
+ * Defines and implements an ECOM plugin interface for the import and export of
+ * data into and out of Agenda using the Agenda API and RReadStream/RWriteStream.
+ * @publishedAll
+ */
+class CESMRAgnExternalInterface : public CBase
+    {
+public:     // Construction/destruction.
+    static CESMRAgnExternalInterface* NewL(const TDesC8& aMimeType);
+    ~CESMRAgnExternalInterface();
+
+public:     // Methods.
+    virtual void ImportL(RPointerArray<CCalEntry>& aEntries, RReadStream& aReadStream, TUint aFlags, MESMRAgnImportObserver& aObserver) = 0;
+    virtual void ExportL(const CCalEntry& aEntries, RWriteStream& aWriteStream, TUint aFlags, MESMRAgnExportObserver& aObserver) = 0;
+    virtual void ExportL(RPointerArray<CCalEntry>& aEntries, RWriteStream& aWriteStream, TUint aFlags, MESMRAgnExportObserver& aObserver) = 0;
+
+
+private:
+    TUid iDtorIdKey;
+    };
+
+//Flags to determine which fields to export from agenda entries
+enum TAgnEntryExport
+    {
+    KAgnExportDtStart           =  1 << 0,
+    KAgnExportDtEnd             =  1 << 1,
+    KAgnExportLastModified      =  1 << 2,
+    KAgnExportCompleted         =  1 << 3,
+    KAgnExportRRule             =  1 << 4,
+    KAgnExportRDate             =  1 << 5,
+    KAgnExportExDate            =  1 << 6,
+    KAgnExportAlarm             =  1 << 7,
+    KAgnExportSummary           =  1 << 8,
+    KAgnExportDescription       =  1 << 9,
+    KAgnExportLocation          =  1 << 10,
+    KAgnExportCategory          =  1 << 11,
+    KAgnExportAttendee          =  1 << 12,
+    KAgnExportOrganizer         =  1 << 13,
+    KAgnExportPhoneOwner        =  1 << 14,
+    KAgnExportStatus            =  1 << 15,
+    KAgnExportReplicationStatus =  1 << 16,
+    KAgnExportPriority          =  1 << 17,
+    KAgnExportMethod            =  1 << 18,
+    KAgnExportSequence          =  1 << 19,
+    KAgnExportUID               =  1 << 20,
+    KAgnExportRecurrenceId      =  1 << 21,
+    KAgnExportTzRules           =  1 << 22,
+    KAgnExportCreated           =  1 << 23,
+    KAgnExportDtStamp           =  1 << 24,
+    KAgnExportClass             =  1 << 25,
+    KAgnExportXProp             =  1 << 26,
+
+    };
+
+#include "cesmragnexternalinterface.inl"
+
+#endif
+
+// End of file.