diff -r 000000000000 -r 8466d47a6819 meetingrequest/mrentry/inc/cesmrentryprocessor.h --- /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 +#include +// +#include "esmrcommands.h" +#include "tesmrscenariodata.h" +// + +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* aEntries ); + + /** + * Process entries. Scenario data is not constructed. + * + * @param aEntries Calendar entries to be processed. + * Ownership is not transferred. + */ + IMPORT_C void ProcessL( + RPointerArray* 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* iMREntries; + + /** + * Input parameters from calling application + * Not own. + */ + const MAgnEntryUi::TAgnEntryUiInParams* iParams; + + /** + * Own: Mailbox utils class. + */ + CESMRFsMailboxUtils* iMbUtils; + }; + +#include "cesmrentryprocessor.inl" + +#endif // CESMRENTRYPROCESSOR_H