diff -r dcf0eedfc1a3 -r d189ee25cf9d ipsservices/ipssosplugin/inc/ipsplgonlineoperation.h --- a/ipsservices/ipssosplugin/inc/ipsplgonlineoperation.h Thu Aug 19 09:38:05 2010 +0300 +++ b/ipsservices/ipssosplugin/inc/ipsplgonlineoperation.h Tue Aug 31 15:04:17 2010 +0300 @@ -18,7 +18,6 @@ #ifndef IPSPLGONLINEOPERATION_H #define IPSPLGONLINEOPERATION_H - #include "ipsplgbaseoperation.h" class CMsvEntrySelection; @@ -27,156 +26,136 @@ class CIpsPlgTimerOperation; class CClientMtmRegistry; - -class MIpsPlgConnectOpCallback - { -public: - virtual void CredientialsSetL( TInt aEvent )=0; - }; +// removing class MIpsPlgConnectOpCallback /** * class CIpsPlgOnlineOperation -* * Common base class for email online operations. */ -class CIpsPlgOnlineOperation : public CIpsPlgBaseOperation +NONSHARABLE_CLASS ( CIpsPlgOnlineOperation ) : public CIpsPlgBaseOperation { - public: - - /** - * - */ - virtual ~CIpsPlgOnlineOperation(); - - /** - * - */ - virtual const TDesC8& ProgressL() = 0; - - /** - * For reporting if DoRunL leaves - */ - virtual const TDesC8& GetErrorProgressL(TInt aError) = 0; - - /** - * - */ - virtual TFSProgress GetFSProgressL() const = 0; - - /** - * - */ - virtual TInt IpsOpType() const; - - - protected: - /** - * C++ constructor - */ - // Construction. - CIpsPlgOnlineOperation( - CMsvSession& aMsvSession, - TInt aPriority, - TRequestStatus& aObserverRequestStatus, - CIpsPlgTimerOperation& aActivityTimer, - TFSMailMsgId aFSMailBoxId, - MFSMailRequestObserver& aFSOperationObserver, - TInt aFSRequestId, - TBool aSignallingAllowed=ETrue ); - - /** - * Base constructor - */ - void BaseConstructL(TUid aMtmType); +public: + virtual ~CIpsPlgOnlineOperation(); - /** - * From CActive - */ - virtual void DoCancel(); - - /** - * From CActive - */ - virtual void RunL(); - - /** - * From CActive - */ - virtual void DoRunL() = 0; - - /** - * From CActive - */ - virtual TInt RunError( TInt aError ); - - /** - * Completes observer with status aStatus - * @param aStatus: Status of the operation. - * Override if needed to complete with other status than KErrNone. - */ - void CompleteObserver( TInt aStatus = KErrNone ); - - /** - * - */ - void CompleteThis(); - - - // REVIEW: is there any good reason for next two methods - /** - * - */ - void InvokeClientMtmAsyncFunctionL( - TInt aFunctionId, - TMsvId aEntryId, - TMsvId aContextId, - const TDesC8& aParams=KNullDesC8); - - /** - * - */ - void InvokeClientMtmAsyncFunctionL( - TInt aFunctionId, - const CMsvEntrySelection& aSel, - TMsvId aContextId, - const TDesC8& aParams=KNullDesC8); - - /** - * - */ - //virtual TInt GetEngineProgress( const TDesC8& aProgress ); - + // removing virtual const TDesC8& ProgressL() = 0; as unnecessary (already in baseclass) + // removing virtual const TDesC8& GetErrorProgressL(TInt aError) = 0; as unnecessary (already in baseclass) + + /** + * return progress information about ongoing operation + */ + virtual TFSProgress GetFSProgressL() const = 0; + + // removing IpsOpType() from here because this is abstract base class + protected: /** - * + * constructor + * @param aMsvSession reference to existing client-server session to MessageServer + * @param aObserverRequestStatus client status + * @param aActivityTimer reference to mailbox's online activity timer + * @param aFSMailBoxId mailbox id + * @param aFSOperationObserver callback interface to caller for reporting progress (completion) statuses + * @param aFSRequestId id of the request + * @param aSignallingAllowed for asynchronous request response message + */ + // priority parameter has been removed + // MFSMailRequestObserver& changed to pointer + // aSignallingAllowed parameter has been returned + CIpsPlgOnlineOperation( + CMsvSession& aMsvSession, + TRequestStatus& aObserverRequestStatus, + CIpsPlgTimerOperation& aActivityTimer, + TFSMailMsgId aFSMailBoxId, + MFSMailRequestObserver* aFSOperationObserver, + TInt aFSRequestId, + TBool aSignallingAllowed=ETrue ); + + /** + * Base constructor + */ + void BaseConstructL( TUid aMtmType ); + +protected: // From CActive + virtual void DoCancel(); + virtual void RunL(); + + /** + * All concrete classes must implement this + * It is called by OnlineOperation's RunL() + */ + virtual void DoRunL() = 0; + + // removing virtual TInt RunError( TInt aError ); Not needed because RunL uses TRAP harness and never leaves + + /** + * Completes observer with status aStatus + * @param aStatus: Status of the operation. + * Override if needed to complete with other status than KErrNone. + */ + void CompleteObserver( TInt aStatus = KErrNone ); + + /** + * Completes "ourselves" not observer; used for starting a new round in statemachine. + */ + void CompleteThis(); + + /** + * Sends a command to MessageServer + * @param aFunctionId specifies the command + * @param aEntryId specifies the entry on which the command should be executed + * (e.g. which message entry to send) + * @param aParams specifies other parameters needed by particular command + */ + // aContextId parameter has been removed + void InvokeClientMtmAsyncFunctionL( + TInt aFunctionId, + TMsvId aEntryId, + const TDesC8& aParams=KNullDesC8); + + /** + * Sends a command to MessageServer + * @param aFunctionId specifies the command + * @param aSel specifies a selection of entries on which the command should be executed + * (e.g. which messages to send) + * @param aParams specifies other parameters needed by particular command + */ + // aContextId parameter has been removed + void InvokeClientMtmAsyncFunctionL( + TInt aFunctionId, + const CMsvEntrySelection& aSel, + const TDesC8& aParams=KNullDesC8); + + // + /** + * Finds out the current connection state of the mailbox + * @return true/false + */ + virtual TBool Connected() const; + // + + /** + * Signals observer of the operation if such exists + * @param aStatus completion status of the operation */ void SignalFSObserver( TInt aStatus ); protected: - // REVIEW: should tell whether the attributes are owned or not - // REVIEW: CMsvOperation already has similar attribute, change the name + // mailbox specific activity timer CIpsPlgTimerOperation* iActivityTimer; - CBaseMtm* iBaseMtm; - CClientMtmRegistry* iMtmReg; - // The sub-operation. - CMsvOperation* iOperation; + CBaseMtm* iBaseMtm; + CClientMtmRegistry* iMtmReg; + // sub-operation that this operation is using currently + CMsvOperation* iSubOperation; // Status of current operation - TInt iError; - // Return this if iOperation==NULL. - TBuf8<1> iDummyProg; - + TInt iError; + // Return this if iSubOperation==NULL. + TBuf8<1> iDummyProg; - //we need to be able to prevent completion signal - //to framework, because online operations - //may be nested ( fetch uses connect operation ) - //and we don't want sub operation to signal completion. + // boolean returned TBool iSignallingAllowed; - //not owned - MFSMailRequestObserver& iFSOperationObserver; - - + // + MFSMailRequestObserver* iFSOperationObserver; //not owned }; - -#endif//IPSPLGONLINEOPERATION_H +#endif //IPSPLGONLINEOPERATION_H