Pop3Mail.h
上传用户:sempras
上传日期:2007-03-04
资源大小:821k
文件大小:2k
源码类别:

Symbian

开发平台:

C/C++

  1. #ifndef __POP3MAIL_H__
  2. #define __POP3MAIL_H__
  3. #include <e32base.h>
  4. #include <msvapi.h>
  5. #include <pop3set.h>
  6. #include <ckncancl.h>
  7. class CPop3ClientMtm;
  8. class CMsvEmailUtils;
  9. /*
  10. * ============================================================================
  11. *  Name     : CPop3Mail from Pop3Mail.h
  12. *  Part of  : EmailExample
  13. *  Created  : 09/11/2003 by Forum Nokia
  14. *  Implementation notes:
  15. * Engine class that wraps some Pop3 functionality.
  16. * Implemented as statemachine.
  17. *
  18. *  Version  : 1.0
  19. *  Copyright: Nokia Corporation
  20. * ============================================================================
  21. */
  22. class CPop3Mail : public CActive, public MMsvSessionObserver,public MCknCancellableOperation
  23. {
  24. public:
  25. // creational
  26. static CPop3Mail* NewL(TRequestStatus& aStatus,CMsvSession& aMsvSession);
  27. ~CPop3Mail();
  28. // interface
  29. /*
  30.     * FetchRemoteMailL(TMsvId aMailId=NULL)
  31.     *
  32.     * only interface method which initiates multiple state process which
  33. * connects to remote mailbox and downloads all message headers from
  34. * remote server.
  35.     *
  36.     * Params:
  37. * (1) TMsvId aMailId initial entry id
  38.     *
  39.     */
  40. void FetchRemoteMailL(TMsvId aMailId=NULL);
  41. // private functions
  42. private:
  43. CPop3Mail(TRequestStatus& aStatus,CMsvSession& aMsvSession);
  44. void ConstructL();
  45. void ExecuteConnectL();
  46. void ExecuteFetchMailL();
  47. void ExecuteDisconnetL();
  48. void MailCommandL(TInt aCommand,TDes8& aParams);
  49. void LoadMtmL();
  50. void Queue();
  51. // from CActive
  52. void RunL();
  53. void DoCancel();
  54. TInt RunError(TInt aError);
  55. // from MCknCancellableOperation
  56. void CancelOperation();
  57. // from MMsvSessionObserver
  58.     void HandleSessionEventL(TMsvSessionEvent aEvent,TAny* aArg1,TAny* aArg2,TAny* aArg3);
  59. // private state values for the state machine
  60. private:
  61. enum TInternalState
  62. {
  63. EInitialising,
  64. EReady,
  65. EConnecting,
  66. EGetRemote,
  67. EDisconnectRemote,
  68. EDisconnecting,
  69. ECanceling
  70. } ;
  71. // private data
  72. private:
  73. CMsvEmailUtils* iPop3Utils;
  74. TRequestStatus& iObserverStatus;
  75.     CMsvSession& iMsvSession;
  76. CPop3ClientMtm* iPop3Mtm;
  77. TMsvId iServiceId;
  78.     CMsvOperation* iOperation;
  79. CCknCancelDialog* iDialog;
  80. TInternalState iState;
  81. CMsvEntrySelection* iMsvSelection;
  82. TMsvId iMailId;
  83. };
  84. #endif //__POP3MAIL_H__