--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingrequest/mrentry/inc/cesmrentryprocessor.h Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,220 @@
+/*
+* Copyright (c) 2007-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: ESMR mr entry processor
+*
+*/
+
+#ifndef CESMRENTRYPROCESSOR_H
+#define CESMRENTRYPROCESSOR_H
+
+#include <e32base.h>
+#include <MAgnEntryUi.h>
+//<cmail>
+#include "esmrcommands.h"
+#include "tesmrscenariodata.h"
+//</cmail>
+
+class MESMRCalDbMgr;
+class CMRMailboxUtils;
+class CCalInstance;
+class MESMRMeetingRequestEntry;
+class CESMRMeetingRequestEntry;
+class CESMRFsMailboxUtils;
+
+/**
+* CESMREntryProcessor's main responsibility is to
+* perform entry processing and evaluation in initialization phase.
+*
+* @lib esmrentry.lib
+*/
+NONSHARABLE_CLASS(CESMREntryProcessor) :
+ public CBase
+ {
+public: // Construction and destruction
+ /**
+ * Creates new CESMREntryProcessor object. Ownership
+ * is transferred to caller.
+ * @param aMRMailboxUtils Refernce to MR Mailbox Utilities API.
+ * @param aDbMgr Reference to calendar DB manager.
+ * @return Pointer to created CESMREntryProcessor object,
+ */
+ IMPORT_C static CESMREntryProcessor* NewL(
+ CMRMailboxUtils& aMRMailboxUtils,
+ MESMRCalDbMgr& aDbMgr );
+
+ /**
+ * C++ destructor
+ */
+ IMPORT_C ~CESMREntryProcessor();
+
+public: // Interface
+ /**
+ * Fetches scenario data.
+ *
+ * @return scenario data.
+ */
+ inline const TESMRScenarioData& ScenarioData() const;
+
+ /**
+ * Tests, whether processor contains entry, which it has processed
+ * or not.
+ *
+ * @return ETrue, if contains processed entry.
+ */
+ inline TBool ContainsProcessedEntry() const;
+
+ /**
+ * Fetches the extension UID for ES MR entry processor.
+ *
+ * @return MRUI processor extension UID.
+ */
+ IMPORT_C static TUid ExtensionUid();
+
+ /**
+ * Process entries and constructs scenario data.
+ *
+ * @param aParam AGN Entry UI input parameters.
+ * @param aEntries Calendar entries to be processed.
+ * Ownership is not transferred.
+ */
+ IMPORT_C void ProcessL(
+ const MAgnEntryUi::TAgnEntryUiInParams* aParams,
+ RPointerArray<CCalEntry>* aEntries );
+
+ /**
+ * Process entries. Scenario data is not constructed.
+ *
+ * @param aEntries Calendar entries to be processed.
+ * Ownership is not transferred.
+ */
+ IMPORT_C void ProcessL(
+ RPointerArray<CCalEntry>* aEntries );
+
+ /**
+ * Processes calendar instance. All operations affects only the
+ * processed instance.
+ *
+ * @param aInstance Reference to calendar instance.
+ */
+ IMPORT_C void ProcessL(
+ CCalInstance& aInstance );
+
+ /**
+ * Switches processor for forwarding mode.
+ * @error KErrNotReady no entries has been processed yet.
+ */
+ IMPORT_C void SwitchToForwardL();
+
+ /**
+ * Switches processor to edit mode.
+ * @error KErrNotReady no entries has been processed yet.
+ */
+ IMPORT_C void SwitchToEditL();
+
+ /**
+ * Switches processor to view mode.
+ * @error KErrNotReady no entries has been processed yet.
+ */
+ IMPORT_C void SwitchToViewL();
+
+ /**
+ * Switches processor to Tracking mode.
+ * @error KErrNotReady no entries has been processed yet.
+ */
+ IMPORT_C void SwitchToTrackL();
+
+ /**
+ * Fetches ES MR Entry. Methods panics, if entries has not
+ * been processed before calling this method.
+ *
+ * @return Reference to CESMRMeetingRequestEntry object.
+ */
+ IMPORT_C MESMRMeetingRequestEntry& ESMREntryL();
+
+ /**
+ * Resets the entry processor. After calling this method the
+ * processor is in the same state than after creation.
+ */
+ IMPORT_C void ResetL();
+
+ /**
+ * Process output parameters. Processing is done according to command
+ * passed as parameter.
+ *
+ * @param aOutputParams Reference to output parameters.
+ * @param aCommand Command for which output parameters are processed.
+ */
+ IMPORT_C void ProcessOutputParametersL(
+ MAgnEntryUi::TAgnEntryUiOutParams& aOutParams,
+ TESMRCommand aCommand );
+
+private: // Implementaton
+
+ CESMREntryProcessor(
+ CMRMailboxUtils& aMRMailboxUtils,
+ MESMRCalDbMgr& aDbMgr );
+ void ConstructL();
+ void SetPhoneOwnerL();
+ void CheckViewModeL();
+ TBool IsDataOk() const;
+ void CreateESMREntryL();
+ void CheckOrganizerL();
+ void SetPhoneOwnerToOwnEntryL();
+
+private: // Data
+ /**
+ * Scenario data
+ * Own.
+ */
+ TESMRScenarioData iScenData;
+
+ /**
+ * ES MR Entry
+ * Own.
+ */
+ CESMRMeetingRequestEntry* iESMREntry;
+
+ /**
+ * Reference to MR Mailbox Utilities API
+ * Not own.
+ */
+ CMRMailboxUtils& iMRMailboxUtils;
+
+ /**
+ * Reference to calendar DB manager
+ * Not own.
+ */
+ MESMRCalDbMgr& iDbMgr;
+
+ /**
+ * Entries to be processed
+ * Not own.
+ */
+ RPointerArray<CCalEntry>* iMREntries;
+
+ /**
+ * Input parameters from calling application
+ * Not own.
+ */
+ const MAgnEntryUi::TAgnEntryUiInParams* iParams;
+
+ /**
+ * Own: Mailbox utils class.
+ */
+ CESMRFsMailboxUtils* iMbUtils;
+ };
+
+#include "cesmrentryprocessor.inl"
+
+#endif // CESMRENTRYPROCESSOR_H