diff -r dcf0eedfc1a3 -r d189ee25cf9d ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.h --- a/ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.h Thu Aug 19 09:38:05 2010 +0300 +++ b/ipsservices/ipssosplugin/inc/ipsplgsosbaseplugin.h Tue Aug 31 15:04:17 2010 +0300 @@ -19,17 +19,16 @@ #ifndef IPSPLGSOSBASEPLUGIN_H #define IPSPLGSOSBASEPLUGIN_H -// -#include "cfsmailplugin.h" -#include "mfsmailrequestobserver.h" -// +#include "CFSMailPlugin.h" +#include "MFSMailRequestObserver.h" #include - #include "ipsplgsosbaseplugin.hrh" #include "ipsplgcommon.h" #include "ipsplgsingleopwatcher.h" #include "ipsplgtimeroperation.h" - +// +#include "ipsstateextension.h" +// class CMsvSession; class CIpsPlgTimerOperation; class CIpsPlgMsgMapper; @@ -38,11 +37,10 @@ class CIpsPlgSettingsObserver; class CRepository; class CIpsPlgSearch; -class CIpsSetDataApi; +// CIpsSetDataApi removed class CIpsPlgSmtpService; class CIpsPlgSyncStateHandler; class CIpsPlgEventHandler; -class CIpsPlgOperationWait; /** * FreestyleIpsServices plugin class @@ -50,13 +48,23 @@ * @lib ipssosplugin.lib * @since FSEmail 2.0 */ -class CIpsPlgSosBasePlugin : +NONSHARABLE_CLASS ( CIpsPlgSosBasePlugin ) : public CFSMailPlugin, - public MIpsPlgSingleOpWatcher, - public MFSMailRequestObserver, // a dummy observer - public MIpsPlgTimerOperationCallBack + public MIpsPlgSingleOpWatcher, + public MFSMailRequestObserver, // a dummy observer + public MIpsPlgTimerOperationCallBack, + public MStateObserverCallback { +// +public: //from MStateObserverCallback + void ActiveFolderChanged( + const TFSMailMsgId& aActiveMailboxId, + const TFSMailMsgId& aActiveFolderId); + +public://from CExtendableEmail + CEmailExtension* ExtensionL( const TUid& aInterfaceUid ); +// public: /** @@ -64,7 +72,7 @@ * Destructor */ IMPORT_C virtual ~CIpsPlgSosBasePlugin(); - + public: //from MIpsPlgSingleOpWatcher /** @@ -177,27 +185,95 @@ const TFSMailMsgId& aMailBoxId, const TFSMailMsgId& aFolderId, const RArray& aMessages ); + +// + virtual void DeleteMessagesByUidL( + const TFSMailMsgId& aMailBoxId, + const TFSMailMsgId& aFolderId, + const RArray& aMessages, + MFSMailRequestObserver& aOperationObserver, + const TInt aRequestId); +// // MESSAGE STORE OPERATIONS virtual CFSMailMessage* CreateMessageToSendL( const TFSMailMsgId& aMailBoxId ); + +// + /** + * Creates new email message to message store asynchronously + * + * @param aMailBoxId msv entry id to mailbox which setting are used + * @param aOperationObserver Observer for the operation + * @param aRequestId Id of the operation + */ + virtual void CreateMessageToSendL( + const TFSMailMsgId& aMailBoxId, + MFSMailRequestObserver& aOperationObserver, + const TInt aRequestId ); +// virtual CFSMailMessage* CreateForwardMessageL( const TFSMailMsgId& aMailBoxId, const TFSMailMsgId& aOriginalMessageId, const TDesC& aHeaderDescriptor ); +// + /** + * Creates a forward email message to message store asynchronously + * + * @param aMailBoxId msv entry id to mailbox which setting are used + * @param aOriginalMessageId id of the forwarded message + * @param aOperationObserver Observer for the operation + * @param aRequestId Id of the operation + */ + virtual void CreateForwardMessageL( + const TFSMailMsgId& aMailBoxId, + const TFSMailMsgId& aOriginalMessageId, + MFSMailRequestObserver& aOperationObserver, + const TInt aRequestId, + const TDesC& aHeaderDescriptor = KNullDesC ); +// + virtual CFSMailMessage* CreateReplyMessageL( const TFSMailMsgId& aMailBoxId, const TFSMailMsgId& aOriginalMessageId, const TBool aReplyToAll, const TDesC& aHeaderDescriptor ); +// + /** + * Creates new reply message to message store asynchronously + * + * @param aMailBoxId msv entry id to mailbox which setting are used + * @param aOriginalMessageId id of the replied message + * @param aReplyToAll reply to all recipients + * @param aOperationObserver Observer for the operation + * @param aRequestId Id of the operation + */ + virtual void CreateReplyMessageL( + const TFSMailMsgId& aMailBoxId, + const TFSMailMsgId& aOriginalMessageId, + const TBool aReplyToAll, + MFSMailRequestObserver& aOperationObserver, + const TInt aRequestId, + const TDesC& aHeaderDescriptor ); +// + virtual void StoreMessageL( const TFSMailMsgId& aMailBoxId, CFSMailMessage& aMessage ); + + // + virtual void StoreMessagesL( + const TFSMailMsgId& aMailBoxId, + RPointerArray &messages, + MFSMailRequestObserver& aOperationObserver, + const TInt aRequestId ); + // + virtual void GetMessagesL( const TFSMailMsgId& aMailBoxId, const TFSMailMsgId& aFolderId, @@ -227,6 +303,18 @@ const TFSMailMsgId& aParentPartId, const TDesC& aContentType, const TDesC& aFilePath ); + + // + virtual void NewChildPartFromFileL( + const TFSMailMsgId& aMailBoxId, + const TFSMailMsgId& aParentFolderId, + const TFSMailMsgId& aMessageId, + const TFSMailMsgId& aParentPartId, + const TDesC& aContentType, + const TDesC& aFilePath, + MFSMailRequestObserver& aOperationObserver, + const TInt aRequestId ); + // /** * Creates attachment based on file handle @@ -259,7 +347,18 @@ const TFSMailMsgId& aMessageId, const TFSMailMsgId& aParentPartId, const TFSMailMsgId& aPartId); - + + // + virtual void RemoveChildPartL( + const TFSMailMsgId& aMailBoxId, + const TFSMailMsgId& aParentFolderId, + const TFSMailMsgId& aMessageId, + const TFSMailMsgId& aParentPartId, + const TFSMailMsgId& aPartId, + MFSMailRequestObserver& aOperationObserver, + const TInt aRequestId ); + // + virtual CFSMailMessagePart* MessagePartL( const TFSMailMsgId& aMailBoxId, const TFSMailMsgId& aParentFolderId, @@ -314,6 +413,13 @@ const TFSMailMsgId& aMessageId, CFSMailMessagePart& aMessagePart); + // + virtual void StoreMessagePartsL( + RPointerArray& aMessagePart, + MFSMailRequestObserver& aOperationObserver, + const TInt aRequestId ); + // + virtual void UnregisterRequestObserver( TInt aRequestId ); // MESSAGE SENDING @@ -322,6 +428,11 @@ virtual void SendMessageL( CFSMailMessage& aMessage ); + virtual void SendMessageL( + CFSMailMessage& aMessage, + MFSMailRequestObserver& aOperationObserver, + const TInt aRequestId ); + // OPERATION HANDLING virtual void GoOnlineL( const TFSMailMsgId& aMailBoxId ); @@ -387,8 +498,6 @@ const TFSMailMsgId& aMailBoxId, const TDesC& aUsername, const TDesC& aPassword ); - - virtual CEmailExtension* ExtensionL( const TUid& aInterfaceUid ); public: @@ -486,6 +595,14 @@ */ TBool IsUnderUiProcess(); + // new function + /* + * Checks whether given mailbox has ongoing operations or not + * @param aMailboxId + * @return true/false + */ + TBool HasOperations( const TFSMailMsgId& aMailboxId ); + // protected: /* @@ -549,6 +666,14 @@ const TFSMailMsgId& aSourceFolderId, const TFSMailMsgId& aDestinationFolderId ); + // + /** + * function to handle active folder changed events + */ + virtual void HandleActiveFolderChangeL( + const TFSMailMsgId& aActiveMailboxId, + const TFSMailMsgId& aActiveFolderId); + // private: /** @@ -614,15 +739,8 @@ const TFSMailMsgId& aMailBoxId, const TFSMailMsgId& aOriginalMessageId, const TDesC& aHeaderDescriptor ); - - /** - * Resolves the possible signature text to be added to message body. - * - * @return Pointer to the descriptor containing the signature text, or - * NULL if signature adding is not set or signature text is - * of zero length. Ownership to caller. - */ - HBufC* ResolveSignatureTextL( const TFSMailMsgId& aMailBoxId ); + +private: /** * Maps symbian msv api's folder type to fs folder type @@ -696,8 +814,7 @@ // Search Engine CIpsPlgSearch* iSearch; - // interface to mailbox settings - CIpsSetDataApi* iSettingsApi; + // iSettingsApi removed // maps symbian events to fs events CIpsPlgEventHandler* iEventHandler; @@ -718,14 +835,10 @@ // flag indicates is instance under FSEmail.exe TBool iIsUnderUiProcess; - - // delete draft synchronously - CActiveSchedulerWait iWait; - // - CIpsPlgOperationWait* iWaitDeleteMessage; - CMsvEntry* icEntry; - CMsvOperation* iMsvOpDeleteMessage; + // + CIpsStateExtension* iStateExtension;//owned + // }; #endif /* IPSPLGSOSBASEPLUGIN_H */